gitlab.yaml 1.6 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694
  1. ---
  2. # Source: gitlab/charts/gitlab/charts/gitaly/templates/pdb.yaml
  3. apiVersion: policy/v1beta1
  4. kind: PodDisruptionBudget
  5. metadata:
  6. name: gitlab-gitaly
  7. namespace: default
  8. labels:
  9. app: gitaly
  10. chart: gitaly-6.8.0
  11. release: gitlab
  12. heritage: Helm
  13. spec:
  14. maxUnavailable: 1
  15. selector:
  16. matchLabels:
  17. app: gitaly
  18. release: gitlab
  19. ---
  20. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/pdb.yaml
  21. apiVersion: policy/v1beta1
  22. kind: PodDisruptionBudget
  23. metadata:
  24. name: gitlab-gitlab-shell
  25. namespace: default
  26. labels:
  27. app: gitlab-shell
  28. chart: gitlab-shell-6.8.0
  29. release: gitlab
  30. heritage: Helm
  31. spec:
  32. maxUnavailable: 1
  33. selector:
  34. matchLabels:
  35. app: gitlab-shell
  36. release: gitlab
  37. ---
  38. # Source: gitlab/charts/gitlab/charts/kas/templates/pdb.yaml
  39. apiVersion: policy/v1beta1
  40. kind: PodDisruptionBudget
  41. metadata:
  42. name: gitlab-kas
  43. namespace: default
  44. labels:
  45. app: kas
  46. chart: kas-6.8.0
  47. release: gitlab
  48. heritage: Helm
  49. spec:
  50. maxUnavailable: 1
  51. selector:
  52. matchLabels:
  53. app: kas
  54. release: gitlab
  55. ---
  56. # Source: gitlab/charts/gitlab/charts/sidekiq/templates/pdb.yaml
  57. apiVersion: policy/v1beta1
  58. kind: PodDisruptionBudget
  59. metadata:
  60. name: gitlab-sidekiq-all-in-1-v1
  61. namespace: default
  62. labels:
  63. app: sidekiq
  64. chart: sidekiq-6.8.0
  65. release: gitlab
  66. heritage: Helm
  67. spec:
  68. maxUnavailable: 1
  69. selector:
  70. matchLabels:
  71. app: sidekiq
  72. release: gitlab
  73. queue-pod-name: all-in-1
  74. ---
  75. # Source: gitlab/charts/gitlab/charts/webservice/templates/pdb.yaml
  76. apiVersion: policy/v1beta1
  77. kind: PodDisruptionBudget
  78. metadata:
  79. name: gitlab-webservice-default
  80. namespace: default
  81. labels:
  82. app: webservice
  83. chart: webservice-6.8.0
  84. release: gitlab
  85. heritage: Helm
  86. gitlab.com/webservice-name: default
  87. spec:
  88. maxUnavailable: 1
  89. selector:
  90. matchLabels:
  91. app: webservice
  92. release: gitlab
  93. gitlab.com/webservice-name: default
  94. ---
  95. # Source: gitlab/charts/minio/templates/pdb.yaml
  96. apiVersion: policy/v1beta1
  97. kind: PodDisruptionBudget
  98. metadata:
  99. name: gitlab-minio-v1
  100. namespace: default
  101. labels:
  102. app: minio
  103. chart: minio-0.4.3
  104. release: gitlab
  105. heritage: Helm
  106. spec:
  107. maxUnavailable: 1
  108. selector:
  109. matchLabels:
  110. app: minio
  111. release: gitlab
  112. component: app
  113. ---
  114. # Source: gitlab/charts/nginx-ingress/templates/controller-poddisruptionbudget.yaml
  115. apiVersion: policy/v1beta1
  116. kind: PodDisruptionBudget
  117. metadata:
  118. labels:
  119. app: nginx-ingress
  120. chart: nginx-ingress-4.0.6
  121. release: gitlab
  122. heritage: Helm
  123. component: "controller"
  124. helm.sh/chart: nginx-ingress-4.0.6
  125. app.kubernetes.io/version: "1.0.4"
  126. app.kubernetes.io/managed-by: Helm
  127. app.kubernetes.io/component: controller
  128. name: gitlab-nginx-ingress-controller
  129. namespace: default
  130. spec:
  131. selector:
  132. matchLabels:
  133. app: nginx-ingress
  134. release: gitlab
  135. component: "controller"
  136. minAvailable: 1
  137. ---
  138. # Source: gitlab/charts/registry/templates/pdb.yaml
  139. apiVersion: policy/v1beta1
  140. kind: PodDisruptionBudget
  141. metadata:
  142. name: gitlab-registry-v1
  143. namespace: default
  144. labels:
  145. app: registry
  146. chart: registry-0.7.0
  147. release: gitlab
  148. heritage: Helm
  149. spec:
  150. maxUnavailable: 1
  151. selector:
  152. matchLabels:
  153. app: registry
  154. release: gitlab
  155. ---
  156. # Source: gitlab/charts/certmanager-issuer/templates/rbac-config.yaml
  157. apiVersion: v1
  158. kind: ServiceAccount
  159. metadata:
  160. name: gitlab-certmanager-issuer
  161. namespace: default
  162. labels:
  163. app: certmanager-issuer
  164. chart: certmanager-issuer-0.1.0
  165. release: gitlab
  166. heritage: Helm
  167. annotations:
  168. namespace: default
  169. ---
  170. # Source: gitlab/charts/certmanager/templates/cainjector-serviceaccount.yaml
  171. apiVersion: v1
  172. kind: ServiceAccount
  173. automountServiceAccountToken: true
  174. metadata:
  175. name: gitlab-certmanager-cainjector
  176. namespace: "default"
  177. labels:
  178. app: cainjector
  179. app.kubernetes.io/name: cainjector
  180. app.kubernetes.io/instance: gitlab
  181. app.kubernetes.io/component: "cainjector"
  182. app.kubernetes.io/version: "v1.5.4"
  183. app.kubernetes.io/managed-by: Helm
  184. helm.sh/chart: certmanager-v1.5.4
  185. ---
  186. # Source: gitlab/charts/certmanager/templates/serviceaccount.yaml
  187. apiVersion: v1
  188. kind: ServiceAccount
  189. automountServiceAccountToken: true
  190. metadata:
  191. name: gitlab-certmanager
  192. namespace: "default"
  193. labels:
  194. app: certmanager
  195. app.kubernetes.io/name: certmanager
  196. app.kubernetes.io/instance: gitlab
  197. app.kubernetes.io/component: "controller"
  198. app.kubernetes.io/version: "v1.5.4"
  199. app.kubernetes.io/managed-by: Helm
  200. helm.sh/chart: certmanager-v1.5.4
  201. ---
  202. # Source: gitlab/charts/certmanager/templates/webhook-serviceaccount.yaml
  203. apiVersion: v1
  204. kind: ServiceAccount
  205. automountServiceAccountToken: true
  206. metadata:
  207. name: gitlab-certmanager-webhook
  208. namespace: "default"
  209. labels:
  210. app: webhook
  211. app.kubernetes.io/name: webhook
  212. app.kubernetes.io/instance: gitlab
  213. app.kubernetes.io/component: "webhook"
  214. app.kubernetes.io/version: "v1.5.4"
  215. app.kubernetes.io/managed-by: Helm
  216. helm.sh/chart: certmanager-v1.5.4
  217. ---
  218. # Source: gitlab/charts/gitlab-runner/templates/service-account.yaml
  219. apiVersion: v1
  220. kind: ServiceAccount
  221. metadata:
  222. annotations:
  223. name: gitlab-gitlab-runner
  224. labels:
  225. app: gitlab-gitlab-runner
  226. chart: gitlab-runner-0.48.1
  227. release: "gitlab"
  228. heritage: "Helm"
  229. ---
  230. # Source: gitlab/charts/nginx-ingress/templates/controller-serviceaccount.yaml
  231. apiVersion: v1
  232. kind: ServiceAccount
  233. metadata:
  234. labels:
  235. app: nginx-ingress
  236. chart: nginx-ingress-4.0.6
  237. release: gitlab
  238. heritage: Helm
  239. component: "controller"
  240. helm.sh/chart: nginx-ingress-4.0.6
  241. app.kubernetes.io/version: "1.0.4"
  242. app.kubernetes.io/managed-by: Helm
  243. app.kubernetes.io/component: controller
  244. name: gitlab-nginx-ingress
  245. namespace: default
  246. automountServiceAccountToken: true
  247. ---
  248. # Source: gitlab/charts/prometheus/templates/server/serviceaccount.yaml
  249. apiVersion: v1
  250. kind: ServiceAccount
  251. metadata:
  252. labels:
  253. component: "server"
  254. app: prometheus
  255. release: gitlab
  256. chart: prometheus-15.0.4
  257. heritage: Helm
  258. name: gitlab-prometheus-server
  259. namespace: default
  260. annotations:
  261. {}
  262. ---
  263. # Source: gitlab/charts/certmanager-issuer/templates/cert-manager.yml
  264. apiVersion: v1
  265. kind: ConfigMap
  266. metadata:
  267. name: gitlab-certmanager-issuer-certmanager
  268. namespace: default
  269. labels:
  270. app: certmanager-issuer
  271. chart: certmanager-issuer-0.1.0
  272. release: gitlab
  273. heritage: Helm
  274. data:
  275. create-issuer: |
  276. #!/bin/bash
  277. set -e ;
  278. issuer_file=$1
  279. namespace=default
  280. echo "Creating the certmanager issuer..."
  281. set +e ; # The CRD may not exist yet. We need to retry until this passes
  282. while ! kubectl --namespace=$namespace apply -f ${issuer_file:=issuer.yml}; do
  283. sleep 1;
  284. done ;
  285. set -e ; # reset `e` as active
  286. issuer.yml: |
  287. apiVersion: cert-manager.io/v1
  288. kind: Issuer
  289. metadata:
  290. name: gitlab-issuer
  291. namespace: default
  292. labels:
  293. app: certmanager-issuer
  294. chart: certmanager-issuer-0.1.0
  295. release: gitlab
  296. heritage: Helm
  297. spec:
  298. acme:
  299. # The ACME server URL
  300. server: "https://acme-v02.api.letsencrypt.org/directory"
  301. # Email address used for ACME registration
  302. email: "breandan@dezendorf.net"
  303. # Name of a secret used to store the ACME account private key
  304. privateKeySecretRef:
  305. name: gitlab-acme-key
  306. # Enable the HTTP-01 challenge provider
  307. solvers:
  308. - selector: {}
  309. http01:
  310. ingress:
  311. class: gitlab-nginx
  312. ---
  313. # Source: gitlab/charts/gitlab-runner/templates/configmap.yaml
  314. apiVersion: v1
  315. kind: ConfigMap
  316. metadata:
  317. name: gitlab-gitlab-runner
  318. namespace: "default"
  319. labels:
  320. app: gitlab-gitlab-runner
  321. chart: gitlab-runner-0.48.1
  322. release: "gitlab"
  323. heritage: "Helm"
  324. data:
  325. entrypoint: |
  326. #!/bin/bash
  327. set -e
  328. mkdir -p /home/gitlab-runner/.gitlab-runner/
  329. cp /configmaps/config.toml /home/gitlab-runner/.gitlab-runner/
  330. # Set up environment variables for cache
  331. if [[ -f /secrets/accesskey && -f /secrets/secretkey ]]; then
  332. export CACHE_S3_ACCESS_KEY=$(cat /secrets/accesskey)
  333. export CACHE_S3_SECRET_KEY=$(cat /secrets/secretkey)
  334. fi
  335. if [[ -f /secrets/gcs-applicaton-credentials-file ]]; then
  336. export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-applicaton-credentials-file"
  337. elif [[ -f /secrets/gcs-application-credentials-file ]]; then
  338. export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-application-credentials-file"
  339. else
  340. if [[ -f /secrets/gcs-access-id && -f /secrets/gcs-private-key ]]; then
  341. export CACHE_GCS_ACCESS_ID=$(cat /secrets/gcs-access-id)
  342. # echo -e used to make private key multiline (in google json auth key private key is oneline with \n)
  343. export CACHE_GCS_PRIVATE_KEY=$(echo -e $(cat /secrets/gcs-private-key))
  344. fi
  345. fi
  346. if [[ -f /secrets/azure-account-name && -f /secrets/azure-account-key ]]; then
  347. export CACHE_AZURE_ACCOUNT_NAME=$(cat /secrets/azure-account-name)
  348. export CACHE_AZURE_ACCOUNT_KEY=$(cat /secrets/azure-account-key)
  349. fi
  350. if [[ -f /secrets/runner-registration-token ]]; then
  351. export REGISTRATION_TOKEN=$(cat /secrets/runner-registration-token)
  352. fi
  353. if [[ -f /secrets/runner-token ]]; then
  354. export CI_SERVER_TOKEN=$(cat /secrets/runner-token)
  355. fi
  356. # Validate this also at runtime in case the user has set a custom secret
  357. if [[ ! -z "$CI_SERVER_TOKEN" && "1" -ne "1" ]]; then
  358. echo "Using a runner token with more than 1 replica is not supported."
  359. exit 1
  360. fi
  361. # Register the runner
  362. if ! sh /configmaps/register-the-runner; then
  363. exit 1
  364. fi
  365. # Run pre-entrypoint-script
  366. if ! bash /configmaps/pre-entrypoint-script; then
  367. exit 1
  368. fi
  369. # Start the runner
  370. exec /entrypoint run --user=gitlab-runner \
  371. --working-directory=/home/gitlab-runner
  372. config.toml: |
  373. concurrent = 10
  374. check_interval = 30
  375. log_level = "info"
  376. config.template.toml: |
  377. [[runners]]
  378. [runners.kubernetes]
  379. image = "ubuntu:18.04"
  380. [runners.cache]
  381. Type = "s3"
  382. Path = "gitlab-runner"
  383. Shared = true
  384. [runners.cache.s3]
  385. ServerAddress = "minio.git.dezendorf.net"
  386. BucketName = "runner-cache"
  387. BucketLocation = "us-east-1"
  388. Insecure = false
  389. register-the-runner: |
  390. #!/bin/bash
  391. MAX_REGISTER_ATTEMPTS=30
  392. for i in $(seq 1 "${MAX_REGISTER_ATTEMPTS}"); do
  393. echo "Registration attempt ${i} of ${MAX_REGISTER_ATTEMPTS}"
  394. /entrypoint register \
  395. --template-config /configmaps/config.template.toml \
  396. --non-interactive
  397. retval=$?
  398. if [ ${retval} = 0 ]; then
  399. break
  400. elif [ ${i} = ${MAX_REGISTER_ATTEMPTS} ]; then
  401. exit 1
  402. fi
  403. sleep 5
  404. done
  405. exit 0
  406. check-live: |
  407. #!/bin/bash
  408. if /usr/bin/pgrep -f .*register-the-runner; then
  409. exit 0
  410. elif /usr/bin/pgrep gitlab.*runner; then
  411. exit 0
  412. else
  413. exit 1
  414. fi
  415. pre-entrypoint-script: |
  416. ---
  417. # Source: gitlab/charts/gitlab/charts/gitaly/templates/configmap.yml
  418. apiVersion: v1
  419. kind: ConfigMap
  420. metadata:
  421. name: gitlab-gitaly
  422. namespace: default
  423. labels:
  424. app: gitaly
  425. chart: gitaly-6.8.0
  426. release: gitlab
  427. heritage: Helm
  428. data:
  429. configure: |
  430. set -e
  431. mkdir -p /init-secrets/gitaly /init-secrets/shell
  432. cp -v -r -L /init-config/.gitlab_shell_secret /init-secrets/shell/.gitlab_shell_secret
  433. cp -v -r -L /init-config/gitaly_token /init-secrets/gitaly/gitaly_token
  434. config.toml.erb: |
  435. # The directory where Gitaly's executables are stored
  436. bin_dir = "/usr/local/bin"
  437. # listen on a TCP socket. This is insecure (no authentication)
  438. listen_addr = "0.0.0.0:8075"
  439. # Directory where internal sockets reside
  440. # note: no value will result in a `/tmp/gitlab-internal-*` path
  441. # internal_socket_dir = "/home/git"
  442. # If metrics collection is enabled, inform gitaly about that
  443. prometheus_listen_addr = "0.0.0.0:9236"
  444. <% @storages = [ "default", ] %>
  445. <% @index=`echo ${HOSTNAME##*-}`.to_i %>
  446. <% if @storages.length > @index %>
  447. [[storage]]
  448. name = "<%= @storages[@index] %>"
  449. path = "/home/git/repositories"
  450. <% else %>
  451. <% raise Exception, "Storage for node #{@index} is not present in the storageNames array. Did you use kubectl to scale up? You need to solely use helm for this purpose." %>
  452. <% end %>
  453. [logging]
  454. format = "json"
  455. dir = "/var/log/gitaly"
  456. [auth]
  457. token = <%= File.read('/etc/gitlab-secrets/gitaly/gitaly_token').strip.to_json %>
  458. [git]
  459. use_bundled_binaries = true
  460. ignore_gitconfig = true
  461. [gitaly-ruby]
  462. # The directory where gitaly-ruby is installed
  463. dir = "/srv/gitaly-ruby"
  464. [gitlab-shell]
  465. # The directory where gitlab-shell is installed
  466. dir = "/srv/gitlab-shell"
  467. [gitlab]
  468. # location of shared secret for GitLab Shell / API interaction
  469. secret_file = "/etc/gitlab-secrets/shell/.gitlab_shell_secret"
  470. # URL of API
  471. url = "http://gitlab-webservice-default.default.svc:8181/"
  472. [gitlab.http-settings]
  473. # read_timeout = 300
  474. # user = someone
  475. # password = somepass
  476. # ca_file = /etc/ssl/cert.pem
  477. # ca_path = /etc/pki/tls/certs
  478. [hooks]
  479. # directory containing custom hooks
  480. custom_hooks_dir = "/home/git/custom_hooks"
  481. ---
  482. # Source: gitlab/charts/gitlab/charts/gitlab-exporter/templates/configmap.yaml
  483. apiVersion: v1
  484. kind: ConfigMap
  485. metadata:
  486. name: gitlab-gitlab-exporter
  487. namespace: default
  488. labels:
  489. app: gitlab-exporter
  490. chart: gitlab-exporter-6.8.0
  491. release: gitlab
  492. heritage: Helm
  493. data:
  494. gitlab-exporter.yml.erb: |
  495. server:
  496. name: webrick
  497. listen_address: 0.0.0.0
  498. listen_port: 9168
  499. probes:
  500. db_common: &db_common
  501. methods:
  502. - probe_db
  503. opts:
  504. connection_string: dbname=gitlabhq_production user=gitlab host=gitlab-postgresql.default.svc port=5432 password='<%= File.read('/etc/gitlab/postgres/psql-password-main').strip.gsub(/[\'\\]/) { |esc| '\\' + esc } %>'
  505. database:
  506. multiple: true
  507. ci_builds:
  508. class_name: Database::CiBuildsProber
  509. <<: *db_common
  510. tuple_stats:
  511. class_name: Database::TuplesProber
  512. <<: *db_common
  513. rows_count:
  514. class_name: Database::RowCountProber
  515. <<: *db_common
  516. database_bloat:
  517. class_name: Database::BloatProber
  518. <<: *db_common
  519. sidekiq: &sidekiq
  520. methods:
  521. - probe_queues
  522. - probe_workers
  523. - probe_retries
  524. - probe_stats
  525. opts:
  526. redis_url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  527. redis_enable_client: false
  528. ruby: &ruby
  529. methods:
  530. - probe_gc
  531. opts:
  532. quantiles: false
  533. metrics:
  534. multiple: true
  535. ruby:
  536. <<: *ruby
  537. sidekiq:
  538. <<: *sidekiq
  539. ci_builds:
  540. class_name: Database::CiBuildsProber
  541. <<: *db_common
  542. tuple_stats:
  543. class_name: Database::TuplesProber
  544. <<: *db_common
  545. rows_count:
  546. class_name: Database::RowCountProber
  547. <<: *db_common
  548. configure: |
  549. # BEGIN gitlab.scripts.configure.secrets
  550. set -e
  551. config_dir="/init-config"
  552. secret_dir="/init-secrets"
  553. # optional
  554. for secret in redis postgres gitlab-exporter ; do
  555. if [ -e "${config_dir}/${secret}" ]; then
  556. mkdir -p "${secret_dir}/${secret}"
  557. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  558. fi
  559. done
  560. # END gitlab.scripts.configure.secrets
  561. # Leave this here - This line denotes end of block to the parser.
  562. ---
  563. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/configmap-sshd.yml
  564. apiVersion: v1
  565. kind: ConfigMap
  566. metadata:
  567. name: gitlab-gitlab-shell-sshd
  568. namespace: default
  569. labels:
  570. app: gitlab-shell
  571. chart: gitlab-shell-6.8.0
  572. release: gitlab
  573. heritage: Helm
  574. data:
  575. sshd_config: |
  576. # $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
  577. # This is the sshd server system-wide configuration file. See
  578. # sshd_config(5) for more information.
  579. # This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
  580. # The strategy used for options in the default sshd_config shipped with
  581. # OpenSSH is to specify options with their default value where
  582. # possible, but leave them commented. Uncommented options override the
  583. # default value.
  584. Port 2222
  585. #AddressFamily any
  586. #ListenAddress 0.0.0.0
  587. #ListenAddress ::
  588. #HostKey /etc/ssh/ssh_host_rsa_key
  589. #HostKey /etc/ssh/ssh_host_dsa_key
  590. #HostKey /etc/ssh/ssh_host_ecdsa_key
  591. #HostKey /etc/ssh/ssh_host_ed25519_key
  592. # Ciphers and keying
  593. #RekeyLimit default none
  594. # Logging
  595. #SyslogFacility AUTH
  596. LogLevel ERROR
  597. # Authentication:
  598. PermitRootLogin no
  599. #StrictModes yes
  600. #MaxAuthTries 6
  601. #MaxSessions 10
  602. #PubkeyAuthentication yes
  603. #AuthorizedPrincipalsFile none
  604. # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
  605. #HostbasedAuthentication no
  606. # Change to yes if you don't trust ~/.ssh/known_hosts for
  607. # HostbasedAuthentication
  608. #IgnoreUserKnownHosts no
  609. # Don't read the user's ~/.rhosts and ~/.shosts files
  610. #IgnoreRhosts yes
  611. #PermitEmptyPasswords no
  612. # Change to no to disable s/key passwords
  613. #ChallengeResponseAuthentication yes
  614. # Kerberos options
  615. #KerberosAuthentication no
  616. #KerberosOrLocalPasswd yes
  617. #KerberosTicketCleanup yes
  618. #KerberosGetAFSToken no
  619. # GSSAPI options
  620. #GSSAPIAuthentication no
  621. #GSSAPICleanupCredentials yes
  622. # Set this to 'yes' to enable PAM authentication, account processing,
  623. # and session processing. If this is enabled, PAM authentication will
  624. # be allowed through the ChallengeResponseAuthentication and
  625. # PasswordAuthentication. Depending on your PAM configuration,
  626. # PAM authentication via ChallengeResponseAuthentication may bypass
  627. # the setting of "PermitRootLogin without-password".
  628. # If you just want the PAM account and session checks to run without
  629. # PAM authentication, then enable this but set PasswordAuthentication
  630. # and ChallengeResponseAuthentication to 'no'.
  631. #UsePAM no
  632. #AllowAgentForwarding yes
  633. #AllowTcpForwarding yes
  634. #GatewayPorts no
  635. #X11Forwarding no
  636. #X11DisplayOffset 10
  637. #X11UseLocalhost yes
  638. #PermitTTY yes
  639. #PrintMotd yes
  640. #PrintLastLog yes
  641. #TCPKeepAlive yes
  642. #UseLogin no
  643. #PermitUserEnvironment no
  644. #Compression delayed
  645. ClientAliveInterval 0
  646. #ClientAliveCountMax 3
  647. #UseDNS no
  648. PidFile /srv/sshd/sshd.pid
  649. #PermitTunnel no
  650. #ChrootDirectory none
  651. #VersionAddendum none
  652. # no default banner path
  653. #Banner none
  654. # override default of no subsystems
  655. # Subsystem sftp /usr/lib/ssh/sftp-server
  656. # the following are HPN related configuration options
  657. # tcp receive buffer polling. disable in non autotuning kernels
  658. #TcpRcvBufPoll yes
  659. # disable hpn performance boosts
  660. #HPNDisabled no
  661. # buffer size for hpn to non-hpn connections
  662. #HPNBufferSize 2048
  663. # Example of overriding settings on a per-user basis
  664. #Match User anoncvs
  665. # X11Forwarding no
  666. # AllowTcpForwarding no
  667. # PermitTTY no
  668. # ForceCommand cvs server
  669. # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
  670. # but this is overridden so installations will only check .ssh/authorized_keys
  671. AuthorizedKeysFile .ssh/authorized_keys
  672. AuthorizedKeysCommand /authorized_keys %u %k
  673. AuthorizedKeysCommandUser git
  674. PasswordAuthentication no
  675. AllowUsers git
  676. # Enable the use of Git protcol v2
  677. AcceptEnv GIT_PROTOCOL
  678. # Hard disable all forwarding
  679. DisableForwarding yes
  680. # Specifies the maximum number of concurrent unauthenticated connections to the SSH daemon.
  681. # See `man sshd_config(5)`
  682. MaxStartups 10:30:100
  683. # Specifies amount of time athat the server will disconnect after if the user has not successfully logged in
  684. LoginGraceTime 60
  685. # Leave this here - This line denotes end of block to the parser.
  686. ---
  687. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/configmap.yml
  688. apiVersion: v1
  689. kind: ConfigMap
  690. metadata:
  691. name: gitlab-gitlab-shell
  692. namespace: default
  693. labels:
  694. app: gitlab-shell
  695. chart: gitlab-shell-6.8.0
  696. release: gitlab
  697. heritage: Helm
  698. data:
  699. configure: |
  700. # BEGIN gitlab.scripts.configure.secrets
  701. set -e
  702. config_dir="/init-config"
  703. secret_dir="/init-secrets"
  704. # required
  705. for secret in shell ; do
  706. mkdir -p "${secret_dir}/${secret}"
  707. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  708. done
  709. # END gitlab.scripts.configure.secrets
  710. mkdir -p /${secret_dir}/ssh
  711. cp -v -r -L /${config_dir}/ssh_host_* /${secret_dir}/ssh/
  712. chmod 0400 /${secret_dir}/ssh/ssh_host_*
  713. config.yml.tpl: |
  714. # GitLab user. git by default
  715. user: git
  716. # Url to gitlab instance. Used for api calls. Should end with a slash.
  717. gitlab_url: "http://gitlab-webservice-default.default.svc:8181/"
  718. secret_file: /etc/gitlab-secrets/shell/.gitlab_shell_secret
  719. # File used as authorized_keys for gitlab user
  720. auth_file: "/home/git/.ssh/authorized_keys"
  721. # Log file.
  722. # Default is gitlab-shell.log in the root directory.
  723. log_file: "/var/log/gitlab-shell/gitlab-shell.log"
  724. log_format: text
  725. # Audit usernames.
  726. # Set to true to see real usernames in the logs instead of key ids, which is easier to follow, but
  727. # incurs an extra API call on every gitlab-shell command.
  728. audit_usernames: false
  729. # Leave this here - This line denotes end of block to the parser.
  730. ---
  731. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/nginx-tcp-configmap.yml
  732. apiVersion: v1
  733. kind: ConfigMap
  734. metadata:
  735. name: gitlab-nginx-ingress-tcp
  736. namespace: default
  737. labels:
  738. app: gitlab-shell
  739. chart: gitlab-shell-6.8.0
  740. release: gitlab
  741. heritage: Helm
  742. data:
  743. "22": "default/gitlab-gitlab-shell:22::"
  744. ---
  745. # Source: gitlab/charts/gitlab/charts/kas/templates/configmap.yaml
  746. apiVersion: v1
  747. kind: ConfigMap
  748. metadata:
  749. name: gitlab-kas
  750. namespace: default
  751. labels:
  752. app: kas
  753. chart: kas-6.8.0
  754. release: gitlab
  755. heritage: Helm
  756. data:
  757. # See https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/blob/master/pkg/kascfg/config_example.yaml
  758. config.yaml: |
  759. agent:
  760. kubernetes_api:
  761. listen:
  762. address: :8154
  763. url_path_prefix: /k8s-proxy
  764. listen:
  765. address: :8150
  766. websocket: true
  767. api:
  768. listen:
  769. address: :8153
  770. authentication_secret_file: /etc/kas/.gitlab_kas_secret
  771. gitlab:
  772. address: http://gitlab-webservice-default.default.svc:8181
  773. authentication_secret_file: /etc/kas/.gitlab_kas_secret
  774. observability:
  775. listen:
  776. address: :8151
  777. liveness_probe:
  778. url_path: /liveness
  779. readiness_probe:
  780. url_path: /readiness
  781. private_api:
  782. listen:
  783. address: :8155
  784. authentication_secret_file: /etc/kas/.gitlab_kas_private_api_secret
  785. redis:
  786. password_file: /etc/kas/redis/redis-password
  787. server:
  788. address: gitlab-redis-master.default.svc:6379
  789. ---
  790. # Source: gitlab/charts/gitlab/charts/migrations/templates/configmap.yaml
  791. apiVersion: v1
  792. kind: ConfigMap
  793. metadata:
  794. name: gitlab-migrations
  795. namespace: default
  796. labels:
  797. app: migrations
  798. chart: migrations-6.8.0
  799. release: gitlab
  800. heritage: Helm
  801. data:
  802. pages_redirect_uri: https://projects.pages.git.dezendorf.net/auth
  803. installation_type: |
  804. gitlab-helm-chart
  805. database.yml.erb: |
  806. production:
  807. main:
  808. adapter: postgresql
  809. encoding: unicode
  810. database: gitlabhq_production
  811. username: gitlab
  812. password: <%= File.read('/etc/gitlab/postgres/psql-password-main').strip.to_json %>
  813. host: "gitlab-postgresql.default.svc"
  814. port: 5432
  815. connect_timeout:
  816. keepalives:
  817. keepalives_idle:
  818. keepalives_interval:
  819. keepalives_count:
  820. tcp_user_timeout:
  821. application_name:
  822. prepared_statements: false
  823. database_tasks: true
  824. resque.yml.erb: |
  825. production:
  826. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  827. id:
  828. cable.yml.erb: |
  829. production:
  830. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  831. id:
  832. adapter: redis
  833. gitlab.yml.erb: |
  834. production: &base
  835. gitlab:
  836. host: gitlab.git.dezendorf.net
  837. gitaly:
  838. client_path: /home/git/gitaly/bin
  839. token: <%= File.read('/etc/gitlab/gitaly/gitaly_token').strip.to_json %>
  840. repositories:
  841. storages: # You must have at least a `default` storage path.
  842. default:
  843. path: /var/opt/gitlab/repo
  844. gitaly_address: tcp://gitlab-gitaly-0.gitlab-gitaly.default.svc:8075
  845. sidekiq:
  846. configure: |
  847. # BEGIN gitlab.scripts.configure.secrets
  848. set -e
  849. config_dir="/init-config"
  850. secret_dir="/init-secrets"
  851. # required
  852. for secret in rails-secrets migrations gitaly ; do
  853. mkdir -p "${secret_dir}/${secret}"
  854. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  855. done
  856. # optional
  857. for secret in redis minio objectstorage postgres ldap omniauth smtp kas pages oauth-secrets mailroom gitlab-exporter microsoft_graph_mailer suggested_reviewers ; do
  858. if [ -e "${config_dir}/${secret}" ]; then
  859. mkdir -p "${secret_dir}/${secret}"
  860. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  861. fi
  862. done
  863. # END gitlab.scripts.configure.secrets
  864. # Leave this here - This line denotes end of block to the parser.
  865. ---
  866. # Source: gitlab/charts/gitlab/charts/sidekiq/templates/configmap.yaml
  867. apiVersion: v1
  868. kind: ConfigMap
  869. metadata:
  870. name: gitlab-sidekiq
  871. namespace: default
  872. labels:
  873. app: sidekiq
  874. chart: sidekiq-6.8.0
  875. release: gitlab
  876. heritage: Helm
  877. data:
  878. installation_type: |
  879. gitlab-helm-chart
  880. database.yml.erb: |
  881. production:
  882. main:
  883. adapter: postgresql
  884. encoding: unicode
  885. database: gitlabhq_production
  886. username: gitlab
  887. password: <%= File.read('/etc/gitlab/postgres/psql-password-main').strip.to_json %>
  888. host: "gitlab-postgresql.default.svc"
  889. port: 5432
  890. connect_timeout:
  891. keepalives:
  892. keepalives_idle:
  893. keepalives_interval:
  894. keepalives_count:
  895. tcp_user_timeout:
  896. application_name:
  897. prepared_statements: false
  898. database_tasks: true
  899. krb5.conf: |
  900. smtp_settings.rb: |
  901. resque.yml.erb: |
  902. production:
  903. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  904. id:
  905. cable.yml.erb: |
  906. production:
  907. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  908. id:
  909. adapter: redis
  910. gitlab.yml.erb: |
  911. production: &base
  912. gitlab:
  913. host: gitlab.git.dezendorf.net
  914. https: true
  915. max_request_duration_seconds: 57
  916. impersonation_enabled:
  917. application_settings_cache_seconds: 60
  918. usage_ping_enabled: true
  919. seat_link_enabled: true
  920. default_can_create_group: true
  921. username_changing_enabled: true
  922. issue_closing_pattern:
  923. default_theme:
  924. default_projects_features:
  925. issues: true
  926. merge_requests: true
  927. wiki: true
  928. snippets: true
  929. builds: true
  930. container_registry: true
  931. webhook_timeout:
  932. trusted_proxies:
  933. time_zone: "UTC"
  934. email_from: "gitlab@git.dezendorf.net"
  935. email_display_name: "GitLab"
  936. email_reply_to: "noreply@git.dezendorf.net"
  937. email_subject_suffix: ""
  938. gravatar:
  939. plain_url:
  940. ssl_url:
  941. extra:
  942. artifacts:
  943. enabled: true
  944. object_store:
  945. enabled: true
  946. remote_directory: gitlab-artifacts
  947. proxy_download: true
  948. connection:
  949. provider: AWS
  950. region: us-east-1
  951. host: minio.git.dezendorf.net
  952. endpoint: http://gitlab-minio-svc.default.svc:9000
  953. path_style: true
  954. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  955. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  956. lfs:
  957. enabled: true
  958. object_store:
  959. enabled: true
  960. remote_directory: git-lfs
  961. proxy_download: true
  962. connection:
  963. provider: AWS
  964. region: us-east-1
  965. host: minio.git.dezendorf.net
  966. endpoint: http://gitlab-minio-svc.default.svc:9000
  967. path_style: true
  968. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  969. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  970. uploads:
  971. enabled: true
  972. object_store:
  973. enabled: true
  974. remote_directory: gitlab-uploads
  975. proxy_download: true
  976. connection:
  977. provider: AWS
  978. region: us-east-1
  979. host: minio.git.dezendorf.net
  980. endpoint: http://gitlab-minio-svc.default.svc:9000
  981. path_style: true
  982. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  983. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  984. packages:
  985. enabled: true
  986. object_store:
  987. enabled: true
  988. remote_directory: gitlab-packages
  989. proxy_download: true
  990. connection:
  991. provider: AWS
  992. region: us-east-1
  993. host: minio.git.dezendorf.net
  994. endpoint: http://gitlab-minio-svc.default.svc:9000
  995. path_style: true
  996. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  997. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  998. external_diffs:
  999. enabled: false
  1000. when:
  1001. object_store:
  1002. enabled: false
  1003. remote_directory: gitlab-mr-diffs
  1004. proxy_download: true
  1005. terraform_state:
  1006. enabled: false
  1007. object_store:
  1008. enabled: false
  1009. remote_directory: gitlab-terraform-state
  1010. proxy_download: true
  1011. ci_secure_files:
  1012. enabled: false
  1013. object_store:
  1014. enabled: false
  1015. remote_directory: gitlab-ci-secure-files
  1016. proxy_download: true
  1017. dependency_proxy:
  1018. enabled: false
  1019. object_store:
  1020. enabled: false
  1021. remote_directory: gitlab-dependency-proxy
  1022. proxy_download: true
  1023. sentry:
  1024. enabled: false
  1025. dsn:
  1026. clientside_dsn:
  1027. environment:
  1028. sidekiq:
  1029. log_format: default
  1030. pages:
  1031. enabled: false
  1032. access_control: false
  1033. artifacts_server: true
  1034. path: /srv/gitlab/shared/pages
  1035. host: pages.git.dezendorf.net
  1036. port: 443
  1037. https: true
  1038. secret_file: /etc/gitlab/pages/secret
  1039. external_http: false
  1040. external_https: false
  1041. object_store:
  1042. enabled: true
  1043. remote_directory: gitlab-pages
  1044. connection:
  1045. provider: AWS
  1046. region: us-east-1
  1047. host: minio.git.dezendorf.net
  1048. endpoint: http://gitlab-minio-svc.default.svc:9000
  1049. path_style: true
  1050. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1051. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1052. local_store:
  1053. enabled: false
  1054. path:
  1055. mattermost:
  1056. enabled: false
  1057. ## Registry Integration
  1058. registry:
  1059. enabled: true
  1060. host: registry.git.dezendorf.net
  1061. api_url: http://gitlab-registry.default.svc:5000
  1062. key: /etc/gitlab/registry/gitlab-registry.key
  1063. issuer: gitlab-issuer
  1064. notification_secret: <%= YAML.load_file("/etc/gitlab/registry/notificationSecret").flatten.first %>
  1065. gitlab_ci:
  1066. ldap:
  1067. enabled: false
  1068. omniauth:
  1069. enabled: false
  1070. sync_profile_from_provider: []
  1071. sync_profile_attributes: ["email"]
  1072. allow_single_sign_on: ["saml"]
  1073. block_auto_created_users: true
  1074. auto_link_ldap_user: false
  1075. auto_link_saml_user: false
  1076. external_providers: []
  1077. kerberos:
  1078. enabled: false
  1079. keytab: /etc/krb5.keytab
  1080. use_dedicated_port: false
  1081. port: 8443
  1082. https: true
  1083. simple_ldap_linking_allowed_realms: []
  1084. shared:
  1085. gitaly:
  1086. client_path: /home/git/gitaly/bin
  1087. token: <%= File.read('/etc/gitlab/gitaly/gitaly_token').strip.to_json %>
  1088. repositories:
  1089. storages: # You must have at least a `default` storage path.
  1090. default:
  1091. path: /var/opt/gitlab/repo
  1092. gitaly_address: tcp://gitlab-gitaly-0.gitlab-gitaly.default.svc:8075
  1093. backup:
  1094. path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
  1095. gitlab_kas:
  1096. enabled: true
  1097. secret_file: /etc/gitlab/kas/.gitlab_kas_secret
  1098. external_url: "wss://kas.git.dezendorf.net"
  1099. internal_url: "grpc://gitlab-kas.default.svc:8153"
  1100. suggested_reviewers:
  1101. secret_file: /etc/gitlab/suggested_reviewers/.gitlab_suggested_reviewers_secret
  1102. gitlab_shell:
  1103. path: /home/git/gitlab-shell/
  1104. hooks_path: /home/git/gitlab-shell/hooks/
  1105. upload_pack: true
  1106. receive_pack: true
  1107. ssh_port: 22
  1108. workhorse:
  1109. git:
  1110. bin_path: /usr/bin/git
  1111. webpack:
  1112. monitoring:
  1113. ip_whitelist:
  1114. - 127.0.0.0/8
  1115. sidekiq_exporter:
  1116. enabled: true
  1117. address: 0.0.0.0
  1118. port: 3807
  1119. log_enabled: false
  1120. sidekiq_health_checks:
  1121. enabled: true
  1122. address: 0.0.0.0
  1123. port: 3808
  1124. configure: |
  1125. # BEGIN gitlab.scripts.configure.secrets
  1126. set -e
  1127. config_dir="/init-config"
  1128. secret_dir="/init-secrets"
  1129. # required
  1130. for secret in gitaly registry rails-secrets ; do
  1131. mkdir -p "${secret_dir}/${secret}"
  1132. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1133. done
  1134. # optional
  1135. for secret in redis minio objectstorage postgres ldap omniauth smtp kas pages oauth-secrets mailroom gitlab-exporter microsoft_graph_mailer suggested_reviewers ; do
  1136. if [ -e "${config_dir}/${secret}" ]; then
  1137. mkdir -p "${secret_dir}/${secret}"
  1138. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1139. fi
  1140. done
  1141. # END gitlab.scripts.configure.secrets
  1142. # Leave this here - This line denotes end of block to the parser.
  1143. ---
  1144. # Source: gitlab/charts/gitlab/charts/toolbox/templates/configmap.yaml
  1145. apiVersion: v1
  1146. kind: ConfigMap
  1147. metadata:
  1148. name: gitlab-toolbox
  1149. namespace: default
  1150. labels:
  1151. app: toolbox
  1152. chart: toolbox-6.8.0
  1153. release: gitlab
  1154. heritage: Helm
  1155. data:
  1156. database.yml.erb: |
  1157. production:
  1158. main:
  1159. adapter: postgresql
  1160. encoding: unicode
  1161. database: gitlabhq_production
  1162. username: gitlab
  1163. password: <%= File.read('/etc/gitlab/postgres/psql-password-main').strip.to_json %>
  1164. host: "gitlab-postgresql.default.svc"
  1165. port: 5432
  1166. connect_timeout:
  1167. keepalives:
  1168. keepalives_idle:
  1169. keepalives_interval:
  1170. keepalives_count:
  1171. tcp_user_timeout:
  1172. application_name:
  1173. prepared_statements: false
  1174. database_tasks: true
  1175. krb5.conf: |
  1176. smtp_settings.rb: |
  1177. resque.yml.erb: |
  1178. production:
  1179. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  1180. id:
  1181. cable.yml.erb: |
  1182. production:
  1183. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  1184. id:
  1185. adapter: redis
  1186. gitlab.yml.erb: |
  1187. production: &base
  1188. gitlab:
  1189. host: gitlab.git.dezendorf.net
  1190. https: true
  1191. max_request_duration_seconds: 57
  1192. impersonation_enabled:
  1193. application_settings_cache_seconds: 60
  1194. usage_ping_enabled: true
  1195. seat_link_enabled: true
  1196. default_can_create_group: true
  1197. username_changing_enabled: true
  1198. issue_closing_pattern:
  1199. default_theme:
  1200. default_projects_features:
  1201. issues: true
  1202. merge_requests: true
  1203. wiki: true
  1204. snippets: true
  1205. builds: true
  1206. container_registry: true
  1207. webhook_timeout:
  1208. trusted_proxies:
  1209. time_zone: "UTC"
  1210. email_from: "gitlab@git.dezendorf.net"
  1211. email_display_name: "GitLab"
  1212. email_reply_to: "noreply@git.dezendorf.net"
  1213. email_subject_suffix: ""
  1214. artifacts:
  1215. enabled: true
  1216. object_store:
  1217. enabled: true
  1218. remote_directory: gitlab-artifacts
  1219. proxy_download: true
  1220. connection:
  1221. provider: AWS
  1222. region: us-east-1
  1223. host: minio.git.dezendorf.net
  1224. endpoint: http://gitlab-minio-svc.default.svc:9000
  1225. path_style: true
  1226. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1227. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1228. lfs:
  1229. enabled: true
  1230. object_store:
  1231. enabled: true
  1232. remote_directory: git-lfs
  1233. proxy_download: true
  1234. connection:
  1235. provider: AWS
  1236. region: us-east-1
  1237. host: minio.git.dezendorf.net
  1238. endpoint: http://gitlab-minio-svc.default.svc:9000
  1239. path_style: true
  1240. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1241. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1242. uploads:
  1243. enabled: true
  1244. object_store:
  1245. enabled: true
  1246. remote_directory: gitlab-uploads
  1247. proxy_download: true
  1248. connection:
  1249. provider: AWS
  1250. region: us-east-1
  1251. host: minio.git.dezendorf.net
  1252. endpoint: http://gitlab-minio-svc.default.svc:9000
  1253. path_style: true
  1254. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1255. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1256. packages:
  1257. enabled: true
  1258. object_store:
  1259. enabled: true
  1260. remote_directory: gitlab-packages
  1261. proxy_download: true
  1262. connection:
  1263. provider: AWS
  1264. region: us-east-1
  1265. host: minio.git.dezendorf.net
  1266. endpoint: http://gitlab-minio-svc.default.svc:9000
  1267. path_style: true
  1268. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1269. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1270. external_diffs:
  1271. enabled: false
  1272. when:
  1273. object_store:
  1274. enabled: false
  1275. remote_directory: gitlab-mr-diffs
  1276. proxy_download: true
  1277. terraform_state:
  1278. enabled: false
  1279. object_store:
  1280. enabled: false
  1281. remote_directory: gitlab-terraform-state
  1282. proxy_download: true
  1283. ci_secure_files:
  1284. enabled: false
  1285. object_store:
  1286. enabled: false
  1287. remote_directory: gitlab-ci-secure-files
  1288. proxy_download: true
  1289. dependency_proxy:
  1290. enabled: false
  1291. object_store:
  1292. enabled: false
  1293. remote_directory: gitlab-dependency-proxy
  1294. proxy_download: true
  1295. sidekiq:
  1296. pages:
  1297. enabled: false
  1298. access_control: false
  1299. artifacts_server: true
  1300. path: /srv/gitlab/shared/pages
  1301. host: pages.git.dezendorf.net
  1302. port: 443
  1303. https: true
  1304. secret_file: /etc/gitlab/pages/secret
  1305. external_http: false
  1306. external_https: false
  1307. object_store:
  1308. enabled: true
  1309. remote_directory: gitlab-pages
  1310. connection:
  1311. provider: AWS
  1312. region: us-east-1
  1313. host: minio.git.dezendorf.net
  1314. endpoint: http://gitlab-minio-svc.default.svc:9000
  1315. path_style: true
  1316. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1317. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1318. local_store:
  1319. enabled: false
  1320. path:
  1321. mattermost:
  1322. enabled: false
  1323. ## Registry Integration
  1324. registry:
  1325. enabled: true
  1326. host: registry.git.dezendorf.net
  1327. api_url: http://gitlab-registry.default.svc:5000
  1328. key: /etc/gitlab/registry/gitlab-registry.key
  1329. issuer: gitlab-issuer
  1330. notification_secret: <%= YAML.load_file("/etc/gitlab/registry/notificationSecret").flatten.first %>
  1331. gitlab_ci:
  1332. ldap:
  1333. enabled: false
  1334. omniauth:
  1335. enabled: false
  1336. sync_profile_from_provider: []
  1337. sync_profile_attributes: ["email"]
  1338. allow_single_sign_on: ["saml"]
  1339. block_auto_created_users: true
  1340. auto_link_ldap_user: false
  1341. auto_link_saml_user: false
  1342. external_providers: []
  1343. kerberos:
  1344. enabled: false
  1345. keytab: /etc/krb5.keytab
  1346. use_dedicated_port: false
  1347. port: 8443
  1348. https: true
  1349. simple_ldap_linking_allowed_realms: []
  1350. shared:
  1351. gitaly:
  1352. client_path: /home/git/gitaly/bin
  1353. token: <%= File.read('/etc/gitlab/gitaly/gitaly_token').strip.to_json %>
  1354. repositories:
  1355. storages: # You must have at least a `default` storage path.
  1356. default:
  1357. path: /var/opt/gitlab/repo
  1358. gitaly_address: tcp://gitlab-gitaly-0.gitlab-gitaly.default.svc:8075
  1359. backup:
  1360. path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
  1361. gitlab_kas:
  1362. enabled: true
  1363. secret_file: /etc/gitlab/kas/.gitlab_kas_secret
  1364. external_url: "wss://kas.git.dezendorf.net"
  1365. internal_url: "grpc://gitlab-kas.default.svc:8153"
  1366. suggested_reviewers:
  1367. secret_file: /etc/gitlab/suggested_reviewers/.gitlab_suggested_reviewers_secret
  1368. gitlab_shell:
  1369. path: /home/git/gitlab-shell/
  1370. hooks_path: /home/git/gitlab-shell/hooks/
  1371. upload_pack: true
  1372. receive_pack: true
  1373. ssh_port: 22
  1374. secret_file: /etc/gitlab/shell/.gitlab_shell_secret
  1375. workhorse:
  1376. git:
  1377. bin_path: /usr/bin/git
  1378. webpack:
  1379. monitoring:
  1380. ip_whitelist:
  1381. - 127.0.0.0/8
  1382. sidekiq_exporter:
  1383. extra:
  1384. configure: |
  1385. # BEGIN gitlab.scripts.configure.secrets
  1386. set -e
  1387. config_dir="/init-config"
  1388. secret_dir="/init-secrets"
  1389. # required
  1390. for secret in shell gitaly registry rails-secrets ; do
  1391. mkdir -p "${secret_dir}/${secret}"
  1392. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1393. done
  1394. # optional
  1395. for secret in redis minio objectstorage postgres ldap omniauth smtp kas pages oauth-secrets mailroom gitlab-exporter microsoft_graph_mailer suggested_reviewers ; do
  1396. if [ -e "${config_dir}/${secret}" ]; then
  1397. mkdir -p "${secret_dir}/${secret}"
  1398. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1399. fi
  1400. done
  1401. # END gitlab.scripts.configure.secrets
  1402. if [ ! -f "/${secret_dir}/objectstorage/.s3cfg" ]; then
  1403. cat <<EOF > "/${secret_dir}/.s3cfg"
  1404. [default]
  1405. access_key = $(cat /init-secrets/minio/accesskey)
  1406. secret_key = $(cat /init-secrets/minio/secretkey)
  1407. bucket_location = us-east-1
  1408. host_base = minio.git.dezendorf.net
  1409. host_bucket = minio.git.dezendorf.net/%(bucket)
  1410. default_mime_type = binary/octet-stream
  1411. enable_multipart = True
  1412. multipart_max_chunks = 10000
  1413. multipart_chunk_size_mb = 128
  1414. recursive = True
  1415. recv_chunk = 65536
  1416. send_chunk = 65536
  1417. server_side_encryption = False
  1418. signature_v2 = True
  1419. socket_timeout = 300
  1420. use_mime_magic = False
  1421. verbosity = WARNING
  1422. website_endpoint = https://minio.git.dezendorf.net
  1423. EOF
  1424. else
  1425. mv "/${secret_dir}/objectstorage/.s3cfg" "/${secret_dir}/.s3cfg"
  1426. fi
  1427. configure-gsutil: |
  1428. # The following script is used to configure gsutil when creating backups
  1429. # It provides inputs to the `gsutil config -e` prompt as follows:
  1430. # 1) Path to service account JSON key file
  1431. # 2) Do not set permissions for key file
  1432. # 3) GCP Project ID
  1433. # 4) Decline anonymous usage statistics
  1434. printf "$GOOGLE_APPLICATION_CREDENTIALS\nN\n\nN\n" | gsutil config -e
  1435. ---
  1436. # Source: gitlab/charts/gitlab/charts/webservice/templates/configmap.yml
  1437. apiVersion: v1
  1438. kind: ConfigMap
  1439. metadata:
  1440. name: gitlab-webservice
  1441. namespace: default
  1442. labels:
  1443. app: webservice
  1444. chart: webservice-6.8.0
  1445. release: gitlab
  1446. heritage: Helm
  1447. data:
  1448. installation_type: |
  1449. gitlab-helm-chart
  1450. database.yml.erb: |
  1451. production:
  1452. main:
  1453. adapter: postgresql
  1454. encoding: unicode
  1455. database: gitlabhq_production
  1456. username: gitlab
  1457. password: <%= File.read('/etc/gitlab/postgres/psql-password-main').strip.to_json %>
  1458. host: "gitlab-postgresql.default.svc"
  1459. port: 5432
  1460. connect_timeout:
  1461. keepalives:
  1462. keepalives_idle:
  1463. keepalives_interval:
  1464. keepalives_count:
  1465. tcp_user_timeout:
  1466. application_name:
  1467. prepared_statements: false
  1468. database_tasks: true
  1469. krb5.conf: |
  1470. smtp_settings.rb: |
  1471. resque.yml.erb: |
  1472. production:
  1473. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  1474. id:
  1475. cable.yml.erb: |
  1476. production:
  1477. url: redis://:<%= ERB::Util::url_encode(File.read("/etc/gitlab/redis/redis-password").strip) %>@gitlab-redis-master.default.svc:6379
  1478. id:
  1479. adapter: redis
  1480. gitlab.yml.erb: |
  1481. production: &base
  1482. gitlab:
  1483. host: gitlab.git.dezendorf.net
  1484. https: true
  1485. max_request_duration_seconds: 57
  1486. impersonation_enabled:
  1487. application_settings_cache_seconds: 60
  1488. usage_ping_enabled: true
  1489. seat_link_enabled: true
  1490. default_can_create_group: true
  1491. username_changing_enabled: true
  1492. issue_closing_pattern:
  1493. default_theme:
  1494. default_projects_features:
  1495. issues: true
  1496. merge_requests: true
  1497. wiki: true
  1498. snippets: true
  1499. builds: true
  1500. container_registry: true
  1501. webhook_timeout:
  1502. trusted_proxies:
  1503. time_zone: "UTC"
  1504. email_from: "gitlab@git.dezendorf.net"
  1505. email_display_name: "GitLab"
  1506. email_reply_to: "noreply@git.dezendorf.net"
  1507. email_subject_suffix: ""
  1508. gravatar:
  1509. plain_url:
  1510. ssl_url:
  1511. extra:
  1512. artifacts:
  1513. enabled: true
  1514. object_store:
  1515. enabled: true
  1516. remote_directory: gitlab-artifacts
  1517. proxy_download: true
  1518. connection:
  1519. provider: AWS
  1520. region: us-east-1
  1521. host: minio.git.dezendorf.net
  1522. endpoint: http://gitlab-minio-svc.default.svc:9000
  1523. path_style: true
  1524. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1525. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1526. lfs:
  1527. enabled: true
  1528. object_store:
  1529. enabled: true
  1530. remote_directory: git-lfs
  1531. proxy_download: true
  1532. connection:
  1533. provider: AWS
  1534. region: us-east-1
  1535. host: minio.git.dezendorf.net
  1536. endpoint: http://gitlab-minio-svc.default.svc:9000
  1537. path_style: true
  1538. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1539. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1540. uploads:
  1541. enabled: true
  1542. object_store:
  1543. enabled: true
  1544. remote_directory: gitlab-uploads
  1545. proxy_download: true
  1546. connection:
  1547. provider: AWS
  1548. region: us-east-1
  1549. host: minio.git.dezendorf.net
  1550. endpoint: http://gitlab-minio-svc.default.svc:9000
  1551. path_style: true
  1552. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1553. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1554. packages:
  1555. enabled: true
  1556. object_store:
  1557. enabled: true
  1558. remote_directory: gitlab-packages
  1559. proxy_download: true
  1560. connection:
  1561. provider: AWS
  1562. region: us-east-1
  1563. host: minio.git.dezendorf.net
  1564. endpoint: http://gitlab-minio-svc.default.svc:9000
  1565. path_style: true
  1566. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1567. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1568. external_diffs:
  1569. enabled: false
  1570. when:
  1571. object_store:
  1572. enabled: false
  1573. remote_directory: gitlab-mr-diffs
  1574. proxy_download: true
  1575. terraform_state:
  1576. enabled: false
  1577. object_store:
  1578. enabled: false
  1579. remote_directory: gitlab-terraform-state
  1580. proxy_download: true
  1581. ci_secure_files:
  1582. enabled: false
  1583. object_store:
  1584. enabled: false
  1585. remote_directory: gitlab-ci-secure-files
  1586. proxy_download: true
  1587. dependency_proxy:
  1588. enabled: false
  1589. object_store:
  1590. enabled: false
  1591. remote_directory: gitlab-dependency-proxy
  1592. proxy_download: true
  1593. sentry:
  1594. enabled: false
  1595. dsn:
  1596. clientside_dsn:
  1597. environment:
  1598. gitlab_docs:
  1599. enabled: false
  1600. host: ""
  1601. sidekiq:
  1602. pages:
  1603. enabled: false
  1604. access_control: false
  1605. artifacts_server: true
  1606. path: /srv/gitlab/shared/pages
  1607. host: pages.git.dezendorf.net
  1608. port: 443
  1609. https: true
  1610. secret_file: /etc/gitlab/pages/secret
  1611. external_http: false
  1612. external_https: false
  1613. object_store:
  1614. enabled: true
  1615. remote_directory: gitlab-pages
  1616. connection:
  1617. provider: AWS
  1618. region: us-east-1
  1619. host: minio.git.dezendorf.net
  1620. endpoint: http://gitlab-minio-svc.default.svc:9000
  1621. path_style: true
  1622. aws_access_key_id: <%= File.read('/etc/gitlab/minio/accesskey').strip.to_json %>
  1623. aws_secret_access_key: <%= File.read('/etc/gitlab/minio/secretkey').strip.to_json %>
  1624. local_store:
  1625. enabled: false
  1626. path:
  1627. mattermost:
  1628. enabled: false
  1629. gitlab_ci:
  1630. ldap:
  1631. enabled: false
  1632. omniauth:
  1633. enabled: false
  1634. sync_profile_from_provider: []
  1635. sync_profile_attributes: ["email"]
  1636. allow_single_sign_on: ["saml"]
  1637. block_auto_created_users: true
  1638. auto_link_ldap_user: false
  1639. auto_link_saml_user: false
  1640. external_providers: []
  1641. kerberos:
  1642. enabled: false
  1643. keytab: /etc/krb5.keytab
  1644. use_dedicated_port: false
  1645. port: 8443
  1646. https: true
  1647. simple_ldap_linking_allowed_realms: []
  1648. shared:
  1649. gitaly:
  1650. client_path: /home/git/gitaly/bin
  1651. token: <%= File.read('/etc/gitlab/gitaly/gitaly_token').strip.to_json %>
  1652. repositories:
  1653. storages: # You must have at least a `default` storage path.
  1654. default:
  1655. path: /var/opt/gitlab/repo
  1656. gitaly_address: tcp://gitlab-gitaly-0.gitlab-gitaly.default.svc:8075
  1657. backup:
  1658. path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
  1659. gitlab_kas:
  1660. enabled: true
  1661. secret_file: /etc/gitlab/kas/.gitlab_kas_secret
  1662. external_url: "wss://kas.git.dezendorf.net"
  1663. internal_url: "grpc://gitlab-kas.default.svc:8153"
  1664. suggested_reviewers:
  1665. secret_file: /etc/gitlab/suggested_reviewers/.gitlab_suggested_reviewers_secret
  1666. gitlab_shell:
  1667. path: /home/git/gitlab-shell/
  1668. hooks_path: /home/git/gitlab-shell/hooks/
  1669. upload_pack: true
  1670. receive_pack: true
  1671. ssh_port: 22
  1672. secret_file: /etc/gitlab/shell/.gitlab_shell_secret
  1673. workhorse:
  1674. secret_file: /etc/gitlab/gitlab-workhorse/secret
  1675. git:
  1676. bin_path: /usr/bin/git
  1677. webpack:
  1678. monitoring:
  1679. ip_whitelist:
  1680. - 0.0.0.0/0
  1681. web_exporter:
  1682. enabled: true
  1683. address: 0.0.0.0
  1684. port: 8083
  1685. sidekiq_exporter:
  1686. shutdown:
  1687. blackout_seconds: <%= ENV["SHUTDOWN_BLACKOUT_SECONDS"] %>
  1688. rack_attack:
  1689. git_basic_auth:
  1690. ## Registry Integration
  1691. registry:
  1692. enabled: true
  1693. host: registry.git.dezendorf.net
  1694. api_url: http://gitlab-registry.default.svc:5000
  1695. key: /etc/gitlab/registry/gitlab-registry.key
  1696. issuer: gitlab-issuer
  1697. notification_secret: <%= YAML.load_file("/etc/gitlab/registry/notificationSecret").flatten.first %>
  1698. smartcard:
  1699. enabled: false
  1700. ca_file: '/etc/gitlab/rails-secrets/smartcard-ca.crt'
  1701. client_certificate_required_host: smartcard.git.dezendorf.net
  1702. client_certificate_required_port: 443
  1703. san_extensions: false
  1704. required_for_git_access: false
  1705. configure: |
  1706. # BEGIN gitlab.scripts.configure.secrets
  1707. set -e
  1708. config_dir="/init-config"
  1709. secret_dir="/init-secrets"
  1710. # required
  1711. for secret in shell gitaly registry rails-secrets gitlab-workhorse ; do
  1712. mkdir -p "${secret_dir}/${secret}"
  1713. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1714. done
  1715. # optional
  1716. for secret in redis minio objectstorage postgres ldap omniauth smtp kas pages oauth-secrets mailroom gitlab-exporter microsoft_graph_mailer suggested_reviewers ; do
  1717. if [ -e "${config_dir}/${secret}" ]; then
  1718. mkdir -p "${secret_dir}/${secret}"
  1719. cp -v -r -L "${config_dir}/${secret}/." "${secret_dir}/${secret}/"
  1720. fi
  1721. done
  1722. # END gitlab.scripts.configure.secrets
  1723. ---
  1724. # Source: gitlab/charts/gitlab/charts/webservice/templates/configmap.yml
  1725. apiVersion: v1
  1726. kind: ConfigMap
  1727. metadata:
  1728. name: gitlab-workhorse-default
  1729. namespace: default
  1730. labels:
  1731. app: webservice
  1732. chart: webservice-6.8.0
  1733. release: gitlab
  1734. heritage: Helm
  1735. data:
  1736. installation_type: |
  1737. gitlab-helm-chart
  1738. workhorse-config.toml.tpl: |
  1739. shutdown_timeout = "61s"
  1740. [redis]
  1741. URL = "redis://gitlab-redis-master.default.svc:6379"
  1742. Password = {% file.Read "/etc/gitlab/redis/redis-password" | strings.TrimSpace | data.ToJSON %}
  1743. {%- $supported_providers := slice "AWS" "AzureRM" -%}
  1744. {%- $provider := "" -%}
  1745. {%- $aws_access_key_id := "" -%}
  1746. {%- $aws_secret_access_key := "" -%}
  1747. {%- $azure_storage_account_name := "" -%}
  1748. {%- $azure_storage_access_key := "" -%}
  1749. {%- if file.Exists "/etc/gitlab/minio/accesskey" %}
  1750. {%- $provider = "AWS" -%}
  1751. {%- $aws_access_key_id = file.Read "/etc/gitlab/minio/accesskey" | strings.TrimSpace -%}
  1752. {%- $aws_secret_access_key = file.Read "/etc/gitlab/minio/secretkey" | strings.TrimSpace -%}
  1753. {%- end %}
  1754. {%- if file.Exists "/etc/gitlab/objectstorage/object_store" %}
  1755. {%- $connection := file.Read "/etc/gitlab/objectstorage/object_store" | strings.TrimSpace | data.YAML -%}
  1756. {%- $provider = $connection.provider -%}
  1757. {%- if has $connection "aws_access_key_id" -%}
  1758. {%- $aws_access_key_id = $connection.aws_access_key_id -%}
  1759. {%- $aws_secret_access_key = $connection.aws_secret_access_key -%}
  1760. {%- else if has $connection "azure_storage_account_name" -%}
  1761. {%- $azure_storage_account_name = $connection.azure_storage_account_name -%}
  1762. {%- $azure_storage_access_key = $connection.azure_storage_access_key -%}
  1763. {%- end -%}
  1764. {%- end %}
  1765. {%- if has $supported_providers $provider %}
  1766. [object_storage]
  1767. provider = "{% $provider %}"
  1768. {%- if eq $provider "AWS" %}
  1769. # AWS / S3 object storage configuration.
  1770. [object_storage.s3]
  1771. # access/secret can be blank!
  1772. aws_access_key_id = {% $aws_access_key_id | strings.TrimSpace | data.ToJSON %}
  1773. aws_secret_access_key = {% $aws_secret_access_key | strings.TrimSpace | data.ToJSON %}
  1774. {%- else if eq $provider "AzureRM" %}
  1775. # Azure Blob storage configuration.
  1776. [object_storage.azurerm]
  1777. azure_storage_account_name = {% $azure_storage_account_name | strings.TrimSpace | data.ToJSON %}
  1778. azure_storage_access_key = {% $azure_storage_access_key | strings.TrimSpace | data.ToJSON %}
  1779. {%- end %}
  1780. {%- end %}
  1781. [image_resizer]
  1782. max_scaler_procs = 2
  1783. max_filesize = 250000
  1784. [[listeners]]
  1785. network = "tcp"
  1786. addr = "0.0.0.0:8181"
  1787. configure: |
  1788. set -e
  1789. mkdir -p /init-secrets-workhorse/gitlab-workhorse
  1790. cp -v -r -L /init-config/gitlab-workhorse/secret /init-secrets-workhorse/gitlab-workhorse/secret
  1791. mkdir -p /init-secrets-workhorse/redis
  1792. cp -v -r -L /init-config/redis/redis-password /init-secrets-workhorse/redis/
  1793. if [ -d /init-config/minio ]; then
  1794. mkdir -p /init-secrets-workhorse/minio
  1795. cp -v -r -L /init-config/minio/* /init-secrets-workhorse/minio/
  1796. fi
  1797. # Leave this here - This line denotes end of block to the parser.
  1798. ---
  1799. # Source: gitlab/charts/gitlab/charts/webservice/templates/tests/tests.yaml
  1800. apiVersion: v1
  1801. kind: ConfigMap
  1802. metadata:
  1803. name: gitlab-webservice-tests
  1804. namespace: default
  1805. labels:
  1806. app: webservice
  1807. chart: webservice-6.8.0
  1808. release: gitlab
  1809. heritage: Helm
  1810. data:
  1811. test_login: |
  1812. set -e
  1813. echo 'Start Test'
  1814. endpoint="https://gitlab.git.dezendorf.net"
  1815. cookie_read="-c /tmp/test_login.cookie"
  1816. cookie_readwrite="$cookie_read -b /tmp/test_login.cookie"
  1817. signin_url="$endpoint/users/sign_in"
  1818. echo "Login to create a session: $signin_url"
  1819. csrf=$(curl -L $signin_url --fail -s $cookie_read | grep -Po '<meta.*name="csrf-token".*content="\K[a-zA-Z0-9\+=\-\/]*')
  1820. curl -X POST $signin_url -s $cookie_readwrite -F "authenticity_token=$csrf" -F 'user[login]=root' -F "user[password]=$(cat /initial_root_password)"
  1821. profile_url="$endpoint/-/profile"
  1822. echo "Confirm session valid: $profile_url"
  1823. profile_status=$(curl -L -s -o /tmp/profile_output -w "%{http_code}" $cookie_readwrite $profile_url)
  1824. if [ "$profile_status" != "200" ]; then
  1825. echo "Error: Session Invalid"
  1826. cat /tmp/profile_output
  1827. exit 1
  1828. fi
  1829. echo 'Test Passed'
  1830. exit 0
  1831. # Leave this here - This line denotes end of block to the parser.
  1832. ---
  1833. # Source: gitlab/charts/minio/templates/minioconfig_configmap.yaml
  1834. apiVersion: v1
  1835. kind: ConfigMap
  1836. metadata:
  1837. name: gitlab-minio-config-cm
  1838. namespace: default
  1839. labels:
  1840. app: minio
  1841. chart: minio-0.4.3
  1842. release: gitlab
  1843. heritage: Helm
  1844. data:
  1845. initialize: |-
  1846. #!/bin/sh
  1847. # minio/mc container has Busybox Ash, be sure to be POSIX compliant and avoid Bash-isms
  1848. set -e ; # Have script exit in the event of a failed command.
  1849. # connectToMinio
  1850. # Use a check-sleep-check loop to wait for Minio service to be available
  1851. connectToMinio() {
  1852. set -e ; # fail if we can't read the keys.
  1853. ACCESS=$(cat /config/accesskey) ; SECRET=$(cat /config/secretkey) ;
  1854. set +e ; # The connections to minio are allowed to fail.
  1855. echo "Connecting to Minio server: http://$MINIO_ENDPOINT:$MINIO_PORT" ;
  1856. MC_COMMAND="mc config host add myminio http://$MINIO_ENDPOINT:$MINIO_PORT $ACCESS $SECRET" ;
  1857. $MC_COMMAND ;
  1858. STATUS=$? ;
  1859. until [ $STATUS -eq 0 ] ;
  1860. do
  1861. sleep 1 ; # 1 second intervals between attempts
  1862. $MC_COMMAND ;
  1863. STATUS=$? ;
  1864. done ;
  1865. set -e ; # reset `e` as active
  1866. return 0
  1867. }
  1868. # checkBucketExists ($bucket)
  1869. # Check if the bucket exists, by using the exit code of `mc ls`
  1870. checkBucketExists() {
  1871. BUCKET=$1
  1872. CMD=$(/usr/bin/mc ls myminio/$BUCKET > /dev/null 2>&1)
  1873. return $?
  1874. }
  1875. # createBucket ($bucket, $policy, $purge)
  1876. # Ensure bucket exists, purging if asked to
  1877. createBucket() {
  1878. BUCKET=$1
  1879. POLICY=$2
  1880. PURGE=$3
  1881. # Purge the bucket, if set & exists
  1882. # Since PURGE is user input, check explicitly for `true`
  1883. if [ $PURGE = true ]; then
  1884. if checkBucketExists $BUCKET ; then
  1885. echo "Purging bucket '$BUCKET'."
  1886. set +e ; # don't exit if this fails
  1887. /usr/bin/mc rm -r --force myminio/$BUCKET
  1888. set -e ; # reset `e` as active
  1889. else
  1890. echo "Bucket '$BUCKET' does not exist, skipping purge."
  1891. fi
  1892. fi
  1893. # Create the bucket if it does not exist
  1894. if ! checkBucketExists $BUCKET ; then
  1895. echo "Creating bucket '$BUCKET'"
  1896. /usr/bin/mc mb myminio/$BUCKET
  1897. else
  1898. echo "Bucket '$BUCKET' already exists."
  1899. fi
  1900. # At this point, the bucket should exist, skip checking for existance
  1901. # Set policy on the bucket
  1902. echo "Setting policy of bucket '$BUCKET' to '$POLICY'."
  1903. /usr/bin/mc policy $POLICY myminio/$BUCKET
  1904. }
  1905. connectToMinio
  1906. createBucket registry none false
  1907. createBucket git-lfs none false
  1908. createBucket runner-cache none false
  1909. createBucket gitlab-uploads none false
  1910. createBucket gitlab-artifacts none false
  1911. createBucket gitlab-backups none false
  1912. createBucket gitlab-packages none false
  1913. createBucket tmp none false
  1914. createBucket gitlab-mr-diffs none false
  1915. createBucket gitlab-terraform-state none false
  1916. createBucket gitlab-ci-secure-files none false
  1917. createBucket gitlab-dependency-proxy none false
  1918. createBucket gitlab-pages none false
  1919. configure: |-
  1920. sed -e 's@ACCESS_KEY@'"$(cat /config/accesskey)"'@' -e 's@SECRET_KEY@'"$(cat /config/secretkey)"'@' /config/config.json > /minio/config.json
  1921. config.json: |-
  1922. {
  1923. "version": "20",
  1924. "credential": {
  1925. "accessKey": "ACCESS_KEY",
  1926. "secretKey": "SECRET_KEY"
  1927. },
  1928. "region": "us-east-1",
  1929. "browser": "on",
  1930. "domain": "",
  1931. "logger": {
  1932. "console": {
  1933. "enable": true
  1934. },
  1935. "file": {
  1936. "enable": false,
  1937. "fileName": ""
  1938. }
  1939. },
  1940. "notify": {
  1941. "amqp": {
  1942. "1": {
  1943. "enable": false,
  1944. "url": "",
  1945. "exchange": "",
  1946. "routingKey": "",
  1947. "exchangeType": "",
  1948. "deliveryMode": 0,
  1949. "mandatory": false,
  1950. "immediate": false,
  1951. "durable": false,
  1952. "internal": false,
  1953. "noWait": false,
  1954. "autoDeleted": false
  1955. }
  1956. },
  1957. "nats": {
  1958. "1": {
  1959. "enable": false,
  1960. "address": "",
  1961. "subject": "",
  1962. "username": "",
  1963. "password": "",
  1964. "token": "",
  1965. "secure": false,
  1966. "pingInterval": 0,
  1967. "streaming": {
  1968. "enable": false,
  1969. "clusterID": "",
  1970. "clientID": "",
  1971. "async": false,
  1972. "maxPubAcksInflight": 0
  1973. }
  1974. }
  1975. },
  1976. "elasticsearch": {
  1977. "1": {
  1978. "enable": false,
  1979. "format": "namespace",
  1980. "url": "",
  1981. "index": ""
  1982. }
  1983. },
  1984. "redis": {
  1985. "1": {
  1986. "enable": false,
  1987. "format": "namespace",
  1988. "address": "",
  1989. "password": "",
  1990. "key": ""
  1991. }
  1992. },
  1993. "postgresql": {
  1994. "1": {
  1995. "enable": false,
  1996. "format": "namespace",
  1997. "connectionString": "",
  1998. "table": "",
  1999. "host": "",
  2000. "port": "",
  2001. "user": "",
  2002. "password": "",
  2003. "database": ""
  2004. }
  2005. },
  2006. "kafka": {
  2007. "1": {
  2008. "enable": false,
  2009. "brokers": null,
  2010. "topic": ""
  2011. }
  2012. },
  2013. "webhook": {
  2014. "1": {
  2015. "enable": false,
  2016. "endpoint": ""
  2017. }
  2018. },
  2019. "mysql": {
  2020. "1": {
  2021. "enable": false,
  2022. "format": "namespace",
  2023. "dsnString": "",
  2024. "table": "",
  2025. "host": "",
  2026. "port": "",
  2027. "user": "",
  2028. "password": "",
  2029. "database": ""
  2030. }
  2031. },
  2032. "mqtt": {
  2033. "1": {
  2034. "enable": false,
  2035. "broker": "",
  2036. "topic": "",
  2037. "qos": 0,
  2038. "clientId": "",
  2039. "username": "",
  2040. "password": ""
  2041. }
  2042. }
  2043. }
  2044. }
  2045. # Blank line to signal end of Block
  2046. ---
  2047. # Source: gitlab/charts/nginx-ingress/templates/controller-configmap-addheaders.yaml
  2048. apiVersion: v1
  2049. kind: ConfigMap
  2050. metadata:
  2051. labels:
  2052. app: nginx-ingress
  2053. chart: nginx-ingress-4.0.6
  2054. release: gitlab
  2055. heritage: Helm
  2056. component: "controller"
  2057. helm.sh/chart: nginx-ingress-4.0.6
  2058. app.kubernetes.io/version: "1.0.4"
  2059. app.kubernetes.io/managed-by: Helm
  2060. app.kubernetes.io/component: controller
  2061. name: gitlab-nginx-ingress-custom-add-headers
  2062. namespace: default
  2063. data:
  2064. Referrer-Policy: strict-origin-when-cross-origin
  2065. ---
  2066. # Source: gitlab/charts/nginx-ingress/templates/controller-configmap.yaml
  2067. apiVersion: v1
  2068. kind: ConfigMap
  2069. metadata:
  2070. labels:
  2071. app: nginx-ingress
  2072. chart: nginx-ingress-4.0.6
  2073. release: gitlab
  2074. heritage: Helm
  2075. component: "controller"
  2076. helm.sh/chart: nginx-ingress-4.0.6
  2077. app.kubernetes.io/version: "1.0.4"
  2078. app.kubernetes.io/managed-by: Helm
  2079. app.kubernetes.io/component: controller
  2080. name: gitlab-nginx-ingress-controller
  2081. namespace: default
  2082. data:
  2083. allow-snippet-annotations: "true"
  2084. add-headers: default/gitlab-nginx-ingress-custom-add-headers
  2085. annotation-value-word-blocklist: "load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},',\""
  2086. hsts: "true"
  2087. hsts-include-subdomains: "false"
  2088. hsts-max-age: "63072000"
  2089. server-name-hash-bucket-size: "256"
  2090. server-tokens: "false"
  2091. ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"
  2092. ssl-protocols: "TLSv1.3 TLSv1.2"
  2093. use-http2: "true"
  2094. ---
  2095. # Source: gitlab/charts/prometheus/templates/server/cm.yaml
  2096. apiVersion: v1
  2097. kind: ConfigMap
  2098. metadata:
  2099. labels:
  2100. component: "server"
  2101. app: prometheus
  2102. release: gitlab
  2103. chart: prometheus-15.0.4
  2104. heritage: Helm
  2105. name: gitlab-prometheus-server
  2106. namespace: default
  2107. data:
  2108. alerting_rules.yml: |
  2109. {}
  2110. alerts: |
  2111. {}
  2112. prometheus.yml: |
  2113. global:
  2114. evaluation_interval: 1m
  2115. scrape_interval: 1m
  2116. scrape_timeout: 10s
  2117. rule_files:
  2118. - /etc/config/recording_rules.yml
  2119. - /etc/config/alerting_rules.yml
  2120. - /etc/config/rules
  2121. - /etc/config/alerts
  2122. scrape_configs:
  2123. - job_name: prometheus
  2124. static_configs:
  2125. - targets:
  2126. - localhost:9090
  2127. - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  2128. job_name: kubernetes-apiservers
  2129. kubernetes_sd_configs:
  2130. - role: endpoints
  2131. relabel_configs:
  2132. - action: keep
  2133. regex: default;kubernetes;https
  2134. source_labels:
  2135. - __meta_kubernetes_namespace
  2136. - __meta_kubernetes_service_name
  2137. - __meta_kubernetes_endpoint_port_name
  2138. scheme: https
  2139. tls_config:
  2140. ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  2141. insecure_skip_verify: true
  2142. - job_name: kubernetes-pods
  2143. kubernetes_sd_configs:
  2144. - role: pod
  2145. relabel_configs:
  2146. - action: keep
  2147. regex: true
  2148. source_labels:
  2149. - __meta_kubernetes_pod_annotation_gitlab_com_prometheus_scrape
  2150. - action: replace
  2151. regex: (https?)
  2152. source_labels:
  2153. - __meta_kubernetes_pod_annotation_gitlab_com_prometheus_scheme
  2154. target_label: __scheme__
  2155. - action: replace
  2156. regex: (.+)
  2157. source_labels:
  2158. - __meta_kubernetes_pod_annotation_gitlab_com_prometheus_path
  2159. target_label: __metrics_path__
  2160. - action: replace
  2161. regex: ([^:]+)(?::\d+)?;(\d+)
  2162. replacement: $1:$2
  2163. source_labels:
  2164. - __address__
  2165. - __meta_kubernetes_pod_annotation_gitlab_com_prometheus_port
  2166. target_label: __address__
  2167. - action: labelmap
  2168. regex: __meta_kubernetes_pod_label_(.+)
  2169. - action: replace
  2170. source_labels:
  2171. - __meta_kubernetes_namespace
  2172. target_label: kubernetes_namespace
  2173. - action: replace
  2174. source_labels:
  2175. - __meta_kubernetes_pod_name
  2176. target_label: kubernetes_pod_name
  2177. - job_name: kubernetes-service-endpoints
  2178. kubernetes_sd_configs:
  2179. - role: endpoints
  2180. relabel_configs:
  2181. - action: keep
  2182. regex: true
  2183. source_labels:
  2184. - __meta_kubernetes_service_annotation_gitlab_com_prometheus_scrape
  2185. - action: replace
  2186. regex: (https?)
  2187. source_labels:
  2188. - __meta_kubernetes_service_annotation_gitlab_com_prometheus_scheme
  2189. target_label: __scheme__
  2190. - action: replace
  2191. regex: (.+)
  2192. source_labels:
  2193. - __meta_kubernetes_service_annotation_gitlab_com_prometheus_path
  2194. target_label: __metrics_path__
  2195. - action: replace
  2196. regex: ([^:]+)(?::\d+)?;(\d+)
  2197. replacement: $1:$2
  2198. source_labels:
  2199. - __address__
  2200. - __meta_kubernetes_service_annotation_gitlab_com_prometheus_port
  2201. target_label: __address__
  2202. - action: labelmap
  2203. regex: __meta_kubernetes_service_label_(.+)
  2204. - action: replace
  2205. source_labels:
  2206. - __meta_kubernetes_namespace
  2207. target_label: kubernetes_namespace
  2208. - action: replace
  2209. source_labels:
  2210. - __meta_kubernetes_service_name
  2211. target_label: kubernetes_name
  2212. - action: replace
  2213. source_labels:
  2214. - __meta_kubernetes_pod_node_name
  2215. target_label: kubernetes_node
  2216. - job_name: kubernetes-services
  2217. kubernetes_sd_configs:
  2218. - role: service
  2219. metrics_path: /probe
  2220. params:
  2221. module:
  2222. - http_2xx
  2223. relabel_configs:
  2224. - action: keep
  2225. regex: true
  2226. source_labels:
  2227. - __meta_kubernetes_service_annotation_gitlab_com_prometheus_probe
  2228. - source_labels:
  2229. - __address__
  2230. target_label: __param_target
  2231. - replacement: blackbox
  2232. target_label: __address__
  2233. - source_labels:
  2234. - __param_target
  2235. target_label: instance
  2236. - action: labelmap
  2237. regex: __meta_kubernetes_service_label_(.+)
  2238. - source_labels:
  2239. - __meta_kubernetes_namespace
  2240. target_label: kubernetes_namespace
  2241. - source_labels:
  2242. - __meta_kubernetes_service_name
  2243. target_label: kubernetes_name
  2244. recording_rules.yml: |
  2245. {}
  2246. rules: |
  2247. {}
  2248. ---
  2249. # Source: gitlab/charts/redis/templates/configmap-scripts.yaml
  2250. apiVersion: v1
  2251. kind: ConfigMap
  2252. metadata:
  2253. name: gitlab-redis-scripts
  2254. namespace: "default"
  2255. labels:
  2256. app: redis
  2257. chart: redis-11.3.4
  2258. heritage: Helm
  2259. release: gitlab
  2260. data:
  2261. start-master.sh: |
  2262. #!/bin/bash
  2263. useradd redis
  2264. chown -R redis /data
  2265. if [[ -n $REDIS_PASSWORD_FILE ]]; then
  2266. password_aux=`cat ${REDIS_PASSWORD_FILE}`
  2267. export REDIS_PASSWORD=$password_aux
  2268. fi
  2269. if [[ ! -f /opt/bitnami/redis/etc/master.conf ]];then
  2270. cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf
  2271. fi
  2272. if [[ ! -f /opt/bitnami/redis/etc/redis.conf ]];then
  2273. cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf
  2274. fi
  2275. ARGS=("--port" "${REDIS_PORT}")
  2276. ARGS+=("--requirepass" "${REDIS_PASSWORD}")
  2277. ARGS+=("--masterauth" "${REDIS_PASSWORD}")
  2278. ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf")
  2279. ARGS+=("--include" "/opt/bitnami/redis/etc/master.conf")
  2280. exec /run.sh "${ARGS[@]}"
  2281. ---
  2282. # Source: gitlab/charts/redis/templates/configmap.yaml
  2283. apiVersion: v1
  2284. kind: ConfigMap
  2285. metadata:
  2286. name: gitlab-redis
  2287. namespace: "default"
  2288. labels:
  2289. app: redis
  2290. chart: redis-11.3.4
  2291. heritage: Helm
  2292. release: gitlab
  2293. data:
  2294. redis.conf: |-
  2295. # User-supplied configuration:
  2296. # Enable AOF https://redis.io/topics/persistence#append-only-file
  2297. appendonly yes
  2298. # Disable RDB persistence, AOF persistence already enabled.
  2299. save ""
  2300. master.conf: |-
  2301. dir /data
  2302. rename-command FLUSHDB ""
  2303. rename-command FLUSHALL ""
  2304. replica.conf: |-
  2305. dir /data
  2306. slave-read-only yes
  2307. rename-command FLUSHDB ""
  2308. rename-command FLUSHALL ""
  2309. ---
  2310. # Source: gitlab/charts/redis/templates/health-configmap.yaml
  2311. apiVersion: v1
  2312. kind: ConfigMap
  2313. metadata:
  2314. name: gitlab-redis-health
  2315. namespace: "default"
  2316. labels:
  2317. app: redis
  2318. chart: redis-11.3.4
  2319. heritage: Helm
  2320. release: gitlab
  2321. data:
  2322. ping_readiness_local.sh: |-
  2323. #!/bin/bash
  2324. password_aux=`cat ${REDIS_PASSWORD_FILE}`
  2325. export REDIS_PASSWORD=$password_aux
  2326. no_auth_warning=$([[ "$(redis-cli --version)" =~ (redis-cli 5.*) ]] && echo --no-auth-warning)
  2327. response=$(
  2328. timeout -s 3 $1 \
  2329. redis-cli \
  2330. -a $REDIS_PASSWORD $no_auth_warning \
  2331. -h localhost \
  2332. -p $REDIS_PORT \
  2333. ping
  2334. )
  2335. if [ "$response" != "PONG" ]; then
  2336. echo "$response"
  2337. exit 1
  2338. fi
  2339. ping_liveness_local.sh: |-
  2340. #!/bin/bash
  2341. password_aux=`cat ${REDIS_PASSWORD_FILE}`
  2342. export REDIS_PASSWORD=$password_aux
  2343. no_auth_warning=$([[ "$(redis-cli --version)" =~ (redis-cli 5.*) ]] && echo --no-auth-warning)
  2344. response=$(
  2345. timeout -s 3 $1 \
  2346. redis-cli \
  2347. -a $REDIS_PASSWORD $no_auth_warning \
  2348. -h localhost \
  2349. -p $REDIS_PORT \
  2350. ping
  2351. )
  2352. if [ "$response" != "PONG" ] && [ "$response" != "LOADING Redis is loading the dataset in memory" ]; then
  2353. echo "$response"
  2354. exit 1
  2355. fi
  2356. ping_readiness_master.sh: |-
  2357. #!/bin/bash
  2358. password_aux=`cat ${REDIS_MASTER_PASSWORD_FILE}`
  2359. export REDIS_MASTER_PASSWORD=$password_aux
  2360. no_auth_warning=$([[ "$(redis-cli --version)" =~ (redis-cli 5.*) ]] && echo --no-auth-warning)
  2361. response=$(
  2362. timeout -s 3 $1 \
  2363. redis-cli \
  2364. -a $REDIS_MASTER_PASSWORD $no_auth_warning \
  2365. -h $REDIS_MASTER_HOST \
  2366. -p $REDIS_MASTER_PORT_NUMBER \
  2367. ping
  2368. )
  2369. if [ "$response" != "PONG" ]; then
  2370. echo "$response"
  2371. exit 1
  2372. fi
  2373. ping_liveness_master.sh: |-
  2374. #!/bin/bash
  2375. password_aux=`cat ${REDIS_MASTER_PASSWORD_FILE}`
  2376. export REDIS_MASTER_PASSWORD=$password_aux
  2377. no_auth_warning=$([[ "$(redis-cli --version)" =~ (redis-cli 5.*) ]] && echo --no-auth-warning)
  2378. response=$(
  2379. timeout -s 3 $1 \
  2380. redis-cli \
  2381. -a $REDIS_MASTER_PASSWORD $no_auth_warning \
  2382. -h $REDIS_MASTER_HOST \
  2383. -p $REDIS_MASTER_PORT_NUMBER \
  2384. ping
  2385. )
  2386. if [ "$response" != "PONG" ] && [ "$response" != "LOADING Redis is loading the dataset in memory" ]; then
  2387. echo "$response"
  2388. exit 1
  2389. fi
  2390. ping_readiness_local_and_master.sh: |-
  2391. script_dir="$(dirname "$0")"
  2392. exit_status=0
  2393. "$script_dir/ping_readiness_local.sh" $1 || exit_status=$?
  2394. "$script_dir/ping_readiness_master.sh" $1 || exit_status=$?
  2395. exit $exit_status
  2396. ping_liveness_local_and_master.sh: |-
  2397. script_dir="$(dirname "$0")"
  2398. exit_status=0
  2399. "$script_dir/ping_liveness_local.sh" $1 || exit_status=$?
  2400. "$script_dir/ping_liveness_master.sh" $1 || exit_status=$?
  2401. exit $exit_status
  2402. ---
  2403. # Source: gitlab/charts/registry/templates/configmap.yaml
  2404. apiVersion: v1
  2405. kind: ConfigMap
  2406. metadata:
  2407. name: gitlab-registry
  2408. namespace: default
  2409. labels:
  2410. app: registry
  2411. chart: registry-0.7.0
  2412. release: gitlab
  2413. heritage: Helm
  2414. data:
  2415. configure: |-
  2416. if [ -e /config/accesskey ] ; then
  2417. sed -e 's@ACCESS_KEY@'"$(cat /config/accesskey)"'@' -e 's@SECRET_KEY@'"$(cat /config/secretkey)"'@' /config/config.yml > /registry/config.yml
  2418. else
  2419. cp -v -r -L /config/config.yml /registry/config.yml
  2420. fi
  2421. # Place the `http.secret` value from the kubernetes secret
  2422. sed -i -e 's@HTTP_SECRET@'"$(cat /config/httpSecret)"'@' /registry/config.yml
  2423. # Populate sensitive registry notification secrets in the config file
  2424. if [ -d /config/notifications ]; then
  2425. for i in /config/notifications/*; do
  2426. filename=$(basename $i);
  2427. sed -i -e 's@'"${filename}"'@'"$(cat $i)"'@' /registry/config.yml;
  2428. done
  2429. fi
  2430. # Insert any provided `storage` block from kubernetes secret
  2431. if [ -d /config/storage ]; then
  2432. # Copy contents of storage secret(s)
  2433. mkdir -p /registry/storage
  2434. cp -v -r -L /config/storage/* /registry/storage/
  2435. # Ensure there is a new line in the end
  2436. echo '' >> /registry/storage/config
  2437. # Default `delete.enabled: true` if not present.
  2438. ## Note: busybox grep doesn't support multiline, so we chain `egrep`.
  2439. if ! $(egrep -A1 '^delete:\s*$' /registry/storage/config | egrep -q '\s{2,4}enabled:') ; then
  2440. echo 'delete:' >> /registry/storage/config
  2441. echo ' enabled: true' >> /registry/storage/config
  2442. fi
  2443. # Indent /registry/storage/config 2 spaces before inserting into config.yml
  2444. sed -i 's/^/ /' /registry/storage/config
  2445. # Insert into /registry/config.yml after `storage:`
  2446. sed -i '/^storage:/ r /registry/storage/config' /registry/config.yml
  2447. # Remove the now extraneous `config` file
  2448. rm /registry/storage/config
  2449. fi
  2450. # Copy any middleware.storage if present
  2451. if [ -d /config/middleware.storage ]; then
  2452. cp -v -r -L /config/middleware.storage /registry/middleware.storage
  2453. fi
  2454. # Set to known path, to used ConfigMap
  2455. cat /config/certificate.crt > /registry/certificate.crt
  2456. # Copy the optional profiling keyfile to the expected location
  2457. if [ -f /config/profiling-key.json ]; then
  2458. cp /config/profiling-key.json /registry/profiling-key.json
  2459. fi
  2460. # Insert Database password, if enabled
  2461. if [ -f /config/database_password ] ; then
  2462. sed -i -e 's@DB_PASSWORD_FILE@'"$(cat /config/database_password)"'@' /registry/config.yml
  2463. fi
  2464. # Insert Redis password, if enabled
  2465. if [ -f /config/registry/redis-password ] ; then
  2466. sed -i -e 's@REDIS_CACHE_PASSWORD@'"$(cat /config/registry/redis-password)"'@' /registry/config.yml
  2467. fi
  2468. # Insert import notification secret, if migration is enabled
  2469. if [ -f /config/registry/notificationSecret ] ; then
  2470. sed -i -e 's@NOTIFICATION_SECRET@'"$(cat /config/registry/notificationSecret | tr -d '[]"')"'@' /registry/config.yml
  2471. fi
  2472. # Copy the database TLS connection files to the expected location and set permissions
  2473. if [ -d /config/ssl ]; then
  2474. cp -r /config/ssl/ /registry/ssl
  2475. chmod 700 /registry/ssl
  2476. chmod 600 /registry/ssl/*.pem
  2477. fi
  2478. # Copy TLS certificates if present
  2479. if [ -d /config/tls ]; then
  2480. cp -r /config/tls/ /registry/tls
  2481. chmod 700 /registry/tls
  2482. chmod 600 /registry/tls/*
  2483. fi
  2484. config.yml: |
  2485. version: 0.1
  2486. log:
  2487. fields:
  2488. service: registry
  2489. level: info
  2490. http:
  2491. addr: :5000
  2492. # `host` is not configurable
  2493. # `prefix` is not configurable
  2494. debug:
  2495. addr: :5001
  2496. prometheus:
  2497. enabled: false
  2498. path: /metrics
  2499. draintimeout: 0
  2500. headers:
  2501. X-Content-Type-Options: [nosniff]
  2502. secret: "HTTP_SECRET"
  2503. relativeurls: false
  2504. health:
  2505. storagedriver:
  2506. enabled: false
  2507. interval: 10s
  2508. threshold: 3
  2509. auth:
  2510. token:
  2511. realm: https://gitlab.git.dezendorf.net/jwt/auth
  2512. service: container_registry
  2513. issuer: "gitlab-issuer"
  2514. # This is provided from the initContainer execution, at a known path.
  2515. rootcertbundle: /etc/docker/registry/certificate.crt
  2516. autoredirect: false
  2517. compatibility:
  2518. schema1:
  2519. enabled: false
  2520. validation:
  2521. disabled: true
  2522. manifests:
  2523. referencelimit: 0
  2524. payloadsizelimit: 0
  2525. urls:
  2526. allow:
  2527. deny:
  2528. notifications:
  2529. reporting:
  2530. profiling:
  2531. storage:
  2532. maintenance:
  2533. readonly:
  2534. enabled: false
  2535. uploadpurging:
  2536. enabled: true
  2537. age: 168h
  2538. interval: 24h
  2539. dryrun: false
  2540. s3:
  2541. accesskey: "ACCESS_KEY"
  2542. secretkey: "SECRET_KEY"
  2543. region: us-east-1
  2544. regionendpoint: http://gitlab-minio-svc.default.svc:9000
  2545. bucket: registry
  2546. secure: true
  2547. v4auth: true
  2548. rootdirectory: /
  2549. cache:
  2550. blobdescriptor: 'inmemory'
  2551. delete:
  2552. enabled: true
  2553. redirect:
  2554. disable: true
  2555. middleware:
  2556. gc:
  2557. disabled: true
  2558. migration:
  2559. enabled: false
  2560. redis:
  2561. cache:
  2562. enabled: false
  2563. addr: "gitlab-redis-master.default.svc:6379"
  2564. # minimal configuration, in order to do database migrations
  2565. migrations-config.yml: |
  2566. version: 0.1
  2567. log:
  2568. fields:
  2569. service: registry
  2570. level: info
  2571. ---
  2572. # Source: gitlab/templates/chart-info.yaml
  2573. apiVersion: v1
  2574. kind: ConfigMap
  2575. metadata:
  2576. name: gitlab-gitlab-chart-info
  2577. namespace: default
  2578. labels:
  2579. app: gitlab
  2580. chart: gitlab-6.8.0
  2581. release: gitlab
  2582. heritage: Helm
  2583. data:
  2584. gitlabVersion: "15.8.0"
  2585. gitlabChartVersion: "6.8.0"
  2586. ---
  2587. # Source: gitlab/templates/initdb-configmap.yaml
  2588. apiVersion: v1
  2589. kind: ConfigMap
  2590. metadata:
  2591. name: gitlab-postgresql-init-db
  2592. namespace: default
  2593. labels:
  2594. app: gitlab
  2595. chart: gitlab-6.8.0
  2596. release: gitlab
  2597. heritage: Helm
  2598. data:
  2599. init_revision.sh: |
  2600. if [[ ! -f "$POSTGRESQL_VOLUME_DIR/.gitlab_1_scripts_initialized" ]] ; then
  2601. rm -f "$POSTGRESQL_VOLUME_DIR/.user_scripts_initialized"
  2602. touch "$POSTGRESQL_VOLUME_DIR/.gitlab_1_scripts_initialized"
  2603. fi
  2604. enable_extensions.sh: |
  2605. [[ -n "${POSTGRES_POSTGRES_PASSWORD_FILE:-}" ]] && POSTGRES_POSTGRES_PASSWORD=$(cat ${POSTGRES_POSTGRES_PASSWORD_FILE})
  2606. PGPASSWORD=${POSTGRES_POSTGRES_PASSWORD} psql -d gitlabhq_production -U postgres -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS btree_gist;'
  2607. # Leave this here - This line denotes end of block to the parser.
  2608. ---
  2609. # Source: gitlab/charts/minio/templates/minio_pvc.yaml
  2610. kind: PersistentVolumeClaim
  2611. apiVersion: v1
  2612. metadata:
  2613. name: gitlab-minio
  2614. namespace: default
  2615. labels:
  2616. app: minio
  2617. chart: minio-0.4.3
  2618. release: gitlab
  2619. heritage: Helm
  2620. spec:
  2621. accessModes:
  2622. - "ReadWriteOnce"
  2623. resources:
  2624. requests:
  2625. storage: "10Gi"
  2626. selector:
  2627. ---
  2628. # Source: gitlab/charts/prometheus/templates/server/pvc.yaml
  2629. apiVersion: v1
  2630. kind: PersistentVolumeClaim
  2631. metadata:
  2632. labels:
  2633. component: "server"
  2634. app: prometheus
  2635. release: gitlab
  2636. chart: prometheus-15.0.4
  2637. heritage: Helm
  2638. name: gitlab-prometheus-server
  2639. namespace: default
  2640. spec:
  2641. accessModes:
  2642. - ReadWriteOnce
  2643. resources:
  2644. requests:
  2645. storage: "8Gi"
  2646. ---
  2647. # Source: gitlab/charts/certmanager/templates/crds.yaml
  2648. apiVersion: apiextensions.k8s.io/v1
  2649. kind: CustomResourceDefinition
  2650. metadata:
  2651. name: certificaterequests.cert-manager.io
  2652. annotations:
  2653. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  2654. labels:
  2655. app: 'certmanager'
  2656. app.kubernetes.io/name: 'certmanager'
  2657. app.kubernetes.io/instance: 'gitlab'
  2658. # Generated labels
  2659. app.kubernetes.io/version: "v1.5.4"
  2660. app.kubernetes.io/managed-by: Helm
  2661. helm.sh/chart: certmanager-v1.5.4
  2662. spec:
  2663. group: cert-manager.io
  2664. names:
  2665. kind: CertificateRequest
  2666. listKind: CertificateRequestList
  2667. plural: certificaterequests
  2668. shortNames:
  2669. - cr
  2670. - crs
  2671. singular: certificaterequest
  2672. categories:
  2673. - cert-manager
  2674. scope: Namespaced
  2675. conversion:
  2676. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  2677. strategy: Webhook
  2678. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  2679. webhook:
  2680. # We don't actually support `v1beta1` but is listed here as it is a
  2681. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  2682. # API server reads the supported versions in order, so _should always_
  2683. # attempt a `v1` request which is understood by the cert-manager webhook.
  2684. # Any `v1beta1` request will return an error and fail closed for that
  2685. # resource (the whole object request is rejected).
  2686. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  2687. conversionReviewVersions: ["v1", "v1beta1"]
  2688. clientConfig:
  2689. #
  2690. service:
  2691. name: 'gitlab-certmanager-webhook'
  2692. namespace: "default"
  2693. path: /convert
  2694. #
  2695. versions:
  2696. - name: v1alpha2
  2697. subresources:
  2698. status: {}
  2699. additionalPrinterColumns:
  2700. - jsonPath: .status.conditions[?(@.type=="Approved")].status
  2701. name: Approved
  2702. type: string
  2703. - jsonPath: .status.conditions[?(@.type=="Denied")].status
  2704. name: Denied
  2705. type: string
  2706. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  2707. name: Ready
  2708. type: string
  2709. - jsonPath: .spec.issuerRef.name
  2710. name: Issuer
  2711. type: string
  2712. - jsonPath: .spec.username
  2713. name: Requestor
  2714. type: string
  2715. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  2716. name: Status
  2717. priority: 1
  2718. type: string
  2719. - jsonPath: .metadata.creationTimestamp
  2720. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  2721. name: Age
  2722. type: date
  2723. schema:
  2724. openAPIV3Schema:
  2725. description: "A CertificateRequest is used to request a signed certificate from one of the configured issuers. \n All fields within the CertificateRequest's `spec` are immutable after creation. A CertificateRequest will either succeed or fail, as denoted by its `status.state` field. \n A CertificateRequest is a one-shot resource, meaning it represents a single point in time request for a certificate and cannot be re-used."
  2726. type: object
  2727. properties:
  2728. apiVersion:
  2729. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2730. type: string
  2731. kind:
  2732. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2733. type: string
  2734. metadata:
  2735. type: object
  2736. spec:
  2737. description: Desired state of the CertificateRequest resource.
  2738. type: object
  2739. required:
  2740. - csr
  2741. - issuerRef
  2742. properties:
  2743. csr:
  2744. description: The PEM-encoded x509 certificate signing request to be submitted to the CA for signing.
  2745. type: string
  2746. format: byte
  2747. duration:
  2748. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types.
  2749. type: string
  2750. extra:
  2751. description: Extra contains extra attributes of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2752. type: object
  2753. additionalProperties:
  2754. type: array
  2755. items:
  2756. type: string
  2757. groups:
  2758. description: Groups contains group membership of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2759. type: array
  2760. items:
  2761. type: string
  2762. x-kubernetes-list-type: atomic
  2763. isCA:
  2764. description: IsCA will request to mark the certificate as valid for certificate signing when submitting to the issuer. This will automatically add the `cert sign` usage to the list of `usages`.
  2765. type: boolean
  2766. issuerRef:
  2767. description: IssuerRef is a reference to the issuer for this CertificateRequest. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the CertificateRequest will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times. The group field refers to the API group of the issuer which defaults to `cert-manager.io` if empty.
  2768. type: object
  2769. required:
  2770. - name
  2771. properties:
  2772. group:
  2773. description: Group of the resource being referred to.
  2774. type: string
  2775. kind:
  2776. description: Kind of the resource being referred to.
  2777. type: string
  2778. name:
  2779. description: Name of the resource being referred to.
  2780. type: string
  2781. uid:
  2782. description: UID contains the uid of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2783. type: string
  2784. usages:
  2785. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  2786. type: array
  2787. items:
  2788. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  2789. type: string
  2790. enum:
  2791. - signing
  2792. - digital signature
  2793. - content commitment
  2794. - key encipherment
  2795. - key agreement
  2796. - data encipherment
  2797. - cert sign
  2798. - crl sign
  2799. - encipher only
  2800. - decipher only
  2801. - any
  2802. - server auth
  2803. - client auth
  2804. - code signing
  2805. - email protection
  2806. - s/mime
  2807. - ipsec end system
  2808. - ipsec tunnel
  2809. - ipsec user
  2810. - timestamping
  2811. - ocsp signing
  2812. - microsoft sgc
  2813. - netscape sgc
  2814. username:
  2815. description: Username contains the name of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2816. type: string
  2817. status:
  2818. description: Status of the CertificateRequest. This is set and managed automatically.
  2819. type: object
  2820. properties:
  2821. ca:
  2822. description: The PEM encoded x509 certificate of the signer, also known as the CA (Certificate Authority). This is set on a best-effort basis by different issuers. If not set, the CA is assumed to be unknown/not available.
  2823. type: string
  2824. format: byte
  2825. certificate:
  2826. description: The PEM encoded x509 certificate resulting from the certificate signing request. If not set, the CertificateRequest has either not been completed or has failed. More information on failure can be found by checking the `conditions` field.
  2827. type: string
  2828. format: byte
  2829. conditions:
  2830. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready` and `InvalidRequest`.
  2831. type: array
  2832. items:
  2833. description: CertificateRequestCondition contains condition information for a CertificateRequest.
  2834. type: object
  2835. required:
  2836. - status
  2837. - type
  2838. properties:
  2839. lastTransitionTime:
  2840. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  2841. type: string
  2842. format: date-time
  2843. message:
  2844. description: Message is a human readable description of the details of the last transition, complementing reason.
  2845. type: string
  2846. reason:
  2847. description: Reason is a brief machine readable explanation for the condition's last transition.
  2848. type: string
  2849. status:
  2850. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  2851. type: string
  2852. enum:
  2853. - "True"
  2854. - "False"
  2855. - Unknown
  2856. type:
  2857. description: Type of the condition, known values are (`Ready`, `InvalidRequest`, `Approved`, `Denied`).
  2858. type: string
  2859. failureTime:
  2860. description: FailureTime stores the time that this CertificateRequest failed. This is used to influence garbage collection and back-off.
  2861. type: string
  2862. format: date-time
  2863. served: true
  2864. storage: false
  2865. - name: v1alpha3
  2866. subresources:
  2867. status: {}
  2868. additionalPrinterColumns:
  2869. - jsonPath: .status.conditions[?(@.type=="Approved")].status
  2870. name: Approved
  2871. type: string
  2872. - jsonPath: .status.conditions[?(@.type=="Denied")].status
  2873. name: Denied
  2874. type: string
  2875. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  2876. name: Ready
  2877. type: string
  2878. - jsonPath: .spec.issuerRef.name
  2879. name: Issuer
  2880. type: string
  2881. - jsonPath: .spec.username
  2882. name: Requestor
  2883. type: string
  2884. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  2885. name: Status
  2886. priority: 1
  2887. type: string
  2888. - jsonPath: .metadata.creationTimestamp
  2889. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  2890. name: Age
  2891. type: date
  2892. schema:
  2893. openAPIV3Schema:
  2894. description: "A CertificateRequest is used to request a signed certificate from one of the configured issuers. \n All fields within the CertificateRequest's `spec` are immutable after creation. A CertificateRequest will either succeed or fail, as denoted by its `status.state` field. \n A CertificateRequest is a one-shot resource, meaning it represents a single point in time request for a certificate and cannot be re-used."
  2895. type: object
  2896. properties:
  2897. apiVersion:
  2898. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2899. type: string
  2900. kind:
  2901. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2902. type: string
  2903. metadata:
  2904. type: object
  2905. spec:
  2906. description: Desired state of the CertificateRequest resource.
  2907. type: object
  2908. required:
  2909. - csr
  2910. - issuerRef
  2911. properties:
  2912. csr:
  2913. description: The PEM-encoded x509 certificate signing request to be submitted to the CA for signing.
  2914. type: string
  2915. format: byte
  2916. duration:
  2917. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types.
  2918. type: string
  2919. extra:
  2920. description: Extra contains extra attributes of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2921. type: object
  2922. additionalProperties:
  2923. type: array
  2924. items:
  2925. type: string
  2926. groups:
  2927. description: Groups contains group membership of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2928. type: array
  2929. items:
  2930. type: string
  2931. x-kubernetes-list-type: atomic
  2932. isCA:
  2933. description: IsCA will request to mark the certificate as valid for certificate signing when submitting to the issuer. This will automatically add the `cert sign` usage to the list of `usages`.
  2934. type: boolean
  2935. issuerRef:
  2936. description: IssuerRef is a reference to the issuer for this CertificateRequest. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the CertificateRequest will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times. The group field refers to the API group of the issuer which defaults to `cert-manager.io` if empty.
  2937. type: object
  2938. required:
  2939. - name
  2940. properties:
  2941. group:
  2942. description: Group of the resource being referred to.
  2943. type: string
  2944. kind:
  2945. description: Kind of the resource being referred to.
  2946. type: string
  2947. name:
  2948. description: Name of the resource being referred to.
  2949. type: string
  2950. uid:
  2951. description: UID contains the uid of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2952. type: string
  2953. usages:
  2954. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  2955. type: array
  2956. items:
  2957. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  2958. type: string
  2959. enum:
  2960. - signing
  2961. - digital signature
  2962. - content commitment
  2963. - key encipherment
  2964. - key agreement
  2965. - data encipherment
  2966. - cert sign
  2967. - crl sign
  2968. - encipher only
  2969. - decipher only
  2970. - any
  2971. - server auth
  2972. - client auth
  2973. - code signing
  2974. - email protection
  2975. - s/mime
  2976. - ipsec end system
  2977. - ipsec tunnel
  2978. - ipsec user
  2979. - timestamping
  2980. - ocsp signing
  2981. - microsoft sgc
  2982. - netscape sgc
  2983. username:
  2984. description: Username contains the name of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2985. type: string
  2986. status:
  2987. description: Status of the CertificateRequest. This is set and managed automatically.
  2988. type: object
  2989. properties:
  2990. ca:
  2991. description: The PEM encoded x509 certificate of the signer, also known as the CA (Certificate Authority). This is set on a best-effort basis by different issuers. If not set, the CA is assumed to be unknown/not available.
  2992. type: string
  2993. format: byte
  2994. certificate:
  2995. description: The PEM encoded x509 certificate resulting from the certificate signing request. If not set, the CertificateRequest has either not been completed or has failed. More information on failure can be found by checking the `conditions` field.
  2996. type: string
  2997. format: byte
  2998. conditions:
  2999. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready` and `InvalidRequest`.
  3000. type: array
  3001. items:
  3002. description: CertificateRequestCondition contains condition information for a CertificateRequest.
  3003. type: object
  3004. required:
  3005. - status
  3006. - type
  3007. properties:
  3008. lastTransitionTime:
  3009. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  3010. type: string
  3011. format: date-time
  3012. message:
  3013. description: Message is a human readable description of the details of the last transition, complementing reason.
  3014. type: string
  3015. reason:
  3016. description: Reason is a brief machine readable explanation for the condition's last transition.
  3017. type: string
  3018. status:
  3019. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  3020. type: string
  3021. enum:
  3022. - "True"
  3023. - "False"
  3024. - Unknown
  3025. type:
  3026. description: Type of the condition, known values are (`Ready`, `InvalidRequest`, `Approved`, `Denied`).
  3027. type: string
  3028. failureTime:
  3029. description: FailureTime stores the time that this CertificateRequest failed. This is used to influence garbage collection and back-off.
  3030. type: string
  3031. format: date-time
  3032. served: true
  3033. storage: false
  3034. - name: v1beta1
  3035. subresources:
  3036. status: {}
  3037. additionalPrinterColumns:
  3038. - jsonPath: .status.conditions[?(@.type=="Approved")].status
  3039. name: Approved
  3040. type: string
  3041. - jsonPath: .status.conditions[?(@.type=="Denied")].status
  3042. name: Denied
  3043. type: string
  3044. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  3045. name: Ready
  3046. type: string
  3047. - jsonPath: .spec.issuerRef.name
  3048. name: Issuer
  3049. type: string
  3050. - jsonPath: .spec.username
  3051. name: Requestor
  3052. type: string
  3053. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  3054. name: Status
  3055. priority: 1
  3056. type: string
  3057. - jsonPath: .metadata.creationTimestamp
  3058. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  3059. name: Age
  3060. type: date
  3061. schema:
  3062. openAPIV3Schema:
  3063. description: "A CertificateRequest is used to request a signed certificate from one of the configured issuers. \n All fields within the CertificateRequest's `spec` are immutable after creation. A CertificateRequest will either succeed or fail, as denoted by its `status.state` field. \n A CertificateRequest is a one-shot resource, meaning it represents a single point in time request for a certificate and cannot be re-used."
  3064. type: object
  3065. required:
  3066. - spec
  3067. properties:
  3068. apiVersion:
  3069. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3070. type: string
  3071. kind:
  3072. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3073. type: string
  3074. metadata:
  3075. type: object
  3076. spec:
  3077. description: Desired state of the CertificateRequest resource.
  3078. type: object
  3079. required:
  3080. - issuerRef
  3081. - request
  3082. properties:
  3083. duration:
  3084. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types.
  3085. type: string
  3086. extra:
  3087. description: Extra contains extra attributes of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3088. type: object
  3089. additionalProperties:
  3090. type: array
  3091. items:
  3092. type: string
  3093. groups:
  3094. description: Groups contains group membership of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3095. type: array
  3096. items:
  3097. type: string
  3098. x-kubernetes-list-type: atomic
  3099. isCA:
  3100. description: IsCA will request to mark the certificate as valid for certificate signing when submitting to the issuer. This will automatically add the `cert sign` usage to the list of `usages`.
  3101. type: boolean
  3102. issuerRef:
  3103. description: IssuerRef is a reference to the issuer for this CertificateRequest. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the CertificateRequest will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times. The group field refers to the API group of the issuer which defaults to `cert-manager.io` if empty.
  3104. type: object
  3105. required:
  3106. - name
  3107. properties:
  3108. group:
  3109. description: Group of the resource being referred to.
  3110. type: string
  3111. kind:
  3112. description: Kind of the resource being referred to.
  3113. type: string
  3114. name:
  3115. description: Name of the resource being referred to.
  3116. type: string
  3117. request:
  3118. description: The PEM-encoded x509 certificate signing request to be submitted to the CA for signing.
  3119. type: string
  3120. format: byte
  3121. uid:
  3122. description: UID contains the uid of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3123. type: string
  3124. usages:
  3125. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  3126. type: array
  3127. items:
  3128. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  3129. type: string
  3130. enum:
  3131. - signing
  3132. - digital signature
  3133. - content commitment
  3134. - key encipherment
  3135. - key agreement
  3136. - data encipherment
  3137. - cert sign
  3138. - crl sign
  3139. - encipher only
  3140. - decipher only
  3141. - any
  3142. - server auth
  3143. - client auth
  3144. - code signing
  3145. - email protection
  3146. - s/mime
  3147. - ipsec end system
  3148. - ipsec tunnel
  3149. - ipsec user
  3150. - timestamping
  3151. - ocsp signing
  3152. - microsoft sgc
  3153. - netscape sgc
  3154. username:
  3155. description: Username contains the name of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3156. type: string
  3157. status:
  3158. description: Status of the CertificateRequest. This is set and managed automatically.
  3159. type: object
  3160. properties:
  3161. ca:
  3162. description: The PEM encoded x509 certificate of the signer, also known as the CA (Certificate Authority). This is set on a best-effort basis by different issuers. If not set, the CA is assumed to be unknown/not available.
  3163. type: string
  3164. format: byte
  3165. certificate:
  3166. description: The PEM encoded x509 certificate resulting from the certificate signing request. If not set, the CertificateRequest has either not been completed or has failed. More information on failure can be found by checking the `conditions` field.
  3167. type: string
  3168. format: byte
  3169. conditions:
  3170. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready` and `InvalidRequest`.
  3171. type: array
  3172. items:
  3173. description: CertificateRequestCondition contains condition information for a CertificateRequest.
  3174. type: object
  3175. required:
  3176. - status
  3177. - type
  3178. properties:
  3179. lastTransitionTime:
  3180. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  3181. type: string
  3182. format: date-time
  3183. message:
  3184. description: Message is a human readable description of the details of the last transition, complementing reason.
  3185. type: string
  3186. reason:
  3187. description: Reason is a brief machine readable explanation for the condition's last transition.
  3188. type: string
  3189. status:
  3190. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  3191. type: string
  3192. enum:
  3193. - "True"
  3194. - "False"
  3195. - Unknown
  3196. type:
  3197. description: Type of the condition, known values are (`Ready`, `InvalidRequest`, `Approved`, `Denied`).
  3198. type: string
  3199. failureTime:
  3200. description: FailureTime stores the time that this CertificateRequest failed. This is used to influence garbage collection and back-off.
  3201. type: string
  3202. format: date-time
  3203. served: true
  3204. storage: false
  3205. - name: v1
  3206. subresources:
  3207. status: {}
  3208. additionalPrinterColumns:
  3209. - jsonPath: .status.conditions[?(@.type=="Approved")].status
  3210. name: Approved
  3211. type: string
  3212. - jsonPath: .status.conditions[?(@.type=="Denied")].status
  3213. name: Denied
  3214. type: string
  3215. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  3216. name: Ready
  3217. type: string
  3218. - jsonPath: .spec.issuerRef.name
  3219. name: Issuer
  3220. type: string
  3221. - jsonPath: .spec.username
  3222. name: Requestor
  3223. type: string
  3224. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  3225. name: Status
  3226. priority: 1
  3227. type: string
  3228. - jsonPath: .metadata.creationTimestamp
  3229. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  3230. name: Age
  3231. type: date
  3232. schema:
  3233. openAPIV3Schema:
  3234. description: "A CertificateRequest is used to request a signed certificate from one of the configured issuers. \n All fields within the CertificateRequest's `spec` are immutable after creation. A CertificateRequest will either succeed or fail, as denoted by its `status.state` field. \n A CertificateRequest is a one-shot resource, meaning it represents a single point in time request for a certificate and cannot be re-used."
  3235. type: object
  3236. required:
  3237. - spec
  3238. properties:
  3239. apiVersion:
  3240. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3241. type: string
  3242. kind:
  3243. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3244. type: string
  3245. metadata:
  3246. type: object
  3247. spec:
  3248. description: Desired state of the CertificateRequest resource.
  3249. type: object
  3250. required:
  3251. - issuerRef
  3252. - request
  3253. properties:
  3254. duration:
  3255. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types.
  3256. type: string
  3257. extra:
  3258. description: Extra contains extra attributes of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3259. type: object
  3260. additionalProperties:
  3261. type: array
  3262. items:
  3263. type: string
  3264. groups:
  3265. description: Groups contains group membership of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3266. type: array
  3267. items:
  3268. type: string
  3269. x-kubernetes-list-type: atomic
  3270. isCA:
  3271. description: IsCA will request to mark the certificate as valid for certificate signing when submitting to the issuer. This will automatically add the `cert sign` usage to the list of `usages`.
  3272. type: boolean
  3273. issuerRef:
  3274. description: IssuerRef is a reference to the issuer for this CertificateRequest. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the CertificateRequest will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times. The group field refers to the API group of the issuer which defaults to `cert-manager.io` if empty.
  3275. type: object
  3276. required:
  3277. - name
  3278. properties:
  3279. group:
  3280. description: Group of the resource being referred to.
  3281. type: string
  3282. kind:
  3283. description: Kind of the resource being referred to.
  3284. type: string
  3285. name:
  3286. description: Name of the resource being referred to.
  3287. type: string
  3288. request:
  3289. description: The PEM-encoded x509 certificate signing request to be submitted to the CA for signing.
  3290. type: string
  3291. format: byte
  3292. uid:
  3293. description: UID contains the uid of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3294. type: string
  3295. usages:
  3296. description: Usages is the set of x509 usages that are requested for the certificate. If usages are set they SHOULD be encoded inside the CSR spec Defaults to `digital signature` and `key encipherment` if not specified.
  3297. type: array
  3298. items:
  3299. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  3300. type: string
  3301. enum:
  3302. - signing
  3303. - digital signature
  3304. - content commitment
  3305. - key encipherment
  3306. - key agreement
  3307. - data encipherment
  3308. - cert sign
  3309. - crl sign
  3310. - encipher only
  3311. - decipher only
  3312. - any
  3313. - server auth
  3314. - client auth
  3315. - code signing
  3316. - email protection
  3317. - s/mime
  3318. - ipsec end system
  3319. - ipsec tunnel
  3320. - ipsec user
  3321. - timestamping
  3322. - ocsp signing
  3323. - microsoft sgc
  3324. - netscape sgc
  3325. username:
  3326. description: Username contains the name of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  3327. type: string
  3328. status:
  3329. description: Status of the CertificateRequest. This is set and managed automatically.
  3330. type: object
  3331. properties:
  3332. ca:
  3333. description: The PEM encoded x509 certificate of the signer, also known as the CA (Certificate Authority). This is set on a best-effort basis by different issuers. If not set, the CA is assumed to be unknown/not available.
  3334. type: string
  3335. format: byte
  3336. certificate:
  3337. description: The PEM encoded x509 certificate resulting from the certificate signing request. If not set, the CertificateRequest has either not been completed or has failed. More information on failure can be found by checking the `conditions` field.
  3338. type: string
  3339. format: byte
  3340. conditions:
  3341. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready` and `InvalidRequest`.
  3342. type: array
  3343. items:
  3344. description: CertificateRequestCondition contains condition information for a CertificateRequest.
  3345. type: object
  3346. required:
  3347. - status
  3348. - type
  3349. properties:
  3350. lastTransitionTime:
  3351. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  3352. type: string
  3353. format: date-time
  3354. message:
  3355. description: Message is a human readable description of the details of the last transition, complementing reason.
  3356. type: string
  3357. reason:
  3358. description: Reason is a brief machine readable explanation for the condition's last transition.
  3359. type: string
  3360. status:
  3361. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  3362. type: string
  3363. enum:
  3364. - "True"
  3365. - "False"
  3366. - Unknown
  3367. type:
  3368. description: Type of the condition, known values are (`Ready`, `InvalidRequest`, `Approved`, `Denied`).
  3369. type: string
  3370. failureTime:
  3371. description: FailureTime stores the time that this CertificateRequest failed. This is used to influence garbage collection and back-off.
  3372. type: string
  3373. format: date-time
  3374. served: true
  3375. storage: true
  3376. ---
  3377. # Source: gitlab/charts/certmanager/templates/crds.yaml
  3378. apiVersion: apiextensions.k8s.io/v1
  3379. kind: CustomResourceDefinition
  3380. metadata:
  3381. name: certificates.cert-manager.io
  3382. annotations:
  3383. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  3384. labels:
  3385. app: 'certmanager'
  3386. app.kubernetes.io/name: 'certmanager'
  3387. app.kubernetes.io/instance: 'gitlab'
  3388. # Generated labels
  3389. app.kubernetes.io/version: "v1.5.4"
  3390. app.kubernetes.io/managed-by: Helm
  3391. helm.sh/chart: certmanager-v1.5.4
  3392. spec:
  3393. group: cert-manager.io
  3394. names:
  3395. kind: Certificate
  3396. listKind: CertificateList
  3397. plural: certificates
  3398. shortNames:
  3399. - cert
  3400. - certs
  3401. singular: certificate
  3402. categories:
  3403. - cert-manager
  3404. scope: Namespaced
  3405. conversion:
  3406. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  3407. strategy: Webhook
  3408. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  3409. webhook:
  3410. # We don't actually support `v1beta1` but is listed here as it is a
  3411. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  3412. # API server reads the supported versions in order, so _should always_
  3413. # attempt a `v1` request which is understood by the cert-manager webhook.
  3414. # Any `v1beta1` request will return an error and fail closed for that
  3415. # resource (the whole object request is rejected).
  3416. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  3417. conversionReviewVersions: ["v1", "v1beta1"]
  3418. clientConfig:
  3419. #
  3420. service:
  3421. name: 'gitlab-certmanager-webhook'
  3422. namespace: "default"
  3423. path: /convert
  3424. #
  3425. versions:
  3426. - name: v1alpha2
  3427. subresources:
  3428. status: {}
  3429. additionalPrinterColumns:
  3430. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  3431. name: Ready
  3432. type: string
  3433. - jsonPath: .spec.secretName
  3434. name: Secret
  3435. type: string
  3436. - jsonPath: .spec.issuerRef.name
  3437. name: Issuer
  3438. priority: 1
  3439. type: string
  3440. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  3441. name: Status
  3442. priority: 1
  3443. type: string
  3444. - jsonPath: .metadata.creationTimestamp
  3445. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  3446. name: Age
  3447. type: date
  3448. schema:
  3449. openAPIV3Schema:
  3450. description: "A Certificate resource should be created to ensure an up to date and signed x509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`. \n The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`)."
  3451. type: object
  3452. properties:
  3453. apiVersion:
  3454. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3455. type: string
  3456. kind:
  3457. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3458. type: string
  3459. metadata:
  3460. type: object
  3461. spec:
  3462. description: Desired state of the Certificate resource.
  3463. type: object
  3464. required:
  3465. - issuerRef
  3466. - secretName
  3467. properties:
  3468. commonName:
  3469. description: 'CommonName is a common name to be used on the Certificate. The CommonName should have a length of 64 characters or fewer to avoid generating invalid CSRs. This value is ignored by TLS clients when any subject alt name is set. This is x509 behaviour: https://tools.ietf.org/html/rfc6125#section-6.4.4'
  3470. type: string
  3471. dnsNames:
  3472. description: DNSNames is a list of DNS subjectAltNames to be set on the Certificate.
  3473. type: array
  3474. items:
  3475. type: string
  3476. duration:
  3477. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types. If unset this defaults to 90 days. Certificate will be renewed either 2/3 through its duration or `renewBefore` period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  3478. type: string
  3479. emailSANs:
  3480. description: EmailSANs is a list of email subjectAltNames to be set on the Certificate.
  3481. type: array
  3482. items:
  3483. type: string
  3484. encodeUsagesInRequest:
  3485. description: EncodeUsagesInRequest controls whether key usages should be present in the CertificateRequest
  3486. type: boolean
  3487. ipAddresses:
  3488. description: IPAddresses is a list of IP address subjectAltNames to be set on the Certificate.
  3489. type: array
  3490. items:
  3491. type: string
  3492. isCA:
  3493. description: IsCA will mark this Certificate as valid for certificate signing. This will automatically add the `cert sign` usage to the list of `usages`.
  3494. type: boolean
  3495. issuerRef:
  3496. description: IssuerRef is a reference to the issuer for this certificate. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the Certificate will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times.
  3497. type: object
  3498. required:
  3499. - name
  3500. properties:
  3501. group:
  3502. description: Group of the resource being referred to.
  3503. type: string
  3504. kind:
  3505. description: Kind of the resource being referred to.
  3506. type: string
  3507. name:
  3508. description: Name of the resource being referred to.
  3509. type: string
  3510. keyAlgorithm:
  3511. description: KeyAlgorithm is the private key algorithm of the corresponding private key for this certificate. If provided, allowed values are either `rsa` or `ecdsa` If `keyAlgorithm` is specified and `keySize` is not provided, key size of 256 will be used for `ecdsa` key algorithm and key size of 2048 will be used for `rsa` key algorithm.
  3512. type: string
  3513. enum:
  3514. - rsa
  3515. - ecdsa
  3516. keyEncoding:
  3517. description: KeyEncoding is the private key cryptography standards (PKCS) for this certificate's private key to be encoded in. If provided, allowed values are `pkcs1` and `pkcs8` standing for PKCS#1 and PKCS#8, respectively. If KeyEncoding is not specified, then `pkcs1` will be used by default.
  3518. type: string
  3519. enum:
  3520. - pkcs1
  3521. - pkcs8
  3522. keySize:
  3523. description: KeySize is the key bit size of the corresponding private key for this certificate. If `keyAlgorithm` is set to `rsa`, valid values are `2048`, `4096` or `8192`, and will default to `2048` if not specified. If `keyAlgorithm` is set to `ecdsa`, valid values are `256`, `384` or `521`, and will default to `256` if not specified. No other values are allowed.
  3524. type: integer
  3525. keystores:
  3526. description: Keystores configures additional keystore output formats stored in the `secretName` Secret resource.
  3527. type: object
  3528. properties:
  3529. jks:
  3530. description: JKS configures options for storing a JKS keystore in the `spec.secretName` Secret resource.
  3531. type: object
  3532. required:
  3533. - create
  3534. - passwordSecretRef
  3535. properties:
  3536. create:
  3537. description: Create enables JKS keystore creation for the Certificate. If true, a file named `keystore.jks` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance.
  3538. type: boolean
  3539. passwordSecretRef:
  3540. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the JKS keystore.
  3541. type: object
  3542. required:
  3543. - name
  3544. properties:
  3545. key:
  3546. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3547. type: string
  3548. name:
  3549. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3550. type: string
  3551. pkcs12:
  3552. description: PKCS12 configures options for storing a PKCS12 keystore in the `spec.secretName` Secret resource.
  3553. type: object
  3554. required:
  3555. - create
  3556. - passwordSecretRef
  3557. properties:
  3558. create:
  3559. description: Create enables PKCS12 keystore creation for the Certificate. If true, a file named `keystore.p12` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance.
  3560. type: boolean
  3561. passwordSecretRef:
  3562. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the PKCS12 keystore.
  3563. type: object
  3564. required:
  3565. - name
  3566. properties:
  3567. key:
  3568. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3569. type: string
  3570. name:
  3571. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3572. type: string
  3573. organization:
  3574. description: Organization is a list of organizations to be used on the Certificate.
  3575. type: array
  3576. items:
  3577. type: string
  3578. privateKey:
  3579. description: Options to control private keys used for the Certificate.
  3580. type: object
  3581. properties:
  3582. rotationPolicy:
  3583. description: RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to Never, a private key will only be generated if one does not already exist in the target `spec.secretName`. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to Always, a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.
  3584. type: string
  3585. renewBefore:
  3586. description: How long before the currently issued certificate's expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate's duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  3587. type: string
  3588. revisionHistoryLimit:
  3589. description: revisionHistoryLimit is the maximum number of CertificateRequest revisions that are maintained in the Certificate's history. Each revision represents a single `CertificateRequest` created by this Certificate, either when it was created, renewed, or Spec was changed. Revisions will be removed by oldest first if the number of revisions exceeds this number. If set, revisionHistoryLimit must be a value of `1` or greater. If unset (`nil`), revisions will not be garbage collected. Default value is `nil`.
  3590. type: integer
  3591. format: int32
  3592. secretName:
  3593. description: SecretName is the name of the secret resource that will be automatically created and managed by this Certificate resource. It will be populated with a private key and certificate, signed by the denoted issuer.
  3594. type: string
  3595. secretTemplate:
  3596. description: SecretTemplate defines annotations and labels to be propagated to the Kubernetes Secret when it is created or updated. Once created, labels and annotations are not yet removed from the Secret when they are removed from the template. See https://github.com/jetstack/cert-manager/issues/4292
  3597. type: object
  3598. properties:
  3599. annotations:
  3600. description: Annotations is a key value map to be copied to the target Kubernetes Secret.
  3601. type: object
  3602. additionalProperties:
  3603. type: string
  3604. labels:
  3605. description: Labels is a key value map to be copied to the target Kubernetes Secret.
  3606. type: object
  3607. additionalProperties:
  3608. type: string
  3609. subject:
  3610. description: Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).
  3611. type: object
  3612. properties:
  3613. countries:
  3614. description: Countries to be used on the Certificate.
  3615. type: array
  3616. items:
  3617. type: string
  3618. localities:
  3619. description: Cities to be used on the Certificate.
  3620. type: array
  3621. items:
  3622. type: string
  3623. organizationalUnits:
  3624. description: Organizational Units to be used on the Certificate.
  3625. type: array
  3626. items:
  3627. type: string
  3628. postalCodes:
  3629. description: Postal codes to be used on the Certificate.
  3630. type: array
  3631. items:
  3632. type: string
  3633. provinces:
  3634. description: State/Provinces to be used on the Certificate.
  3635. type: array
  3636. items:
  3637. type: string
  3638. serialNumber:
  3639. description: Serial number to be used on the Certificate.
  3640. type: string
  3641. streetAddresses:
  3642. description: Street addresses to be used on the Certificate.
  3643. type: array
  3644. items:
  3645. type: string
  3646. uriSANs:
  3647. description: URISANs is a list of URI subjectAltNames to be set on the Certificate.
  3648. type: array
  3649. items:
  3650. type: string
  3651. usages:
  3652. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  3653. type: array
  3654. items:
  3655. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  3656. type: string
  3657. enum:
  3658. - signing
  3659. - digital signature
  3660. - content commitment
  3661. - key encipherment
  3662. - key agreement
  3663. - data encipherment
  3664. - cert sign
  3665. - crl sign
  3666. - encipher only
  3667. - decipher only
  3668. - any
  3669. - server auth
  3670. - client auth
  3671. - code signing
  3672. - email protection
  3673. - s/mime
  3674. - ipsec end system
  3675. - ipsec tunnel
  3676. - ipsec user
  3677. - timestamping
  3678. - ocsp signing
  3679. - microsoft sgc
  3680. - netscape sgc
  3681. status:
  3682. description: Status of the Certificate. This is set and managed automatically.
  3683. type: object
  3684. properties:
  3685. conditions:
  3686. description: List of status conditions to indicate the status of certificates. Known condition types are `Ready` and `Issuing`.
  3687. type: array
  3688. items:
  3689. description: CertificateCondition contains condition information for an Certificate.
  3690. type: object
  3691. required:
  3692. - status
  3693. - type
  3694. properties:
  3695. lastTransitionTime:
  3696. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  3697. type: string
  3698. format: date-time
  3699. message:
  3700. description: Message is a human readable description of the details of the last transition, complementing reason.
  3701. type: string
  3702. observedGeneration:
  3703. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Certificate.
  3704. type: integer
  3705. format: int64
  3706. reason:
  3707. description: Reason is a brief machine readable explanation for the condition's last transition.
  3708. type: string
  3709. status:
  3710. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  3711. type: string
  3712. enum:
  3713. - "True"
  3714. - "False"
  3715. - Unknown
  3716. type:
  3717. description: Type of the condition, known values are (`Ready`, `Issuing`).
  3718. type: string
  3719. lastFailureTime:
  3720. description: LastFailureTime is the time as recorded by the Certificate controller of the most recent failure to complete a CertificateRequest for this Certificate resource. If set, cert-manager will not re-request another Certificate until 1 hour has elapsed from this time.
  3721. type: string
  3722. format: date-time
  3723. nextPrivateKeySecretName:
  3724. description: The name of the Secret resource containing the private key to be used for the next certificate iteration. The keymanager controller will automatically set this field if the `Issuing` condition is set to `True`. It will automatically unset this field when the Issuing condition is not set or False.
  3725. type: string
  3726. notAfter:
  3727. description: The expiration time of the certificate stored in the secret named by this resource in `spec.secretName`.
  3728. type: string
  3729. format: date-time
  3730. notBefore:
  3731. description: The time after which the certificate stored in the secret named by this resource in spec.secretName is valid.
  3732. type: string
  3733. format: date-time
  3734. renewalTime:
  3735. description: RenewalTime is the time at which the certificate will be next renewed. If not set, no upcoming renewal is scheduled.
  3736. type: string
  3737. format: date-time
  3738. revision:
  3739. description: "The current 'revision' of the certificate as issued. \n When a CertificateRequest resource is created, it will have the `cert-manager.io/certificate-revision` set to one greater than the current value of this field. \n Upon issuance, this field will be set to the value of the annotation on the CertificateRequest resource used to issue the certificate. \n Persisting the value on the CertificateRequest resource allows the certificates controller to know whether a request is part of an old issuance or if it is part of the ongoing revision's issuance by checking if the revision value in the annotation is greater than this field."
  3740. type: integer
  3741. served: true
  3742. storage: false
  3743. - name: v1alpha3
  3744. subresources:
  3745. status: {}
  3746. additionalPrinterColumns:
  3747. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  3748. name: Ready
  3749. type: string
  3750. - jsonPath: .spec.secretName
  3751. name: Secret
  3752. type: string
  3753. - jsonPath: .spec.issuerRef.name
  3754. name: Issuer
  3755. priority: 1
  3756. type: string
  3757. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  3758. name: Status
  3759. priority: 1
  3760. type: string
  3761. - jsonPath: .metadata.creationTimestamp
  3762. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  3763. name: Age
  3764. type: date
  3765. schema:
  3766. openAPIV3Schema:
  3767. description: "A Certificate resource should be created to ensure an up to date and signed x509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`. \n The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`)."
  3768. type: object
  3769. properties:
  3770. apiVersion:
  3771. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3772. type: string
  3773. kind:
  3774. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3775. type: string
  3776. metadata:
  3777. type: object
  3778. spec:
  3779. description: Desired state of the Certificate resource.
  3780. type: object
  3781. required:
  3782. - issuerRef
  3783. - secretName
  3784. properties:
  3785. commonName:
  3786. description: 'CommonName is a common name to be used on the Certificate. The CommonName should have a length of 64 characters or fewer to avoid generating invalid CSRs. This value is ignored by TLS clients when any subject alt name is set. This is x509 behaviour: https://tools.ietf.org/html/rfc6125#section-6.4.4'
  3787. type: string
  3788. dnsNames:
  3789. description: DNSNames is a list of DNS subjectAltNames to be set on the Certificate.
  3790. type: array
  3791. items:
  3792. type: string
  3793. duration:
  3794. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types. If unset this defaults to 90 days. Certificate will be renewed either 2/3 through its duration or `renewBefore` period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  3795. type: string
  3796. emailSANs:
  3797. description: EmailSANs is a list of email subjectAltNames to be set on the Certificate.
  3798. type: array
  3799. items:
  3800. type: string
  3801. encodeUsagesInRequest:
  3802. description: EncodeUsagesInRequest controls whether key usages should be present in the CertificateRequest
  3803. type: boolean
  3804. ipAddresses:
  3805. description: IPAddresses is a list of IP address subjectAltNames to be set on the Certificate.
  3806. type: array
  3807. items:
  3808. type: string
  3809. isCA:
  3810. description: IsCA will mark this Certificate as valid for certificate signing. This will automatically add the `cert sign` usage to the list of `usages`.
  3811. type: boolean
  3812. issuerRef:
  3813. description: IssuerRef is a reference to the issuer for this certificate. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the Certificate will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times.
  3814. type: object
  3815. required:
  3816. - name
  3817. properties:
  3818. group:
  3819. description: Group of the resource being referred to.
  3820. type: string
  3821. kind:
  3822. description: Kind of the resource being referred to.
  3823. type: string
  3824. name:
  3825. description: Name of the resource being referred to.
  3826. type: string
  3827. keyAlgorithm:
  3828. description: KeyAlgorithm is the private key algorithm of the corresponding private key for this certificate. If provided, allowed values are either `rsa` or `ecdsa` If `keyAlgorithm` is specified and `keySize` is not provided, key size of 256 will be used for `ecdsa` key algorithm and key size of 2048 will be used for `rsa` key algorithm.
  3829. type: string
  3830. enum:
  3831. - rsa
  3832. - ecdsa
  3833. keyEncoding:
  3834. description: KeyEncoding is the private key cryptography standards (PKCS) for this certificate's private key to be encoded in. If provided, allowed values are `pkcs1` and `pkcs8` standing for PKCS#1 and PKCS#8, respectively. If KeyEncoding is not specified, then `pkcs1` will be used by default.
  3835. type: string
  3836. enum:
  3837. - pkcs1
  3838. - pkcs8
  3839. keySize:
  3840. description: KeySize is the key bit size of the corresponding private key for this certificate. If `keyAlgorithm` is set to `rsa`, valid values are `2048`, `4096` or `8192`, and will default to `2048` if not specified. If `keyAlgorithm` is set to `ecdsa`, valid values are `256`, `384` or `521`, and will default to `256` if not specified. No other values are allowed.
  3841. type: integer
  3842. keystores:
  3843. description: Keystores configures additional keystore output formats stored in the `secretName` Secret resource.
  3844. type: object
  3845. properties:
  3846. jks:
  3847. description: JKS configures options for storing a JKS keystore in the `spec.secretName` Secret resource.
  3848. type: object
  3849. required:
  3850. - create
  3851. - passwordSecretRef
  3852. properties:
  3853. create:
  3854. description: Create enables JKS keystore creation for the Certificate. If true, a file named `keystore.jks` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance. A file named `truststore.jks` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority.
  3855. type: boolean
  3856. passwordSecretRef:
  3857. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the JKS keystore.
  3858. type: object
  3859. required:
  3860. - name
  3861. properties:
  3862. key:
  3863. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3864. type: string
  3865. name:
  3866. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3867. type: string
  3868. pkcs12:
  3869. description: PKCS12 configures options for storing a PKCS12 keystore in the `spec.secretName` Secret resource.
  3870. type: object
  3871. required:
  3872. - create
  3873. - passwordSecretRef
  3874. properties:
  3875. create:
  3876. description: Create enables PKCS12 keystore creation for the Certificate. If true, a file named `keystore.p12` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance. A file named `truststore.p12` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority.
  3877. type: boolean
  3878. passwordSecretRef:
  3879. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the PKCS12 keystore.
  3880. type: object
  3881. required:
  3882. - name
  3883. properties:
  3884. key:
  3885. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3886. type: string
  3887. name:
  3888. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3889. type: string
  3890. privateKey:
  3891. description: Options to control private keys used for the Certificate.
  3892. type: object
  3893. properties:
  3894. rotationPolicy:
  3895. description: RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to Never, a private key will only be generated if one does not already exist in the target `spec.secretName`. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to Always, a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.
  3896. type: string
  3897. renewBefore:
  3898. description: How long before the currently issued certificate's expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate's duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  3899. type: string
  3900. revisionHistoryLimit:
  3901. description: revisionHistoryLimit is the maximum number of CertificateRequest revisions that are maintained in the Certificate's history. Each revision represents a single `CertificateRequest` created by this Certificate, either when it was created, renewed, or Spec was changed. Revisions will be removed by oldest first if the number of revisions exceeds this number. If set, revisionHistoryLimit must be a value of `1` or greater. If unset (`nil`), revisions will not be garbage collected. Default value is `nil`.
  3902. type: integer
  3903. format: int32
  3904. secretName:
  3905. description: SecretName is the name of the secret resource that will be automatically created and managed by this Certificate resource. It will be populated with a private key and certificate, signed by the denoted issuer.
  3906. type: string
  3907. secretTemplate:
  3908. description: SecretTemplate defines annotations and labels to be propagated to the Kubernetes Secret when it is created or updated. Once created, labels and annotations are not yet removed from the Secret when they are removed from the template. See https://github.com/jetstack/cert-manager/issues/4292
  3909. type: object
  3910. properties:
  3911. annotations:
  3912. description: Annotations is a key value map to be copied to the target Kubernetes Secret.
  3913. type: object
  3914. additionalProperties:
  3915. type: string
  3916. labels:
  3917. description: Labels is a key value map to be copied to the target Kubernetes Secret.
  3918. type: object
  3919. additionalProperties:
  3920. type: string
  3921. subject:
  3922. description: Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).
  3923. type: object
  3924. properties:
  3925. countries:
  3926. description: Countries to be used on the Certificate.
  3927. type: array
  3928. items:
  3929. type: string
  3930. localities:
  3931. description: Cities to be used on the Certificate.
  3932. type: array
  3933. items:
  3934. type: string
  3935. organizationalUnits:
  3936. description: Organizational Units to be used on the Certificate.
  3937. type: array
  3938. items:
  3939. type: string
  3940. organizations:
  3941. description: Organizations to be used on the Certificate.
  3942. type: array
  3943. items:
  3944. type: string
  3945. postalCodes:
  3946. description: Postal codes to be used on the Certificate.
  3947. type: array
  3948. items:
  3949. type: string
  3950. provinces:
  3951. description: State/Provinces to be used on the Certificate.
  3952. type: array
  3953. items:
  3954. type: string
  3955. serialNumber:
  3956. description: Serial number to be used on the Certificate.
  3957. type: string
  3958. streetAddresses:
  3959. description: Street addresses to be used on the Certificate.
  3960. type: array
  3961. items:
  3962. type: string
  3963. uriSANs:
  3964. description: URISANs is a list of URI subjectAltNames to be set on the Certificate.
  3965. type: array
  3966. items:
  3967. type: string
  3968. usages:
  3969. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  3970. type: array
  3971. items:
  3972. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  3973. type: string
  3974. enum:
  3975. - signing
  3976. - digital signature
  3977. - content commitment
  3978. - key encipherment
  3979. - key agreement
  3980. - data encipherment
  3981. - cert sign
  3982. - crl sign
  3983. - encipher only
  3984. - decipher only
  3985. - any
  3986. - server auth
  3987. - client auth
  3988. - code signing
  3989. - email protection
  3990. - s/mime
  3991. - ipsec end system
  3992. - ipsec tunnel
  3993. - ipsec user
  3994. - timestamping
  3995. - ocsp signing
  3996. - microsoft sgc
  3997. - netscape sgc
  3998. status:
  3999. description: Status of the Certificate. This is set and managed automatically.
  4000. type: object
  4001. properties:
  4002. conditions:
  4003. description: List of status conditions to indicate the status of certificates. Known condition types are `Ready` and `Issuing`.
  4004. type: array
  4005. items:
  4006. description: CertificateCondition contains condition information for an Certificate.
  4007. type: object
  4008. required:
  4009. - status
  4010. - type
  4011. properties:
  4012. lastTransitionTime:
  4013. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  4014. type: string
  4015. format: date-time
  4016. message:
  4017. description: Message is a human readable description of the details of the last transition, complementing reason.
  4018. type: string
  4019. observedGeneration:
  4020. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Certificate.
  4021. type: integer
  4022. format: int64
  4023. reason:
  4024. description: Reason is a brief machine readable explanation for the condition's last transition.
  4025. type: string
  4026. status:
  4027. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  4028. type: string
  4029. enum:
  4030. - "True"
  4031. - "False"
  4032. - Unknown
  4033. type:
  4034. description: Type of the condition, known values are (`Ready`, `Issuing`).
  4035. type: string
  4036. lastFailureTime:
  4037. description: LastFailureTime is the time as recorded by the Certificate controller of the most recent failure to complete a CertificateRequest for this Certificate resource. If set, cert-manager will not re-request another Certificate until 1 hour has elapsed from this time.
  4038. type: string
  4039. format: date-time
  4040. nextPrivateKeySecretName:
  4041. description: The name of the Secret resource containing the private key to be used for the next certificate iteration. The keymanager controller will automatically set this field if the `Issuing` condition is set to `True`. It will automatically unset this field when the Issuing condition is not set or False.
  4042. type: string
  4043. notAfter:
  4044. description: The expiration time of the certificate stored in the secret named by this resource in `spec.secretName`.
  4045. type: string
  4046. format: date-time
  4047. notBefore:
  4048. description: The time after which the certificate stored in the secret named by this resource in spec.secretName is valid.
  4049. type: string
  4050. format: date-time
  4051. renewalTime:
  4052. description: RenewalTime is the time at which the certificate will be next renewed. If not set, no upcoming renewal is scheduled.
  4053. type: string
  4054. format: date-time
  4055. revision:
  4056. description: "The current 'revision' of the certificate as issued. \n When a CertificateRequest resource is created, it will have the `cert-manager.io/certificate-revision` set to one greater than the current value of this field. \n Upon issuance, this field will be set to the value of the annotation on the CertificateRequest resource used to issue the certificate. \n Persisting the value on the CertificateRequest resource allows the certificates controller to know whether a request is part of an old issuance or if it is part of the ongoing revision's issuance by checking if the revision value in the annotation is greater than this field."
  4057. type: integer
  4058. served: true
  4059. storage: false
  4060. - name: v1beta1
  4061. subresources:
  4062. status: {}
  4063. additionalPrinterColumns:
  4064. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  4065. name: Ready
  4066. type: string
  4067. - jsonPath: .spec.secretName
  4068. name: Secret
  4069. type: string
  4070. - jsonPath: .spec.issuerRef.name
  4071. name: Issuer
  4072. priority: 1
  4073. type: string
  4074. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  4075. name: Status
  4076. priority: 1
  4077. type: string
  4078. - jsonPath: .metadata.creationTimestamp
  4079. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  4080. name: Age
  4081. type: date
  4082. schema:
  4083. openAPIV3Schema:
  4084. description: "A Certificate resource should be created to ensure an up to date and signed x509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`. \n The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`)."
  4085. type: object
  4086. required:
  4087. - spec
  4088. properties:
  4089. apiVersion:
  4090. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4091. type: string
  4092. kind:
  4093. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4094. type: string
  4095. metadata:
  4096. type: object
  4097. spec:
  4098. description: Desired state of the Certificate resource.
  4099. type: object
  4100. required:
  4101. - issuerRef
  4102. - secretName
  4103. properties:
  4104. commonName:
  4105. description: 'CommonName is a common name to be used on the Certificate. The CommonName should have a length of 64 characters or fewer to avoid generating invalid CSRs. This value is ignored by TLS clients when any subject alt name is set. This is x509 behaviour: https://tools.ietf.org/html/rfc6125#section-6.4.4'
  4106. type: string
  4107. dnsNames:
  4108. description: DNSNames is a list of DNS subjectAltNames to be set on the Certificate.
  4109. type: array
  4110. items:
  4111. type: string
  4112. duration:
  4113. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types. If unset this defaults to 90 days. Certificate will be renewed either 2/3 through its duration or `renewBefore` period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  4114. type: string
  4115. emailSANs:
  4116. description: EmailSANs is a list of email subjectAltNames to be set on the Certificate.
  4117. type: array
  4118. items:
  4119. type: string
  4120. encodeUsagesInRequest:
  4121. description: EncodeUsagesInRequest controls whether key usages should be present in the CertificateRequest
  4122. type: boolean
  4123. ipAddresses:
  4124. description: IPAddresses is a list of IP address subjectAltNames to be set on the Certificate.
  4125. type: array
  4126. items:
  4127. type: string
  4128. isCA:
  4129. description: IsCA will mark this Certificate as valid for certificate signing. This will automatically add the `cert sign` usage to the list of `usages`.
  4130. type: boolean
  4131. issuerRef:
  4132. description: IssuerRef is a reference to the issuer for this certificate. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the Certificate will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times.
  4133. type: object
  4134. required:
  4135. - name
  4136. properties:
  4137. group:
  4138. description: Group of the resource being referred to.
  4139. type: string
  4140. kind:
  4141. description: Kind of the resource being referred to.
  4142. type: string
  4143. name:
  4144. description: Name of the resource being referred to.
  4145. type: string
  4146. keystores:
  4147. description: Keystores configures additional keystore output formats stored in the `secretName` Secret resource.
  4148. type: object
  4149. properties:
  4150. jks:
  4151. description: JKS configures options for storing a JKS keystore in the `spec.secretName` Secret resource.
  4152. type: object
  4153. required:
  4154. - create
  4155. - passwordSecretRef
  4156. properties:
  4157. create:
  4158. description: Create enables JKS keystore creation for the Certificate. If true, a file named `keystore.jks` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance.
  4159. type: boolean
  4160. passwordSecretRef:
  4161. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the JKS keystore.
  4162. type: object
  4163. required:
  4164. - name
  4165. properties:
  4166. key:
  4167. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4168. type: string
  4169. name:
  4170. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4171. type: string
  4172. pkcs12:
  4173. description: PKCS12 configures options for storing a PKCS12 keystore in the `spec.secretName` Secret resource.
  4174. type: object
  4175. required:
  4176. - create
  4177. - passwordSecretRef
  4178. properties:
  4179. create:
  4180. description: Create enables PKCS12 keystore creation for the Certificate. If true, a file named `keystore.p12` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance.
  4181. type: boolean
  4182. passwordSecretRef:
  4183. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the PKCS12 keystore.
  4184. type: object
  4185. required:
  4186. - name
  4187. properties:
  4188. key:
  4189. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4190. type: string
  4191. name:
  4192. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4193. type: string
  4194. privateKey:
  4195. description: Options to control private keys used for the Certificate.
  4196. type: object
  4197. properties:
  4198. algorithm:
  4199. description: Algorithm is the private key algorithm of the corresponding private key for this certificate. If provided, allowed values are either `RSA` or `ECDSA` If `algorithm` is specified and `size` is not provided, key size of 256 will be used for `ECDSA` key algorithm and key size of 2048 will be used for `RSA` key algorithm.
  4200. type: string
  4201. enum:
  4202. - RSA
  4203. - ECDSA
  4204. encoding:
  4205. description: The private key cryptography standards (PKCS) encoding for this certificate's private key to be encoded in. If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1 and PKCS#8, respectively. Defaults to `PKCS1` if not specified.
  4206. type: string
  4207. enum:
  4208. - PKCS1
  4209. - PKCS8
  4210. rotationPolicy:
  4211. description: RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to Never, a private key will only be generated if one does not already exist in the target `spec.secretName`. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to Always, a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.
  4212. type: string
  4213. size:
  4214. description: Size is the key bit size of the corresponding private key for this certificate. If `algorithm` is set to `RSA`, valid values are `2048`, `4096` or `8192`, and will default to `2048` if not specified. If `algorithm` is set to `ECDSA`, valid values are `256`, `384` or `521`, and will default to `256` if not specified. No other values are allowed.
  4215. type: integer
  4216. renewBefore:
  4217. description: How long before the currently issued certificate's expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate's duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  4218. type: string
  4219. revisionHistoryLimit:
  4220. description: revisionHistoryLimit is the maximum number of CertificateRequest revisions that are maintained in the Certificate's history. Each revision represents a single `CertificateRequest` created by this Certificate, either when it was created, renewed, or Spec was changed. Revisions will be removed by oldest first if the number of revisions exceeds this number. If set, revisionHistoryLimit must be a value of `1` or greater. If unset (`nil`), revisions will not be garbage collected. Default value is `nil`.
  4221. type: integer
  4222. format: int32
  4223. secretName:
  4224. description: SecretName is the name of the secret resource that will be automatically created and managed by this Certificate resource. It will be populated with a private key and certificate, signed by the denoted issuer.
  4225. type: string
  4226. secretTemplate:
  4227. description: SecretTemplate defines annotations and labels to be propagated to the Kubernetes Secret when it is created or updated. Once created, labels and annotations are not yet removed from the Secret when they are removed from the template. See https://github.com/jetstack/cert-manager/issues/4292
  4228. type: object
  4229. properties:
  4230. annotations:
  4231. description: Annotations is a key value map to be copied to the target Kubernetes Secret.
  4232. type: object
  4233. additionalProperties:
  4234. type: string
  4235. labels:
  4236. description: Labels is a key value map to be copied to the target Kubernetes Secret.
  4237. type: object
  4238. additionalProperties:
  4239. type: string
  4240. subject:
  4241. description: Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).
  4242. type: object
  4243. properties:
  4244. countries:
  4245. description: Countries to be used on the Certificate.
  4246. type: array
  4247. items:
  4248. type: string
  4249. localities:
  4250. description: Cities to be used on the Certificate.
  4251. type: array
  4252. items:
  4253. type: string
  4254. organizationalUnits:
  4255. description: Organizational Units to be used on the Certificate.
  4256. type: array
  4257. items:
  4258. type: string
  4259. organizations:
  4260. description: Organizations to be used on the Certificate.
  4261. type: array
  4262. items:
  4263. type: string
  4264. postalCodes:
  4265. description: Postal codes to be used on the Certificate.
  4266. type: array
  4267. items:
  4268. type: string
  4269. provinces:
  4270. description: State/Provinces to be used on the Certificate.
  4271. type: array
  4272. items:
  4273. type: string
  4274. serialNumber:
  4275. description: Serial number to be used on the Certificate.
  4276. type: string
  4277. streetAddresses:
  4278. description: Street addresses to be used on the Certificate.
  4279. type: array
  4280. items:
  4281. type: string
  4282. uriSANs:
  4283. description: URISANs is a list of URI subjectAltNames to be set on the Certificate.
  4284. type: array
  4285. items:
  4286. type: string
  4287. usages:
  4288. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  4289. type: array
  4290. items:
  4291. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  4292. type: string
  4293. enum:
  4294. - signing
  4295. - digital signature
  4296. - content commitment
  4297. - key encipherment
  4298. - key agreement
  4299. - data encipherment
  4300. - cert sign
  4301. - crl sign
  4302. - encipher only
  4303. - decipher only
  4304. - any
  4305. - server auth
  4306. - client auth
  4307. - code signing
  4308. - email protection
  4309. - s/mime
  4310. - ipsec end system
  4311. - ipsec tunnel
  4312. - ipsec user
  4313. - timestamping
  4314. - ocsp signing
  4315. - microsoft sgc
  4316. - netscape sgc
  4317. status:
  4318. description: Status of the Certificate. This is set and managed automatically.
  4319. type: object
  4320. properties:
  4321. conditions:
  4322. description: List of status conditions to indicate the status of certificates. Known condition types are `Ready` and `Issuing`.
  4323. type: array
  4324. items:
  4325. description: CertificateCondition contains condition information for an Certificate.
  4326. type: object
  4327. required:
  4328. - status
  4329. - type
  4330. properties:
  4331. lastTransitionTime:
  4332. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  4333. type: string
  4334. format: date-time
  4335. message:
  4336. description: Message is a human readable description of the details of the last transition, complementing reason.
  4337. type: string
  4338. observedGeneration:
  4339. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Certificate.
  4340. type: integer
  4341. format: int64
  4342. reason:
  4343. description: Reason is a brief machine readable explanation for the condition's last transition.
  4344. type: string
  4345. status:
  4346. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  4347. type: string
  4348. enum:
  4349. - "True"
  4350. - "False"
  4351. - Unknown
  4352. type:
  4353. description: Type of the condition, known values are (`Ready`, `Issuing`).
  4354. type: string
  4355. lastFailureTime:
  4356. description: LastFailureTime is the time as recorded by the Certificate controller of the most recent failure to complete a CertificateRequest for this Certificate resource. If set, cert-manager will not re-request another Certificate until 1 hour has elapsed from this time.
  4357. type: string
  4358. format: date-time
  4359. nextPrivateKeySecretName:
  4360. description: The name of the Secret resource containing the private key to be used for the next certificate iteration. The keymanager controller will automatically set this field if the `Issuing` condition is set to `True`. It will automatically unset this field when the Issuing condition is not set or False.
  4361. type: string
  4362. notAfter:
  4363. description: The expiration time of the certificate stored in the secret named by this resource in `spec.secretName`.
  4364. type: string
  4365. format: date-time
  4366. notBefore:
  4367. description: The time after which the certificate stored in the secret named by this resource in spec.secretName is valid.
  4368. type: string
  4369. format: date-time
  4370. renewalTime:
  4371. description: RenewalTime is the time at which the certificate will be next renewed. If not set, no upcoming renewal is scheduled.
  4372. type: string
  4373. format: date-time
  4374. revision:
  4375. description: "The current 'revision' of the certificate as issued. \n When a CertificateRequest resource is created, it will have the `cert-manager.io/certificate-revision` set to one greater than the current value of this field. \n Upon issuance, this field will be set to the value of the annotation on the CertificateRequest resource used to issue the certificate. \n Persisting the value on the CertificateRequest resource allows the certificates controller to know whether a request is part of an old issuance or if it is part of the ongoing revision's issuance by checking if the revision value in the annotation is greater than this field."
  4376. type: integer
  4377. served: true
  4378. storage: false
  4379. - name: v1
  4380. subresources:
  4381. status: {}
  4382. additionalPrinterColumns:
  4383. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  4384. name: Ready
  4385. type: string
  4386. - jsonPath: .spec.secretName
  4387. name: Secret
  4388. type: string
  4389. - jsonPath: .spec.issuerRef.name
  4390. name: Issuer
  4391. priority: 1
  4392. type: string
  4393. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  4394. name: Status
  4395. priority: 1
  4396. type: string
  4397. - jsonPath: .metadata.creationTimestamp
  4398. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  4399. name: Age
  4400. type: date
  4401. schema:
  4402. openAPIV3Schema:
  4403. description: "A Certificate resource should be created to ensure an up to date and signed x509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`. \n The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`)."
  4404. type: object
  4405. required:
  4406. - spec
  4407. properties:
  4408. apiVersion:
  4409. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4410. type: string
  4411. kind:
  4412. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4413. type: string
  4414. metadata:
  4415. type: object
  4416. spec:
  4417. description: Desired state of the Certificate resource.
  4418. type: object
  4419. required:
  4420. - issuerRef
  4421. - secretName
  4422. properties:
  4423. commonName:
  4424. description: 'CommonName is a common name to be used on the Certificate. The CommonName should have a length of 64 characters or fewer to avoid generating invalid CSRs. This value is ignored by TLS clients when any subject alt name is set. This is x509 behaviour: https://tools.ietf.org/html/rfc6125#section-6.4.4'
  4425. type: string
  4426. dnsNames:
  4427. description: DNSNames is a list of DNS subjectAltNames to be set on the Certificate.
  4428. type: array
  4429. items:
  4430. type: string
  4431. duration:
  4432. description: The requested 'duration' (i.e. lifetime) of the Certificate. This option may be ignored/overridden by some issuer types. If unset this defaults to 90 days. Certificate will be renewed either 2/3 through its duration or `renewBefore` period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  4433. type: string
  4434. emailAddresses:
  4435. description: EmailAddresses is a list of email subjectAltNames to be set on the Certificate.
  4436. type: array
  4437. items:
  4438. type: string
  4439. encodeUsagesInRequest:
  4440. description: EncodeUsagesInRequest controls whether key usages should be present in the CertificateRequest
  4441. type: boolean
  4442. ipAddresses:
  4443. description: IPAddresses is a list of IP address subjectAltNames to be set on the Certificate.
  4444. type: array
  4445. items:
  4446. type: string
  4447. isCA:
  4448. description: IsCA will mark this Certificate as valid for certificate signing. This will automatically add the `cert sign` usage to the list of `usages`.
  4449. type: boolean
  4450. issuerRef:
  4451. description: IssuerRef is a reference to the issuer for this certificate. If the `kind` field is not set, or set to `Issuer`, an Issuer resource with the given name in the same namespace as the Certificate will be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer with the provided name will be used. The `name` field in this stanza is required at all times.
  4452. type: object
  4453. required:
  4454. - name
  4455. properties:
  4456. group:
  4457. description: Group of the resource being referred to.
  4458. type: string
  4459. kind:
  4460. description: Kind of the resource being referred to.
  4461. type: string
  4462. name:
  4463. description: Name of the resource being referred to.
  4464. type: string
  4465. keystores:
  4466. description: Keystores configures additional keystore output formats stored in the `secretName` Secret resource.
  4467. type: object
  4468. properties:
  4469. jks:
  4470. description: JKS configures options for storing a JKS keystore in the `spec.secretName` Secret resource.
  4471. type: object
  4472. required:
  4473. - create
  4474. - passwordSecretRef
  4475. properties:
  4476. create:
  4477. description: Create enables JKS keystore creation for the Certificate. If true, a file named `keystore.jks` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance. A file named `truststore.jks` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority
  4478. type: boolean
  4479. passwordSecretRef:
  4480. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the JKS keystore.
  4481. type: object
  4482. required:
  4483. - name
  4484. properties:
  4485. key:
  4486. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4487. type: string
  4488. name:
  4489. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4490. type: string
  4491. pkcs12:
  4492. description: PKCS12 configures options for storing a PKCS12 keystore in the `spec.secretName` Secret resource.
  4493. type: object
  4494. required:
  4495. - create
  4496. - passwordSecretRef
  4497. properties:
  4498. create:
  4499. description: Create enables PKCS12 keystore creation for the Certificate. If true, a file named `keystore.p12` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will only be updated upon re-issuance. A file named `truststore.p12` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority
  4500. type: boolean
  4501. passwordSecretRef:
  4502. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the PKCS12 keystore.
  4503. type: object
  4504. required:
  4505. - name
  4506. properties:
  4507. key:
  4508. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4509. type: string
  4510. name:
  4511. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4512. type: string
  4513. privateKey:
  4514. description: Options to control private keys used for the Certificate.
  4515. type: object
  4516. properties:
  4517. algorithm:
  4518. description: Algorithm is the private key algorithm of the corresponding private key for this certificate. If provided, allowed values are either `RSA`,`Ed25519` or `ECDSA` If `algorithm` is specified and `size` is not provided, key size of 256 will be used for `ECDSA` key algorithm and key size of 2048 will be used for `RSA` key algorithm. key size is ignored when using the `Ed25519` key algorithm.
  4519. type: string
  4520. enum:
  4521. - RSA
  4522. - ECDSA
  4523. - Ed25519
  4524. encoding:
  4525. description: The private key cryptography standards (PKCS) encoding for this certificate's private key to be encoded in. If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1 and PKCS#8, respectively. Defaults to `PKCS1` if not specified.
  4526. type: string
  4527. enum:
  4528. - PKCS1
  4529. - PKCS8
  4530. rotationPolicy:
  4531. description: RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to Never, a private key will only be generated if one does not already exist in the target `spec.secretName`. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to Always, a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.
  4532. type: string
  4533. size:
  4534. description: Size is the key bit size of the corresponding private key for this certificate. If `algorithm` is set to `RSA`, valid values are `2048`, `4096` or `8192`, and will default to `2048` if not specified. If `algorithm` is set to `ECDSA`, valid values are `256`, `384` or `521`, and will default to `256` if not specified. If `algorithm` is set to `Ed25519`, Size is ignored. No other values are allowed.
  4535. type: integer
  4536. renewBefore:
  4537. description: How long before the currently issued certificate's expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate's duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
  4538. type: string
  4539. revisionHistoryLimit:
  4540. description: revisionHistoryLimit is the maximum number of CertificateRequest revisions that are maintained in the Certificate's history. Each revision represents a single `CertificateRequest` created by this Certificate, either when it was created, renewed, or Spec was changed. Revisions will be removed by oldest first if the number of revisions exceeds this number. If set, revisionHistoryLimit must be a value of `1` or greater. If unset (`nil`), revisions will not be garbage collected. Default value is `nil`.
  4541. type: integer
  4542. format: int32
  4543. secretName:
  4544. description: SecretName is the name of the secret resource that will be automatically created and managed by this Certificate resource. It will be populated with a private key and certificate, signed by the denoted issuer.
  4545. type: string
  4546. secretTemplate:
  4547. description: SecretTemplate defines annotations and labels to be propagated to the Kubernetes Secret when it is created or updated. Once created, labels and annotations are not yet removed from the Secret when they are removed from the template. See https://github.com/jetstack/cert-manager/issues/4292
  4548. type: object
  4549. properties:
  4550. annotations:
  4551. description: Annotations is a key value map to be copied to the target Kubernetes Secret.
  4552. type: object
  4553. additionalProperties:
  4554. type: string
  4555. labels:
  4556. description: Labels is a key value map to be copied to the target Kubernetes Secret.
  4557. type: object
  4558. additionalProperties:
  4559. type: string
  4560. subject:
  4561. description: Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).
  4562. type: object
  4563. properties:
  4564. countries:
  4565. description: Countries to be used on the Certificate.
  4566. type: array
  4567. items:
  4568. type: string
  4569. localities:
  4570. description: Cities to be used on the Certificate.
  4571. type: array
  4572. items:
  4573. type: string
  4574. organizationalUnits:
  4575. description: Organizational Units to be used on the Certificate.
  4576. type: array
  4577. items:
  4578. type: string
  4579. organizations:
  4580. description: Organizations to be used on the Certificate.
  4581. type: array
  4582. items:
  4583. type: string
  4584. postalCodes:
  4585. description: Postal codes to be used on the Certificate.
  4586. type: array
  4587. items:
  4588. type: string
  4589. provinces:
  4590. description: State/Provinces to be used on the Certificate.
  4591. type: array
  4592. items:
  4593. type: string
  4594. serialNumber:
  4595. description: Serial number to be used on the Certificate.
  4596. type: string
  4597. streetAddresses:
  4598. description: Street addresses to be used on the Certificate.
  4599. type: array
  4600. items:
  4601. type: string
  4602. uris:
  4603. description: URIs is a list of URI subjectAltNames to be set on the Certificate.
  4604. type: array
  4605. items:
  4606. type: string
  4607. usages:
  4608. description: Usages is the set of x509 usages that are requested for the certificate. Defaults to `digital signature` and `key encipherment` if not specified.
  4609. type: array
  4610. items:
  4611. description: 'KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 Valid KeyUsage values are as follows: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"'
  4612. type: string
  4613. enum:
  4614. - signing
  4615. - digital signature
  4616. - content commitment
  4617. - key encipherment
  4618. - key agreement
  4619. - data encipherment
  4620. - cert sign
  4621. - crl sign
  4622. - encipher only
  4623. - decipher only
  4624. - any
  4625. - server auth
  4626. - client auth
  4627. - code signing
  4628. - email protection
  4629. - s/mime
  4630. - ipsec end system
  4631. - ipsec tunnel
  4632. - ipsec user
  4633. - timestamping
  4634. - ocsp signing
  4635. - microsoft sgc
  4636. - netscape sgc
  4637. status:
  4638. description: Status of the Certificate. This is set and managed automatically.
  4639. type: object
  4640. properties:
  4641. conditions:
  4642. description: List of status conditions to indicate the status of certificates. Known condition types are `Ready` and `Issuing`.
  4643. type: array
  4644. items:
  4645. description: CertificateCondition contains condition information for an Certificate.
  4646. type: object
  4647. required:
  4648. - status
  4649. - type
  4650. properties:
  4651. lastTransitionTime:
  4652. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  4653. type: string
  4654. format: date-time
  4655. message:
  4656. description: Message is a human readable description of the details of the last transition, complementing reason.
  4657. type: string
  4658. observedGeneration:
  4659. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Certificate.
  4660. type: integer
  4661. format: int64
  4662. reason:
  4663. description: Reason is a brief machine readable explanation for the condition's last transition.
  4664. type: string
  4665. status:
  4666. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  4667. type: string
  4668. enum:
  4669. - "True"
  4670. - "False"
  4671. - Unknown
  4672. type:
  4673. description: Type of the condition, known values are (`Ready`, `Issuing`).
  4674. type: string
  4675. lastFailureTime:
  4676. description: LastFailureTime is the time as recorded by the Certificate controller of the most recent failure to complete a CertificateRequest for this Certificate resource. If set, cert-manager will not re-request another Certificate until 1 hour has elapsed from this time.
  4677. type: string
  4678. format: date-time
  4679. nextPrivateKeySecretName:
  4680. description: The name of the Secret resource containing the private key to be used for the next certificate iteration. The keymanager controller will automatically set this field if the `Issuing` condition is set to `True`. It will automatically unset this field when the Issuing condition is not set or False.
  4681. type: string
  4682. notAfter:
  4683. description: The expiration time of the certificate stored in the secret named by this resource in `spec.secretName`.
  4684. type: string
  4685. format: date-time
  4686. notBefore:
  4687. description: The time after which the certificate stored in the secret named by this resource in spec.secretName is valid.
  4688. type: string
  4689. format: date-time
  4690. renewalTime:
  4691. description: RenewalTime is the time at which the certificate will be next renewed. If not set, no upcoming renewal is scheduled.
  4692. type: string
  4693. format: date-time
  4694. revision:
  4695. description: "The current 'revision' of the certificate as issued. \n When a CertificateRequest resource is created, it will have the `cert-manager.io/certificate-revision` set to one greater than the current value of this field. \n Upon issuance, this field will be set to the value of the annotation on the CertificateRequest resource used to issue the certificate. \n Persisting the value on the CertificateRequest resource allows the certificates controller to know whether a request is part of an old issuance or if it is part of the ongoing revision's issuance by checking if the revision value in the annotation is greater than this field."
  4696. type: integer
  4697. served: true
  4698. storage: true
  4699. ---
  4700. # Source: gitlab/charts/certmanager/templates/crds.yaml
  4701. apiVersion: apiextensions.k8s.io/v1
  4702. kind: CustomResourceDefinition
  4703. metadata:
  4704. name: challenges.acme.cert-manager.io
  4705. annotations:
  4706. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  4707. labels:
  4708. app: 'certmanager'
  4709. app.kubernetes.io/name: 'certmanager'
  4710. app.kubernetes.io/instance: 'gitlab'
  4711. # Generated labels
  4712. app.kubernetes.io/version: "v1.5.4"
  4713. app.kubernetes.io/managed-by: Helm
  4714. helm.sh/chart: certmanager-v1.5.4
  4715. spec:
  4716. group: acme.cert-manager.io
  4717. names:
  4718. kind: Challenge
  4719. listKind: ChallengeList
  4720. plural: challenges
  4721. singular: challenge
  4722. categories:
  4723. - cert-manager
  4724. - cert-manager-acme
  4725. scope: Namespaced
  4726. conversion:
  4727. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  4728. strategy: Webhook
  4729. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  4730. webhook:
  4731. # We don't actually support `v1beta1` but is listed here as it is a
  4732. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  4733. # API server reads the supported versions in order, so _should always_
  4734. # attempt a `v1` request which is understood by the cert-manager webhook.
  4735. # Any `v1beta1` request will return an error and fail closed for that
  4736. # resource (the whole object request is rejected).
  4737. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  4738. conversionReviewVersions: ["v1", "v1beta1"]
  4739. clientConfig:
  4740. #
  4741. service:
  4742. name: 'gitlab-certmanager-webhook'
  4743. namespace: "default"
  4744. path: /convert
  4745. #
  4746. versions:
  4747. - additionalPrinterColumns:
  4748. - jsonPath: .status.state
  4749. name: State
  4750. type: string
  4751. - jsonPath: .spec.dnsName
  4752. name: Domain
  4753. type: string
  4754. - jsonPath: .status.reason
  4755. name: Reason
  4756. priority: 1
  4757. type: string
  4758. - description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  4759. jsonPath: .metadata.creationTimestamp
  4760. name: Age
  4761. type: date
  4762. name: v1alpha2
  4763. schema:
  4764. openAPIV3Schema:
  4765. description: Challenge is a type to represent a Challenge request with an ACME server
  4766. type: object
  4767. required:
  4768. - metadata
  4769. properties:
  4770. apiVersion:
  4771. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4772. type: string
  4773. kind:
  4774. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4775. type: string
  4776. metadata:
  4777. type: object
  4778. spec:
  4779. type: object
  4780. required:
  4781. - authzURL
  4782. - dnsName
  4783. - issuerRef
  4784. - key
  4785. - solver
  4786. - token
  4787. - type
  4788. - url
  4789. properties:
  4790. authzURL:
  4791. description: AuthzURL is the URL to the ACME Authorization resource that this challenge is a part of.
  4792. type: string
  4793. dnsName:
  4794. description: DNSName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
  4795. type: string
  4796. issuerRef:
  4797. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
  4798. type: object
  4799. required:
  4800. - name
  4801. properties:
  4802. group:
  4803. description: Group of the resource being referred to.
  4804. type: string
  4805. kind:
  4806. description: Kind of the resource being referred to.
  4807. type: string
  4808. name:
  4809. description: Name of the resource being referred to.
  4810. type: string
  4811. key:
  4812. description: 'Key is the ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
  4813. type: string
  4814. solver:
  4815. description: Solver contains the domain solving configuration that should be used to solve this challenge resource.
  4816. type: object
  4817. properties:
  4818. dns01:
  4819. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  4820. type: object
  4821. properties:
  4822. acmedns:
  4823. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  4824. type: object
  4825. required:
  4826. - accountSecretRef
  4827. - host
  4828. properties:
  4829. accountSecretRef:
  4830. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4831. type: object
  4832. required:
  4833. - name
  4834. properties:
  4835. key:
  4836. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4837. type: string
  4838. name:
  4839. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4840. type: string
  4841. host:
  4842. type: string
  4843. akamai:
  4844. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  4845. type: object
  4846. required:
  4847. - accessTokenSecretRef
  4848. - clientSecretSecretRef
  4849. - clientTokenSecretRef
  4850. - serviceConsumerDomain
  4851. properties:
  4852. accessTokenSecretRef:
  4853. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4854. type: object
  4855. required:
  4856. - name
  4857. properties:
  4858. key:
  4859. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4860. type: string
  4861. name:
  4862. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4863. type: string
  4864. clientSecretSecretRef:
  4865. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4866. type: object
  4867. required:
  4868. - name
  4869. properties:
  4870. key:
  4871. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4872. type: string
  4873. name:
  4874. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4875. type: string
  4876. clientTokenSecretRef:
  4877. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4878. type: object
  4879. required:
  4880. - name
  4881. properties:
  4882. key:
  4883. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4884. type: string
  4885. name:
  4886. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4887. type: string
  4888. serviceConsumerDomain:
  4889. type: string
  4890. azuredns:
  4891. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  4892. type: object
  4893. required:
  4894. - resourceGroupName
  4895. - subscriptionID
  4896. properties:
  4897. clientID:
  4898. description: if both this and ClientSecret are left unset MSI will be used
  4899. type: string
  4900. clientSecretSecretRef:
  4901. description: if both this and ClientID are left unset MSI will be used
  4902. type: object
  4903. required:
  4904. - name
  4905. properties:
  4906. key:
  4907. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4908. type: string
  4909. name:
  4910. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4911. type: string
  4912. environment:
  4913. type: string
  4914. enum:
  4915. - AzurePublicCloud
  4916. - AzureChinaCloud
  4917. - AzureGermanCloud
  4918. - AzureUSGovernmentCloud
  4919. hostedZoneName:
  4920. type: string
  4921. resourceGroupName:
  4922. type: string
  4923. subscriptionID:
  4924. type: string
  4925. tenantID:
  4926. description: when specifying ClientID and ClientSecret then this field is also needed
  4927. type: string
  4928. clouddns:
  4929. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  4930. type: object
  4931. required:
  4932. - project
  4933. properties:
  4934. hostedZoneName:
  4935. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  4936. type: string
  4937. project:
  4938. type: string
  4939. serviceAccountSecretRef:
  4940. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4941. type: object
  4942. required:
  4943. - name
  4944. properties:
  4945. key:
  4946. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4947. type: string
  4948. name:
  4949. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4950. type: string
  4951. cloudflare:
  4952. description: Use the Cloudflare API to manage DNS01 challenge records.
  4953. type: object
  4954. properties:
  4955. apiKeySecretRef:
  4956. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  4957. type: object
  4958. required:
  4959. - name
  4960. properties:
  4961. key:
  4962. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4963. type: string
  4964. name:
  4965. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4966. type: string
  4967. apiTokenSecretRef:
  4968. description: API token used to authenticate with Cloudflare.
  4969. type: object
  4970. required:
  4971. - name
  4972. properties:
  4973. key:
  4974. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4975. type: string
  4976. name:
  4977. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4978. type: string
  4979. email:
  4980. description: Email of the account, only required when using API key based authentication.
  4981. type: string
  4982. cnameStrategy:
  4983. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  4984. type: string
  4985. enum:
  4986. - None
  4987. - Follow
  4988. digitalocean:
  4989. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  4990. type: object
  4991. required:
  4992. - tokenSecretRef
  4993. properties:
  4994. tokenSecretRef:
  4995. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  4996. type: object
  4997. required:
  4998. - name
  4999. properties:
  5000. key:
  5001. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5002. type: string
  5003. name:
  5004. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5005. type: string
  5006. rfc2136:
  5007. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  5008. type: object
  5009. required:
  5010. - nameserver
  5011. properties:
  5012. nameserver:
  5013. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  5014. type: string
  5015. tsigAlgorithm:
  5016. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  5017. type: string
  5018. tsigKeyName:
  5019. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  5020. type: string
  5021. tsigSecretSecretRef:
  5022. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  5023. type: object
  5024. required:
  5025. - name
  5026. properties:
  5027. key:
  5028. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5029. type: string
  5030. name:
  5031. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5032. type: string
  5033. route53:
  5034. description: Use the AWS Route53 API to manage DNS01 challenge records.
  5035. type: object
  5036. required:
  5037. - region
  5038. properties:
  5039. accessKeyID:
  5040. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  5041. type: string
  5042. hostedZoneID:
  5043. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  5044. type: string
  5045. region:
  5046. description: Always set the region when using AccessKeyID and SecretAccessKey
  5047. type: string
  5048. role:
  5049. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  5050. type: string
  5051. secretAccessKeySecretRef:
  5052. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  5053. type: object
  5054. required:
  5055. - name
  5056. properties:
  5057. key:
  5058. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5059. type: string
  5060. name:
  5061. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5062. type: string
  5063. webhook:
  5064. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  5065. type: object
  5066. required:
  5067. - groupName
  5068. - solverName
  5069. properties:
  5070. config:
  5071. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  5072. x-kubernetes-preserve-unknown-fields: true
  5073. groupName:
  5074. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  5075. type: string
  5076. solverName:
  5077. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  5078. type: string
  5079. http01:
  5080. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  5081. type: object
  5082. properties:
  5083. gatewayHTTPRoute:
  5084. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  5085. type: object
  5086. properties:
  5087. labels:
  5088. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  5089. type: object
  5090. additionalProperties:
  5091. type: string
  5092. serviceType:
  5093. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  5094. type: string
  5095. ingress:
  5096. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  5097. type: object
  5098. properties:
  5099. class:
  5100. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  5101. type: string
  5102. ingressTemplate:
  5103. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  5104. type: object
  5105. properties:
  5106. metadata:
  5107. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  5108. type: object
  5109. properties:
  5110. annotations:
  5111. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  5112. type: object
  5113. additionalProperties:
  5114. type: string
  5115. labels:
  5116. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  5117. type: object
  5118. additionalProperties:
  5119. type: string
  5120. name:
  5121. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  5122. type: string
  5123. podTemplate:
  5124. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  5125. type: object
  5126. properties:
  5127. metadata:
  5128. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  5129. type: object
  5130. properties:
  5131. annotations:
  5132. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  5133. type: object
  5134. additionalProperties:
  5135. type: string
  5136. labels:
  5137. description: Labels that should be added to the created ACME HTTP01 solver pods.
  5138. type: object
  5139. additionalProperties:
  5140. type: string
  5141. spec:
  5142. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  5143. type: object
  5144. properties:
  5145. affinity:
  5146. description: If specified, the pod's scheduling constraints
  5147. type: object
  5148. properties:
  5149. nodeAffinity:
  5150. description: Describes node affinity scheduling rules for the pod.
  5151. type: object
  5152. properties:
  5153. preferredDuringSchedulingIgnoredDuringExecution:
  5154. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  5155. type: array
  5156. items:
  5157. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  5158. type: object
  5159. required:
  5160. - preference
  5161. - weight
  5162. properties:
  5163. preference:
  5164. description: A node selector term, associated with the corresponding weight.
  5165. type: object
  5166. properties:
  5167. matchExpressions:
  5168. description: A list of node selector requirements by node's labels.
  5169. type: array
  5170. items:
  5171. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5172. type: object
  5173. required:
  5174. - key
  5175. - operator
  5176. properties:
  5177. key:
  5178. description: The label key that the selector applies to.
  5179. type: string
  5180. operator:
  5181. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5182. type: string
  5183. values:
  5184. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5185. type: array
  5186. items:
  5187. type: string
  5188. matchFields:
  5189. description: A list of node selector requirements by node's fields.
  5190. type: array
  5191. items:
  5192. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5193. type: object
  5194. required:
  5195. - key
  5196. - operator
  5197. properties:
  5198. key:
  5199. description: The label key that the selector applies to.
  5200. type: string
  5201. operator:
  5202. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5203. type: string
  5204. values:
  5205. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5206. type: array
  5207. items:
  5208. type: string
  5209. weight:
  5210. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5211. type: integer
  5212. format: int32
  5213. requiredDuringSchedulingIgnoredDuringExecution:
  5214. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  5215. type: object
  5216. required:
  5217. - nodeSelectorTerms
  5218. properties:
  5219. nodeSelectorTerms:
  5220. description: Required. A list of node selector terms. The terms are ORed.
  5221. type: array
  5222. items:
  5223. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  5224. type: object
  5225. properties:
  5226. matchExpressions:
  5227. description: A list of node selector requirements by node's labels.
  5228. type: array
  5229. items:
  5230. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5231. type: object
  5232. required:
  5233. - key
  5234. - operator
  5235. properties:
  5236. key:
  5237. description: The label key that the selector applies to.
  5238. type: string
  5239. operator:
  5240. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5241. type: string
  5242. values:
  5243. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5244. type: array
  5245. items:
  5246. type: string
  5247. matchFields:
  5248. description: A list of node selector requirements by node's fields.
  5249. type: array
  5250. items:
  5251. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5252. type: object
  5253. required:
  5254. - key
  5255. - operator
  5256. properties:
  5257. key:
  5258. description: The label key that the selector applies to.
  5259. type: string
  5260. operator:
  5261. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5262. type: string
  5263. values:
  5264. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5265. type: array
  5266. items:
  5267. type: string
  5268. podAffinity:
  5269. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  5270. type: object
  5271. properties:
  5272. preferredDuringSchedulingIgnoredDuringExecution:
  5273. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5274. type: array
  5275. items:
  5276. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5277. type: object
  5278. required:
  5279. - podAffinityTerm
  5280. - weight
  5281. properties:
  5282. podAffinityTerm:
  5283. description: Required. A pod affinity term, associated with the corresponding weight.
  5284. type: object
  5285. required:
  5286. - topologyKey
  5287. properties:
  5288. labelSelector:
  5289. description: A label query over a set of resources, in this case pods.
  5290. type: object
  5291. properties:
  5292. matchExpressions:
  5293. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5294. type: array
  5295. items:
  5296. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5297. type: object
  5298. required:
  5299. - key
  5300. - operator
  5301. properties:
  5302. key:
  5303. description: key is the label key that the selector applies to.
  5304. type: string
  5305. operator:
  5306. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5307. type: string
  5308. values:
  5309. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5310. type: array
  5311. items:
  5312. type: string
  5313. matchLabels:
  5314. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5315. type: object
  5316. additionalProperties:
  5317. type: string
  5318. namespaceSelector:
  5319. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  5320. type: object
  5321. properties:
  5322. matchExpressions:
  5323. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5324. type: array
  5325. items:
  5326. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5327. type: object
  5328. required:
  5329. - key
  5330. - operator
  5331. properties:
  5332. key:
  5333. description: key is the label key that the selector applies to.
  5334. type: string
  5335. operator:
  5336. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5337. type: string
  5338. values:
  5339. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5340. type: array
  5341. items:
  5342. type: string
  5343. matchLabels:
  5344. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5345. type: object
  5346. additionalProperties:
  5347. type: string
  5348. namespaces:
  5349. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  5350. type: array
  5351. items:
  5352. type: string
  5353. topologyKey:
  5354. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5355. type: string
  5356. weight:
  5357. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5358. type: integer
  5359. format: int32
  5360. requiredDuringSchedulingIgnoredDuringExecution:
  5361. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5362. type: array
  5363. items:
  5364. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5365. type: object
  5366. required:
  5367. - topologyKey
  5368. properties:
  5369. labelSelector:
  5370. description: A label query over a set of resources, in this case pods.
  5371. type: object
  5372. properties:
  5373. matchExpressions:
  5374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5375. type: array
  5376. items:
  5377. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5378. type: object
  5379. required:
  5380. - key
  5381. - operator
  5382. properties:
  5383. key:
  5384. description: key is the label key that the selector applies to.
  5385. type: string
  5386. operator:
  5387. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5388. type: string
  5389. values:
  5390. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5391. type: array
  5392. items:
  5393. type: string
  5394. matchLabels:
  5395. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5396. type: object
  5397. additionalProperties:
  5398. type: string
  5399. namespaceSelector:
  5400. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  5401. type: object
  5402. properties:
  5403. matchExpressions:
  5404. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5405. type: array
  5406. items:
  5407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5408. type: object
  5409. required:
  5410. - key
  5411. - operator
  5412. properties:
  5413. key:
  5414. description: key is the label key that the selector applies to.
  5415. type: string
  5416. operator:
  5417. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5418. type: string
  5419. values:
  5420. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5421. type: array
  5422. items:
  5423. type: string
  5424. matchLabels:
  5425. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5426. type: object
  5427. additionalProperties:
  5428. type: string
  5429. namespaces:
  5430. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  5431. type: array
  5432. items:
  5433. type: string
  5434. topologyKey:
  5435. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5436. type: string
  5437. podAntiAffinity:
  5438. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  5439. type: object
  5440. properties:
  5441. preferredDuringSchedulingIgnoredDuringExecution:
  5442. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5443. type: array
  5444. items:
  5445. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5446. type: object
  5447. required:
  5448. - podAffinityTerm
  5449. - weight
  5450. properties:
  5451. podAffinityTerm:
  5452. description: Required. A pod affinity term, associated with the corresponding weight.
  5453. type: object
  5454. required:
  5455. - topologyKey
  5456. properties:
  5457. labelSelector:
  5458. description: A label query over a set of resources, in this case pods.
  5459. type: object
  5460. properties:
  5461. matchExpressions:
  5462. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5463. type: array
  5464. items:
  5465. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5466. type: object
  5467. required:
  5468. - key
  5469. - operator
  5470. properties:
  5471. key:
  5472. description: key is the label key that the selector applies to.
  5473. type: string
  5474. operator:
  5475. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5476. type: string
  5477. values:
  5478. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5479. type: array
  5480. items:
  5481. type: string
  5482. matchLabels:
  5483. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5484. type: object
  5485. additionalProperties:
  5486. type: string
  5487. namespaceSelector:
  5488. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  5489. type: object
  5490. properties:
  5491. matchExpressions:
  5492. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5493. type: array
  5494. items:
  5495. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5496. type: object
  5497. required:
  5498. - key
  5499. - operator
  5500. properties:
  5501. key:
  5502. description: key is the label key that the selector applies to.
  5503. type: string
  5504. operator:
  5505. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5506. type: string
  5507. values:
  5508. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5509. type: array
  5510. items:
  5511. type: string
  5512. matchLabels:
  5513. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5514. type: object
  5515. additionalProperties:
  5516. type: string
  5517. namespaces:
  5518. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  5519. type: array
  5520. items:
  5521. type: string
  5522. topologyKey:
  5523. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5524. type: string
  5525. weight:
  5526. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5527. type: integer
  5528. format: int32
  5529. requiredDuringSchedulingIgnoredDuringExecution:
  5530. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5531. type: array
  5532. items:
  5533. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5534. type: object
  5535. required:
  5536. - topologyKey
  5537. properties:
  5538. labelSelector:
  5539. description: A label query over a set of resources, in this case pods.
  5540. type: object
  5541. properties:
  5542. matchExpressions:
  5543. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5544. type: array
  5545. items:
  5546. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5547. type: object
  5548. required:
  5549. - key
  5550. - operator
  5551. properties:
  5552. key:
  5553. description: key is the label key that the selector applies to.
  5554. type: string
  5555. operator:
  5556. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5557. type: string
  5558. values:
  5559. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5560. type: array
  5561. items:
  5562. type: string
  5563. matchLabels:
  5564. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5565. type: object
  5566. additionalProperties:
  5567. type: string
  5568. namespaceSelector:
  5569. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  5570. type: object
  5571. properties:
  5572. matchExpressions:
  5573. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5574. type: array
  5575. items:
  5576. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5577. type: object
  5578. required:
  5579. - key
  5580. - operator
  5581. properties:
  5582. key:
  5583. description: key is the label key that the selector applies to.
  5584. type: string
  5585. operator:
  5586. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5587. type: string
  5588. values:
  5589. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5590. type: array
  5591. items:
  5592. type: string
  5593. matchLabels:
  5594. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5595. type: object
  5596. additionalProperties:
  5597. type: string
  5598. namespaces:
  5599. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  5600. type: array
  5601. items:
  5602. type: string
  5603. topologyKey:
  5604. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5605. type: string
  5606. nodeSelector:
  5607. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  5608. type: object
  5609. additionalProperties:
  5610. type: string
  5611. priorityClassName:
  5612. description: If specified, the pod's priorityClassName.
  5613. type: string
  5614. serviceAccountName:
  5615. description: If specified, the pod's service account
  5616. type: string
  5617. tolerations:
  5618. description: If specified, the pod's tolerations.
  5619. type: array
  5620. items:
  5621. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  5622. type: object
  5623. properties:
  5624. effect:
  5625. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  5626. type: string
  5627. key:
  5628. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  5629. type: string
  5630. operator:
  5631. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  5632. type: string
  5633. tolerationSeconds:
  5634. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  5635. type: integer
  5636. format: int64
  5637. value:
  5638. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  5639. type: string
  5640. serviceType:
  5641. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  5642. type: string
  5643. selector:
  5644. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  5645. type: object
  5646. properties:
  5647. dnsNames:
  5648. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  5649. type: array
  5650. items:
  5651. type: string
  5652. dnsZones:
  5653. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  5654. type: array
  5655. items:
  5656. type: string
  5657. matchLabels:
  5658. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  5659. type: object
  5660. additionalProperties:
  5661. type: string
  5662. token:
  5663. description: Token is the ACME challenge token for this challenge. This is the raw value returned from the ACME server.
  5664. type: string
  5665. type:
  5666. description: Type is the type of ACME challenge this resource represents. One of "http-01" or "dns-01".
  5667. type: string
  5668. enum:
  5669. - http-01
  5670. - dns-01
  5671. url:
  5672. description: URL is the URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
  5673. type: string
  5674. wildcard:
  5675. description: Wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
  5676. type: boolean
  5677. status:
  5678. type: object
  5679. properties:
  5680. presented:
  5681. description: Presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
  5682. type: boolean
  5683. processing:
  5684. description: Processing is used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
  5685. type: boolean
  5686. reason:
  5687. description: Reason contains human readable information on why the Challenge is in the current state.
  5688. type: string
  5689. state:
  5690. description: State contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
  5691. type: string
  5692. enum:
  5693. - valid
  5694. - ready
  5695. - pending
  5696. - processing
  5697. - invalid
  5698. - expired
  5699. - errored
  5700. served: true
  5701. storage: false
  5702. subresources:
  5703. status: {}
  5704. - additionalPrinterColumns:
  5705. - jsonPath: .status.state
  5706. name: State
  5707. type: string
  5708. - jsonPath: .spec.dnsName
  5709. name: Domain
  5710. type: string
  5711. - jsonPath: .status.reason
  5712. name: Reason
  5713. priority: 1
  5714. type: string
  5715. - description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  5716. jsonPath: .metadata.creationTimestamp
  5717. name: Age
  5718. type: date
  5719. name: v1alpha3
  5720. schema:
  5721. openAPIV3Schema:
  5722. description: Challenge is a type to represent a Challenge request with an ACME server
  5723. type: object
  5724. required:
  5725. - metadata
  5726. properties:
  5727. apiVersion:
  5728. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5729. type: string
  5730. kind:
  5731. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5732. type: string
  5733. metadata:
  5734. type: object
  5735. spec:
  5736. type: object
  5737. required:
  5738. - authzURL
  5739. - dnsName
  5740. - issuerRef
  5741. - key
  5742. - solver
  5743. - token
  5744. - type
  5745. - url
  5746. properties:
  5747. authzURL:
  5748. description: AuthzURL is the URL to the ACME Authorization resource that this challenge is a part of.
  5749. type: string
  5750. dnsName:
  5751. description: DNSName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
  5752. type: string
  5753. issuerRef:
  5754. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
  5755. type: object
  5756. required:
  5757. - name
  5758. properties:
  5759. group:
  5760. description: Group of the resource being referred to.
  5761. type: string
  5762. kind:
  5763. description: Kind of the resource being referred to.
  5764. type: string
  5765. name:
  5766. description: Name of the resource being referred to.
  5767. type: string
  5768. key:
  5769. description: 'Key is the ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
  5770. type: string
  5771. solver:
  5772. description: Solver contains the domain solving configuration that should be used to solve this challenge resource.
  5773. type: object
  5774. properties:
  5775. dns01:
  5776. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  5777. type: object
  5778. properties:
  5779. acmedns:
  5780. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  5781. type: object
  5782. required:
  5783. - accountSecretRef
  5784. - host
  5785. properties:
  5786. accountSecretRef:
  5787. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5788. type: object
  5789. required:
  5790. - name
  5791. properties:
  5792. key:
  5793. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5794. type: string
  5795. name:
  5796. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5797. type: string
  5798. host:
  5799. type: string
  5800. akamai:
  5801. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  5802. type: object
  5803. required:
  5804. - accessTokenSecretRef
  5805. - clientSecretSecretRef
  5806. - clientTokenSecretRef
  5807. - serviceConsumerDomain
  5808. properties:
  5809. accessTokenSecretRef:
  5810. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5811. type: object
  5812. required:
  5813. - name
  5814. properties:
  5815. key:
  5816. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5817. type: string
  5818. name:
  5819. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5820. type: string
  5821. clientSecretSecretRef:
  5822. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5823. type: object
  5824. required:
  5825. - name
  5826. properties:
  5827. key:
  5828. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5829. type: string
  5830. name:
  5831. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5832. type: string
  5833. clientTokenSecretRef:
  5834. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5835. type: object
  5836. required:
  5837. - name
  5838. properties:
  5839. key:
  5840. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5841. type: string
  5842. name:
  5843. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5844. type: string
  5845. serviceConsumerDomain:
  5846. type: string
  5847. azuredns:
  5848. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  5849. type: object
  5850. required:
  5851. - resourceGroupName
  5852. - subscriptionID
  5853. properties:
  5854. clientID:
  5855. description: if both this and ClientSecret are left unset MSI will be used
  5856. type: string
  5857. clientSecretSecretRef:
  5858. description: if both this and ClientID are left unset MSI will be used
  5859. type: object
  5860. required:
  5861. - name
  5862. properties:
  5863. key:
  5864. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5865. type: string
  5866. name:
  5867. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5868. type: string
  5869. environment:
  5870. type: string
  5871. enum:
  5872. - AzurePublicCloud
  5873. - AzureChinaCloud
  5874. - AzureGermanCloud
  5875. - AzureUSGovernmentCloud
  5876. hostedZoneName:
  5877. type: string
  5878. resourceGroupName:
  5879. type: string
  5880. subscriptionID:
  5881. type: string
  5882. tenantID:
  5883. description: when specifying ClientID and ClientSecret then this field is also needed
  5884. type: string
  5885. clouddns:
  5886. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  5887. type: object
  5888. required:
  5889. - project
  5890. properties:
  5891. hostedZoneName:
  5892. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  5893. type: string
  5894. project:
  5895. type: string
  5896. serviceAccountSecretRef:
  5897. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5898. type: object
  5899. required:
  5900. - name
  5901. properties:
  5902. key:
  5903. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5904. type: string
  5905. name:
  5906. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5907. type: string
  5908. cloudflare:
  5909. description: Use the Cloudflare API to manage DNS01 challenge records.
  5910. type: object
  5911. properties:
  5912. apiKeySecretRef:
  5913. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  5914. type: object
  5915. required:
  5916. - name
  5917. properties:
  5918. key:
  5919. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5920. type: string
  5921. name:
  5922. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5923. type: string
  5924. apiTokenSecretRef:
  5925. description: API token used to authenticate with Cloudflare.
  5926. type: object
  5927. required:
  5928. - name
  5929. properties:
  5930. key:
  5931. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5932. type: string
  5933. name:
  5934. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5935. type: string
  5936. email:
  5937. description: Email of the account, only required when using API key based authentication.
  5938. type: string
  5939. cnameStrategy:
  5940. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  5941. type: string
  5942. enum:
  5943. - None
  5944. - Follow
  5945. digitalocean:
  5946. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  5947. type: object
  5948. required:
  5949. - tokenSecretRef
  5950. properties:
  5951. tokenSecretRef:
  5952. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  5953. type: object
  5954. required:
  5955. - name
  5956. properties:
  5957. key:
  5958. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5959. type: string
  5960. name:
  5961. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5962. type: string
  5963. rfc2136:
  5964. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  5965. type: object
  5966. required:
  5967. - nameserver
  5968. properties:
  5969. nameserver:
  5970. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  5971. type: string
  5972. tsigAlgorithm:
  5973. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  5974. type: string
  5975. tsigKeyName:
  5976. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  5977. type: string
  5978. tsigSecretSecretRef:
  5979. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  5980. type: object
  5981. required:
  5982. - name
  5983. properties:
  5984. key:
  5985. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  5986. type: string
  5987. name:
  5988. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  5989. type: string
  5990. route53:
  5991. description: Use the AWS Route53 API to manage DNS01 challenge records.
  5992. type: object
  5993. required:
  5994. - region
  5995. properties:
  5996. accessKeyID:
  5997. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  5998. type: string
  5999. hostedZoneID:
  6000. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  6001. type: string
  6002. region:
  6003. description: Always set the region when using AccessKeyID and SecretAccessKey
  6004. type: string
  6005. role:
  6006. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  6007. type: string
  6008. secretAccessKeySecretRef:
  6009. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  6010. type: object
  6011. required:
  6012. - name
  6013. properties:
  6014. key:
  6015. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6016. type: string
  6017. name:
  6018. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6019. type: string
  6020. webhook:
  6021. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  6022. type: object
  6023. required:
  6024. - groupName
  6025. - solverName
  6026. properties:
  6027. config:
  6028. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  6029. x-kubernetes-preserve-unknown-fields: true
  6030. groupName:
  6031. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  6032. type: string
  6033. solverName:
  6034. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  6035. type: string
  6036. http01:
  6037. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  6038. type: object
  6039. properties:
  6040. gatewayHTTPRoute:
  6041. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  6042. type: object
  6043. properties:
  6044. labels:
  6045. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  6046. type: object
  6047. additionalProperties:
  6048. type: string
  6049. serviceType:
  6050. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  6051. type: string
  6052. ingress:
  6053. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  6054. type: object
  6055. properties:
  6056. class:
  6057. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  6058. type: string
  6059. ingressTemplate:
  6060. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  6061. type: object
  6062. properties:
  6063. metadata:
  6064. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  6065. type: object
  6066. properties:
  6067. annotations:
  6068. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  6069. type: object
  6070. additionalProperties:
  6071. type: string
  6072. labels:
  6073. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  6074. type: object
  6075. additionalProperties:
  6076. type: string
  6077. name:
  6078. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  6079. type: string
  6080. podTemplate:
  6081. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  6082. type: object
  6083. properties:
  6084. metadata:
  6085. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  6086. type: object
  6087. properties:
  6088. annotations:
  6089. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  6090. type: object
  6091. additionalProperties:
  6092. type: string
  6093. labels:
  6094. description: Labels that should be added to the created ACME HTTP01 solver pods.
  6095. type: object
  6096. additionalProperties:
  6097. type: string
  6098. spec:
  6099. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  6100. type: object
  6101. properties:
  6102. affinity:
  6103. description: If specified, the pod's scheduling constraints
  6104. type: object
  6105. properties:
  6106. nodeAffinity:
  6107. description: Describes node affinity scheduling rules for the pod.
  6108. type: object
  6109. properties:
  6110. preferredDuringSchedulingIgnoredDuringExecution:
  6111. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  6112. type: array
  6113. items:
  6114. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  6115. type: object
  6116. required:
  6117. - preference
  6118. - weight
  6119. properties:
  6120. preference:
  6121. description: A node selector term, associated with the corresponding weight.
  6122. type: object
  6123. properties:
  6124. matchExpressions:
  6125. description: A list of node selector requirements by node's labels.
  6126. type: array
  6127. items:
  6128. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6129. type: object
  6130. required:
  6131. - key
  6132. - operator
  6133. properties:
  6134. key:
  6135. description: The label key that the selector applies to.
  6136. type: string
  6137. operator:
  6138. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6139. type: string
  6140. values:
  6141. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6142. type: array
  6143. items:
  6144. type: string
  6145. matchFields:
  6146. description: A list of node selector requirements by node's fields.
  6147. type: array
  6148. items:
  6149. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6150. type: object
  6151. required:
  6152. - key
  6153. - operator
  6154. properties:
  6155. key:
  6156. description: The label key that the selector applies to.
  6157. type: string
  6158. operator:
  6159. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6160. type: string
  6161. values:
  6162. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6163. type: array
  6164. items:
  6165. type: string
  6166. weight:
  6167. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  6168. type: integer
  6169. format: int32
  6170. requiredDuringSchedulingIgnoredDuringExecution:
  6171. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  6172. type: object
  6173. required:
  6174. - nodeSelectorTerms
  6175. properties:
  6176. nodeSelectorTerms:
  6177. description: Required. A list of node selector terms. The terms are ORed.
  6178. type: array
  6179. items:
  6180. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  6181. type: object
  6182. properties:
  6183. matchExpressions:
  6184. description: A list of node selector requirements by node's labels.
  6185. type: array
  6186. items:
  6187. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6188. type: object
  6189. required:
  6190. - key
  6191. - operator
  6192. properties:
  6193. key:
  6194. description: The label key that the selector applies to.
  6195. type: string
  6196. operator:
  6197. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6198. type: string
  6199. values:
  6200. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6201. type: array
  6202. items:
  6203. type: string
  6204. matchFields:
  6205. description: A list of node selector requirements by node's fields.
  6206. type: array
  6207. items:
  6208. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6209. type: object
  6210. required:
  6211. - key
  6212. - operator
  6213. properties:
  6214. key:
  6215. description: The label key that the selector applies to.
  6216. type: string
  6217. operator:
  6218. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6219. type: string
  6220. values:
  6221. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6222. type: array
  6223. items:
  6224. type: string
  6225. podAffinity:
  6226. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  6227. type: object
  6228. properties:
  6229. preferredDuringSchedulingIgnoredDuringExecution:
  6230. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  6231. type: array
  6232. items:
  6233. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6234. type: object
  6235. required:
  6236. - podAffinityTerm
  6237. - weight
  6238. properties:
  6239. podAffinityTerm:
  6240. description: Required. A pod affinity term, associated with the corresponding weight.
  6241. type: object
  6242. required:
  6243. - topologyKey
  6244. properties:
  6245. labelSelector:
  6246. description: A label query over a set of resources, in this case pods.
  6247. type: object
  6248. properties:
  6249. matchExpressions:
  6250. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6251. type: array
  6252. items:
  6253. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6254. type: object
  6255. required:
  6256. - key
  6257. - operator
  6258. properties:
  6259. key:
  6260. description: key is the label key that the selector applies to.
  6261. type: string
  6262. operator:
  6263. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6264. type: string
  6265. values:
  6266. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6267. type: array
  6268. items:
  6269. type: string
  6270. matchLabels:
  6271. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6272. type: object
  6273. additionalProperties:
  6274. type: string
  6275. namespaceSelector:
  6276. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  6277. type: object
  6278. properties:
  6279. matchExpressions:
  6280. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6281. type: array
  6282. items:
  6283. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6284. type: object
  6285. required:
  6286. - key
  6287. - operator
  6288. properties:
  6289. key:
  6290. description: key is the label key that the selector applies to.
  6291. type: string
  6292. operator:
  6293. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6294. type: string
  6295. values:
  6296. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6297. type: array
  6298. items:
  6299. type: string
  6300. matchLabels:
  6301. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6302. type: object
  6303. additionalProperties:
  6304. type: string
  6305. namespaces:
  6306. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  6307. type: array
  6308. items:
  6309. type: string
  6310. topologyKey:
  6311. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6312. type: string
  6313. weight:
  6314. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6315. type: integer
  6316. format: int32
  6317. requiredDuringSchedulingIgnoredDuringExecution:
  6318. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6319. type: array
  6320. items:
  6321. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6322. type: object
  6323. required:
  6324. - topologyKey
  6325. properties:
  6326. labelSelector:
  6327. description: A label query over a set of resources, in this case pods.
  6328. type: object
  6329. properties:
  6330. matchExpressions:
  6331. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6332. type: array
  6333. items:
  6334. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6335. type: object
  6336. required:
  6337. - key
  6338. - operator
  6339. properties:
  6340. key:
  6341. description: key is the label key that the selector applies to.
  6342. type: string
  6343. operator:
  6344. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6345. type: string
  6346. values:
  6347. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6348. type: array
  6349. items:
  6350. type: string
  6351. matchLabels:
  6352. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6353. type: object
  6354. additionalProperties:
  6355. type: string
  6356. namespaceSelector:
  6357. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  6358. type: object
  6359. properties:
  6360. matchExpressions:
  6361. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6362. type: array
  6363. items:
  6364. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6365. type: object
  6366. required:
  6367. - key
  6368. - operator
  6369. properties:
  6370. key:
  6371. description: key is the label key that the selector applies to.
  6372. type: string
  6373. operator:
  6374. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6375. type: string
  6376. values:
  6377. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6378. type: array
  6379. items:
  6380. type: string
  6381. matchLabels:
  6382. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6383. type: object
  6384. additionalProperties:
  6385. type: string
  6386. namespaces:
  6387. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  6388. type: array
  6389. items:
  6390. type: string
  6391. topologyKey:
  6392. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6393. type: string
  6394. podAntiAffinity:
  6395. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  6396. type: object
  6397. properties:
  6398. preferredDuringSchedulingIgnoredDuringExecution:
  6399. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  6400. type: array
  6401. items:
  6402. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6403. type: object
  6404. required:
  6405. - podAffinityTerm
  6406. - weight
  6407. properties:
  6408. podAffinityTerm:
  6409. description: Required. A pod affinity term, associated with the corresponding weight.
  6410. type: object
  6411. required:
  6412. - topologyKey
  6413. properties:
  6414. labelSelector:
  6415. description: A label query over a set of resources, in this case pods.
  6416. type: object
  6417. properties:
  6418. matchExpressions:
  6419. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6420. type: array
  6421. items:
  6422. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6423. type: object
  6424. required:
  6425. - key
  6426. - operator
  6427. properties:
  6428. key:
  6429. description: key is the label key that the selector applies to.
  6430. type: string
  6431. operator:
  6432. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6433. type: string
  6434. values:
  6435. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6436. type: array
  6437. items:
  6438. type: string
  6439. matchLabels:
  6440. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6441. type: object
  6442. additionalProperties:
  6443. type: string
  6444. namespaceSelector:
  6445. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  6446. type: object
  6447. properties:
  6448. matchExpressions:
  6449. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6450. type: array
  6451. items:
  6452. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6453. type: object
  6454. required:
  6455. - key
  6456. - operator
  6457. properties:
  6458. key:
  6459. description: key is the label key that the selector applies to.
  6460. type: string
  6461. operator:
  6462. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6463. type: string
  6464. values:
  6465. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6466. type: array
  6467. items:
  6468. type: string
  6469. matchLabels:
  6470. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6471. type: object
  6472. additionalProperties:
  6473. type: string
  6474. namespaces:
  6475. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  6476. type: array
  6477. items:
  6478. type: string
  6479. topologyKey:
  6480. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6481. type: string
  6482. weight:
  6483. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6484. type: integer
  6485. format: int32
  6486. requiredDuringSchedulingIgnoredDuringExecution:
  6487. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6488. type: array
  6489. items:
  6490. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6491. type: object
  6492. required:
  6493. - topologyKey
  6494. properties:
  6495. labelSelector:
  6496. description: A label query over a set of resources, in this case pods.
  6497. type: object
  6498. properties:
  6499. matchExpressions:
  6500. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6501. type: array
  6502. items:
  6503. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6504. type: object
  6505. required:
  6506. - key
  6507. - operator
  6508. properties:
  6509. key:
  6510. description: key is the label key that the selector applies to.
  6511. type: string
  6512. operator:
  6513. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6514. type: string
  6515. values:
  6516. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6517. type: array
  6518. items:
  6519. type: string
  6520. matchLabels:
  6521. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6522. type: object
  6523. additionalProperties:
  6524. type: string
  6525. namespaceSelector:
  6526. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  6527. type: object
  6528. properties:
  6529. matchExpressions:
  6530. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6531. type: array
  6532. items:
  6533. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6534. type: object
  6535. required:
  6536. - key
  6537. - operator
  6538. properties:
  6539. key:
  6540. description: key is the label key that the selector applies to.
  6541. type: string
  6542. operator:
  6543. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6544. type: string
  6545. values:
  6546. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6547. type: array
  6548. items:
  6549. type: string
  6550. matchLabels:
  6551. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6552. type: object
  6553. additionalProperties:
  6554. type: string
  6555. namespaces:
  6556. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  6557. type: array
  6558. items:
  6559. type: string
  6560. topologyKey:
  6561. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6562. type: string
  6563. nodeSelector:
  6564. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  6565. type: object
  6566. additionalProperties:
  6567. type: string
  6568. priorityClassName:
  6569. description: If specified, the pod's priorityClassName.
  6570. type: string
  6571. serviceAccountName:
  6572. description: If specified, the pod's service account
  6573. type: string
  6574. tolerations:
  6575. description: If specified, the pod's tolerations.
  6576. type: array
  6577. items:
  6578. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  6579. type: object
  6580. properties:
  6581. effect:
  6582. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  6583. type: string
  6584. key:
  6585. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  6586. type: string
  6587. operator:
  6588. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  6589. type: string
  6590. tolerationSeconds:
  6591. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  6592. type: integer
  6593. format: int64
  6594. value:
  6595. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  6596. type: string
  6597. serviceType:
  6598. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  6599. type: string
  6600. selector:
  6601. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  6602. type: object
  6603. properties:
  6604. dnsNames:
  6605. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  6606. type: array
  6607. items:
  6608. type: string
  6609. dnsZones:
  6610. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  6611. type: array
  6612. items:
  6613. type: string
  6614. matchLabels:
  6615. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  6616. type: object
  6617. additionalProperties:
  6618. type: string
  6619. token:
  6620. description: Token is the ACME challenge token for this challenge. This is the raw value returned from the ACME server.
  6621. type: string
  6622. type:
  6623. description: Type is the type of ACME challenge this resource represents. One of "http-01" or "dns-01".
  6624. type: string
  6625. enum:
  6626. - http-01
  6627. - dns-01
  6628. url:
  6629. description: URL is the URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
  6630. type: string
  6631. wildcard:
  6632. description: Wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
  6633. type: boolean
  6634. status:
  6635. type: object
  6636. properties:
  6637. presented:
  6638. description: Presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
  6639. type: boolean
  6640. processing:
  6641. description: Processing is used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
  6642. type: boolean
  6643. reason:
  6644. description: Reason contains human readable information on why the Challenge is in the current state.
  6645. type: string
  6646. state:
  6647. description: State contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
  6648. type: string
  6649. enum:
  6650. - valid
  6651. - ready
  6652. - pending
  6653. - processing
  6654. - invalid
  6655. - expired
  6656. - errored
  6657. served: true
  6658. storage: false
  6659. subresources:
  6660. status: {}
  6661. - additionalPrinterColumns:
  6662. - jsonPath: .status.state
  6663. name: State
  6664. type: string
  6665. - jsonPath: .spec.dnsName
  6666. name: Domain
  6667. type: string
  6668. - jsonPath: .status.reason
  6669. name: Reason
  6670. priority: 1
  6671. type: string
  6672. - description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  6673. jsonPath: .metadata.creationTimestamp
  6674. name: Age
  6675. type: date
  6676. name: v1beta1
  6677. schema:
  6678. openAPIV3Schema:
  6679. description: Challenge is a type to represent a Challenge request with an ACME server
  6680. type: object
  6681. required:
  6682. - metadata
  6683. - spec
  6684. properties:
  6685. apiVersion:
  6686. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6687. type: string
  6688. kind:
  6689. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6690. type: string
  6691. metadata:
  6692. type: object
  6693. spec:
  6694. type: object
  6695. required:
  6696. - authorizationURL
  6697. - dnsName
  6698. - issuerRef
  6699. - key
  6700. - solver
  6701. - token
  6702. - type
  6703. - url
  6704. properties:
  6705. authorizationURL:
  6706. description: The URL to the ACME Authorization resource that this challenge is a part of.
  6707. type: string
  6708. dnsName:
  6709. description: dnsName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
  6710. type: string
  6711. issuerRef:
  6712. description: References a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
  6713. type: object
  6714. required:
  6715. - name
  6716. properties:
  6717. group:
  6718. description: Group of the resource being referred to.
  6719. type: string
  6720. kind:
  6721. description: Kind of the resource being referred to.
  6722. type: string
  6723. name:
  6724. description: Name of the resource being referred to.
  6725. type: string
  6726. key:
  6727. description: 'The ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
  6728. type: string
  6729. solver:
  6730. description: Contains the domain solving configuration that should be used to solve this challenge resource.
  6731. type: object
  6732. properties:
  6733. dns01:
  6734. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  6735. type: object
  6736. properties:
  6737. acmeDNS:
  6738. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  6739. type: object
  6740. required:
  6741. - accountSecretRef
  6742. - host
  6743. properties:
  6744. accountSecretRef:
  6745. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6746. type: object
  6747. required:
  6748. - name
  6749. properties:
  6750. key:
  6751. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6752. type: string
  6753. name:
  6754. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6755. type: string
  6756. host:
  6757. type: string
  6758. akamai:
  6759. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  6760. type: object
  6761. required:
  6762. - accessTokenSecretRef
  6763. - clientSecretSecretRef
  6764. - clientTokenSecretRef
  6765. - serviceConsumerDomain
  6766. properties:
  6767. accessTokenSecretRef:
  6768. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6769. type: object
  6770. required:
  6771. - name
  6772. properties:
  6773. key:
  6774. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6775. type: string
  6776. name:
  6777. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6778. type: string
  6779. clientSecretSecretRef:
  6780. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6781. type: object
  6782. required:
  6783. - name
  6784. properties:
  6785. key:
  6786. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6787. type: string
  6788. name:
  6789. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6790. type: string
  6791. clientTokenSecretRef:
  6792. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6793. type: object
  6794. required:
  6795. - name
  6796. properties:
  6797. key:
  6798. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6799. type: string
  6800. name:
  6801. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6802. type: string
  6803. serviceConsumerDomain:
  6804. type: string
  6805. azureDNS:
  6806. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  6807. type: object
  6808. required:
  6809. - resourceGroupName
  6810. - subscriptionID
  6811. properties:
  6812. clientID:
  6813. description: if both this and ClientSecret are left unset MSI will be used
  6814. type: string
  6815. clientSecretSecretRef:
  6816. description: if both this and ClientID are left unset MSI will be used
  6817. type: object
  6818. required:
  6819. - name
  6820. properties:
  6821. key:
  6822. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6823. type: string
  6824. name:
  6825. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6826. type: string
  6827. environment:
  6828. type: string
  6829. enum:
  6830. - AzurePublicCloud
  6831. - AzureChinaCloud
  6832. - AzureGermanCloud
  6833. - AzureUSGovernmentCloud
  6834. hostedZoneName:
  6835. type: string
  6836. resourceGroupName:
  6837. type: string
  6838. subscriptionID:
  6839. type: string
  6840. tenantID:
  6841. description: when specifying ClientID and ClientSecret then this field is also needed
  6842. type: string
  6843. cloudDNS:
  6844. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  6845. type: object
  6846. required:
  6847. - project
  6848. properties:
  6849. hostedZoneName:
  6850. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  6851. type: string
  6852. project:
  6853. type: string
  6854. serviceAccountSecretRef:
  6855. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6856. type: object
  6857. required:
  6858. - name
  6859. properties:
  6860. key:
  6861. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6862. type: string
  6863. name:
  6864. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6865. type: string
  6866. cloudflare:
  6867. description: Use the Cloudflare API to manage DNS01 challenge records.
  6868. type: object
  6869. properties:
  6870. apiKeySecretRef:
  6871. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  6872. type: object
  6873. required:
  6874. - name
  6875. properties:
  6876. key:
  6877. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6878. type: string
  6879. name:
  6880. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6881. type: string
  6882. apiTokenSecretRef:
  6883. description: API token used to authenticate with Cloudflare.
  6884. type: object
  6885. required:
  6886. - name
  6887. properties:
  6888. key:
  6889. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6890. type: string
  6891. name:
  6892. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6893. type: string
  6894. email:
  6895. description: Email of the account, only required when using API key based authentication.
  6896. type: string
  6897. cnameStrategy:
  6898. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  6899. type: string
  6900. enum:
  6901. - None
  6902. - Follow
  6903. digitalocean:
  6904. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  6905. type: object
  6906. required:
  6907. - tokenSecretRef
  6908. properties:
  6909. tokenSecretRef:
  6910. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  6911. type: object
  6912. required:
  6913. - name
  6914. properties:
  6915. key:
  6916. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6917. type: string
  6918. name:
  6919. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6920. type: string
  6921. rfc2136:
  6922. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  6923. type: object
  6924. required:
  6925. - nameserver
  6926. properties:
  6927. nameserver:
  6928. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  6929. type: string
  6930. tsigAlgorithm:
  6931. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  6932. type: string
  6933. tsigKeyName:
  6934. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  6935. type: string
  6936. tsigSecretSecretRef:
  6937. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  6938. type: object
  6939. required:
  6940. - name
  6941. properties:
  6942. key:
  6943. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6944. type: string
  6945. name:
  6946. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6947. type: string
  6948. route53:
  6949. description: Use the AWS Route53 API to manage DNS01 challenge records.
  6950. type: object
  6951. required:
  6952. - region
  6953. properties:
  6954. accessKeyID:
  6955. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  6956. type: string
  6957. hostedZoneID:
  6958. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  6959. type: string
  6960. region:
  6961. description: Always set the region when using AccessKeyID and SecretAccessKey
  6962. type: string
  6963. role:
  6964. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  6965. type: string
  6966. secretAccessKeySecretRef:
  6967. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  6968. type: object
  6969. required:
  6970. - name
  6971. properties:
  6972. key:
  6973. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  6974. type: string
  6975. name:
  6976. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  6977. type: string
  6978. webhook:
  6979. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  6980. type: object
  6981. required:
  6982. - groupName
  6983. - solverName
  6984. properties:
  6985. config:
  6986. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  6987. x-kubernetes-preserve-unknown-fields: true
  6988. groupName:
  6989. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  6990. type: string
  6991. solverName:
  6992. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  6993. type: string
  6994. http01:
  6995. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  6996. type: object
  6997. properties:
  6998. gatewayHTTPRoute:
  6999. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  7000. type: object
  7001. properties:
  7002. labels:
  7003. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  7004. type: object
  7005. additionalProperties:
  7006. type: string
  7007. serviceType:
  7008. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  7009. type: string
  7010. ingress:
  7011. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  7012. type: object
  7013. properties:
  7014. class:
  7015. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  7016. type: string
  7017. ingressTemplate:
  7018. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  7019. type: object
  7020. properties:
  7021. metadata:
  7022. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  7023. type: object
  7024. properties:
  7025. annotations:
  7026. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  7027. type: object
  7028. additionalProperties:
  7029. type: string
  7030. labels:
  7031. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  7032. type: object
  7033. additionalProperties:
  7034. type: string
  7035. name:
  7036. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  7037. type: string
  7038. podTemplate:
  7039. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
  7040. type: object
  7041. properties:
  7042. metadata:
  7043. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  7044. type: object
  7045. properties:
  7046. annotations:
  7047. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  7048. type: object
  7049. additionalProperties:
  7050. type: string
  7051. labels:
  7052. description: Labels that should be added to the created ACME HTTP01 solver pods.
  7053. type: object
  7054. additionalProperties:
  7055. type: string
  7056. spec:
  7057. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  7058. type: object
  7059. properties:
  7060. affinity:
  7061. description: If specified, the pod's scheduling constraints
  7062. type: object
  7063. properties:
  7064. nodeAffinity:
  7065. description: Describes node affinity scheduling rules for the pod.
  7066. type: object
  7067. properties:
  7068. preferredDuringSchedulingIgnoredDuringExecution:
  7069. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  7070. type: array
  7071. items:
  7072. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  7073. type: object
  7074. required:
  7075. - preference
  7076. - weight
  7077. properties:
  7078. preference:
  7079. description: A node selector term, associated with the corresponding weight.
  7080. type: object
  7081. properties:
  7082. matchExpressions:
  7083. description: A list of node selector requirements by node's labels.
  7084. type: array
  7085. items:
  7086. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7087. type: object
  7088. required:
  7089. - key
  7090. - operator
  7091. properties:
  7092. key:
  7093. description: The label key that the selector applies to.
  7094. type: string
  7095. operator:
  7096. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7097. type: string
  7098. values:
  7099. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7100. type: array
  7101. items:
  7102. type: string
  7103. matchFields:
  7104. description: A list of node selector requirements by node's fields.
  7105. type: array
  7106. items:
  7107. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7108. type: object
  7109. required:
  7110. - key
  7111. - operator
  7112. properties:
  7113. key:
  7114. description: The label key that the selector applies to.
  7115. type: string
  7116. operator:
  7117. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7118. type: string
  7119. values:
  7120. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7121. type: array
  7122. items:
  7123. type: string
  7124. weight:
  7125. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  7126. type: integer
  7127. format: int32
  7128. requiredDuringSchedulingIgnoredDuringExecution:
  7129. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  7130. type: object
  7131. required:
  7132. - nodeSelectorTerms
  7133. properties:
  7134. nodeSelectorTerms:
  7135. description: Required. A list of node selector terms. The terms are ORed.
  7136. type: array
  7137. items:
  7138. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  7139. type: object
  7140. properties:
  7141. matchExpressions:
  7142. description: A list of node selector requirements by node's labels.
  7143. type: array
  7144. items:
  7145. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7146. type: object
  7147. required:
  7148. - key
  7149. - operator
  7150. properties:
  7151. key:
  7152. description: The label key that the selector applies to.
  7153. type: string
  7154. operator:
  7155. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7156. type: string
  7157. values:
  7158. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7159. type: array
  7160. items:
  7161. type: string
  7162. matchFields:
  7163. description: A list of node selector requirements by node's fields.
  7164. type: array
  7165. items:
  7166. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7167. type: object
  7168. required:
  7169. - key
  7170. - operator
  7171. properties:
  7172. key:
  7173. description: The label key that the selector applies to.
  7174. type: string
  7175. operator:
  7176. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7177. type: string
  7178. values:
  7179. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7180. type: array
  7181. items:
  7182. type: string
  7183. podAffinity:
  7184. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  7185. type: object
  7186. properties:
  7187. preferredDuringSchedulingIgnoredDuringExecution:
  7188. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7189. type: array
  7190. items:
  7191. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7192. type: object
  7193. required:
  7194. - podAffinityTerm
  7195. - weight
  7196. properties:
  7197. podAffinityTerm:
  7198. description: Required. A pod affinity term, associated with the corresponding weight.
  7199. type: object
  7200. required:
  7201. - topologyKey
  7202. properties:
  7203. labelSelector:
  7204. description: A label query over a set of resources, in this case pods.
  7205. type: object
  7206. properties:
  7207. matchExpressions:
  7208. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7209. type: array
  7210. items:
  7211. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7212. type: object
  7213. required:
  7214. - key
  7215. - operator
  7216. properties:
  7217. key:
  7218. description: key is the label key that the selector applies to.
  7219. type: string
  7220. operator:
  7221. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7222. type: string
  7223. values:
  7224. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7225. type: array
  7226. items:
  7227. type: string
  7228. matchLabels:
  7229. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7230. type: object
  7231. additionalProperties:
  7232. type: string
  7233. namespaceSelector:
  7234. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  7235. type: object
  7236. properties:
  7237. matchExpressions:
  7238. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7239. type: array
  7240. items:
  7241. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7242. type: object
  7243. required:
  7244. - key
  7245. - operator
  7246. properties:
  7247. key:
  7248. description: key is the label key that the selector applies to.
  7249. type: string
  7250. operator:
  7251. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7252. type: string
  7253. values:
  7254. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7255. type: array
  7256. items:
  7257. type: string
  7258. matchLabels:
  7259. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7260. type: object
  7261. additionalProperties:
  7262. type: string
  7263. namespaces:
  7264. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  7265. type: array
  7266. items:
  7267. type: string
  7268. topologyKey:
  7269. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7270. type: string
  7271. weight:
  7272. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7273. type: integer
  7274. format: int32
  7275. requiredDuringSchedulingIgnoredDuringExecution:
  7276. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7277. type: array
  7278. items:
  7279. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7280. type: object
  7281. required:
  7282. - topologyKey
  7283. properties:
  7284. labelSelector:
  7285. description: A label query over a set of resources, in this case pods.
  7286. type: object
  7287. properties:
  7288. matchExpressions:
  7289. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7290. type: array
  7291. items:
  7292. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7293. type: object
  7294. required:
  7295. - key
  7296. - operator
  7297. properties:
  7298. key:
  7299. description: key is the label key that the selector applies to.
  7300. type: string
  7301. operator:
  7302. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7303. type: string
  7304. values:
  7305. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7306. type: array
  7307. items:
  7308. type: string
  7309. matchLabels:
  7310. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7311. type: object
  7312. additionalProperties:
  7313. type: string
  7314. namespaceSelector:
  7315. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  7316. type: object
  7317. properties:
  7318. matchExpressions:
  7319. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7320. type: array
  7321. items:
  7322. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7323. type: object
  7324. required:
  7325. - key
  7326. - operator
  7327. properties:
  7328. key:
  7329. description: key is the label key that the selector applies to.
  7330. type: string
  7331. operator:
  7332. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7333. type: string
  7334. values:
  7335. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7336. type: array
  7337. items:
  7338. type: string
  7339. matchLabels:
  7340. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7341. type: object
  7342. additionalProperties:
  7343. type: string
  7344. namespaces:
  7345. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  7346. type: array
  7347. items:
  7348. type: string
  7349. topologyKey:
  7350. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7351. type: string
  7352. podAntiAffinity:
  7353. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  7354. type: object
  7355. properties:
  7356. preferredDuringSchedulingIgnoredDuringExecution:
  7357. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7358. type: array
  7359. items:
  7360. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7361. type: object
  7362. required:
  7363. - podAffinityTerm
  7364. - weight
  7365. properties:
  7366. podAffinityTerm:
  7367. description: Required. A pod affinity term, associated with the corresponding weight.
  7368. type: object
  7369. required:
  7370. - topologyKey
  7371. properties:
  7372. labelSelector:
  7373. description: A label query over a set of resources, in this case pods.
  7374. type: object
  7375. properties:
  7376. matchExpressions:
  7377. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7378. type: array
  7379. items:
  7380. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7381. type: object
  7382. required:
  7383. - key
  7384. - operator
  7385. properties:
  7386. key:
  7387. description: key is the label key that the selector applies to.
  7388. type: string
  7389. operator:
  7390. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7391. type: string
  7392. values:
  7393. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7394. type: array
  7395. items:
  7396. type: string
  7397. matchLabels:
  7398. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7399. type: object
  7400. additionalProperties:
  7401. type: string
  7402. namespaceSelector:
  7403. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  7404. type: object
  7405. properties:
  7406. matchExpressions:
  7407. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7408. type: array
  7409. items:
  7410. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7411. type: object
  7412. required:
  7413. - key
  7414. - operator
  7415. properties:
  7416. key:
  7417. description: key is the label key that the selector applies to.
  7418. type: string
  7419. operator:
  7420. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7421. type: string
  7422. values:
  7423. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7424. type: array
  7425. items:
  7426. type: string
  7427. matchLabels:
  7428. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7429. type: object
  7430. additionalProperties:
  7431. type: string
  7432. namespaces:
  7433. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  7434. type: array
  7435. items:
  7436. type: string
  7437. topologyKey:
  7438. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7439. type: string
  7440. weight:
  7441. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7442. type: integer
  7443. format: int32
  7444. requiredDuringSchedulingIgnoredDuringExecution:
  7445. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7446. type: array
  7447. items:
  7448. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7449. type: object
  7450. required:
  7451. - topologyKey
  7452. properties:
  7453. labelSelector:
  7454. description: A label query over a set of resources, in this case pods.
  7455. type: object
  7456. properties:
  7457. matchExpressions:
  7458. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7459. type: array
  7460. items:
  7461. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7462. type: object
  7463. required:
  7464. - key
  7465. - operator
  7466. properties:
  7467. key:
  7468. description: key is the label key that the selector applies to.
  7469. type: string
  7470. operator:
  7471. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7472. type: string
  7473. values:
  7474. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7475. type: array
  7476. items:
  7477. type: string
  7478. matchLabels:
  7479. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7480. type: object
  7481. additionalProperties:
  7482. type: string
  7483. namespaceSelector:
  7484. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  7485. type: object
  7486. properties:
  7487. matchExpressions:
  7488. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7489. type: array
  7490. items:
  7491. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7492. type: object
  7493. required:
  7494. - key
  7495. - operator
  7496. properties:
  7497. key:
  7498. description: key is the label key that the selector applies to.
  7499. type: string
  7500. operator:
  7501. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7502. type: string
  7503. values:
  7504. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7505. type: array
  7506. items:
  7507. type: string
  7508. matchLabels:
  7509. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7510. type: object
  7511. additionalProperties:
  7512. type: string
  7513. namespaces:
  7514. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  7515. type: array
  7516. items:
  7517. type: string
  7518. topologyKey:
  7519. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7520. type: string
  7521. nodeSelector:
  7522. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  7523. type: object
  7524. additionalProperties:
  7525. type: string
  7526. priorityClassName:
  7527. description: If specified, the pod's priorityClassName.
  7528. type: string
  7529. serviceAccountName:
  7530. description: If specified, the pod's service account
  7531. type: string
  7532. tolerations:
  7533. description: If specified, the pod's tolerations.
  7534. type: array
  7535. items:
  7536. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  7537. type: object
  7538. properties:
  7539. effect:
  7540. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  7541. type: string
  7542. key:
  7543. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  7544. type: string
  7545. operator:
  7546. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  7547. type: string
  7548. tolerationSeconds:
  7549. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  7550. type: integer
  7551. format: int64
  7552. value:
  7553. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  7554. type: string
  7555. serviceType:
  7556. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  7557. type: string
  7558. selector:
  7559. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  7560. type: object
  7561. properties:
  7562. dnsNames:
  7563. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  7564. type: array
  7565. items:
  7566. type: string
  7567. dnsZones:
  7568. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  7569. type: array
  7570. items:
  7571. type: string
  7572. matchLabels:
  7573. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  7574. type: object
  7575. additionalProperties:
  7576. type: string
  7577. token:
  7578. description: The ACME challenge token for this challenge. This is the raw value returned from the ACME server.
  7579. type: string
  7580. type:
  7581. description: The type of ACME challenge this resource represents. One of "HTTP-01" or "DNS-01".
  7582. type: string
  7583. enum:
  7584. - HTTP-01
  7585. - DNS-01
  7586. url:
  7587. description: The URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
  7588. type: string
  7589. wildcard:
  7590. description: wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
  7591. type: boolean
  7592. status:
  7593. type: object
  7594. properties:
  7595. presented:
  7596. description: presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
  7597. type: boolean
  7598. processing:
  7599. description: Used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
  7600. type: boolean
  7601. reason:
  7602. description: Contains human readable information on why the Challenge is in the current state.
  7603. type: string
  7604. state:
  7605. description: Contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
  7606. type: string
  7607. enum:
  7608. - valid
  7609. - ready
  7610. - pending
  7611. - processing
  7612. - invalid
  7613. - expired
  7614. - errored
  7615. served: true
  7616. storage: false
  7617. subresources:
  7618. status: {}
  7619. - additionalPrinterColumns:
  7620. - jsonPath: .status.state
  7621. name: State
  7622. type: string
  7623. - jsonPath: .spec.dnsName
  7624. name: Domain
  7625. type: string
  7626. - jsonPath: .status.reason
  7627. name: Reason
  7628. priority: 1
  7629. type: string
  7630. - description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  7631. jsonPath: .metadata.creationTimestamp
  7632. name: Age
  7633. type: date
  7634. name: v1
  7635. schema:
  7636. openAPIV3Schema:
  7637. description: Challenge is a type to represent a Challenge request with an ACME server
  7638. type: object
  7639. required:
  7640. - metadata
  7641. - spec
  7642. properties:
  7643. apiVersion:
  7644. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  7645. type: string
  7646. kind:
  7647. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7648. type: string
  7649. metadata:
  7650. type: object
  7651. spec:
  7652. type: object
  7653. required:
  7654. - authorizationURL
  7655. - dnsName
  7656. - issuerRef
  7657. - key
  7658. - solver
  7659. - token
  7660. - type
  7661. - url
  7662. properties:
  7663. authorizationURL:
  7664. description: The URL to the ACME Authorization resource that this challenge is a part of.
  7665. type: string
  7666. dnsName:
  7667. description: dnsName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
  7668. type: string
  7669. issuerRef:
  7670. description: References a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
  7671. type: object
  7672. required:
  7673. - name
  7674. properties:
  7675. group:
  7676. description: Group of the resource being referred to.
  7677. type: string
  7678. kind:
  7679. description: Kind of the resource being referred to.
  7680. type: string
  7681. name:
  7682. description: Name of the resource being referred to.
  7683. type: string
  7684. key:
  7685. description: 'The ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
  7686. type: string
  7687. solver:
  7688. description: Contains the domain solving configuration that should be used to solve this challenge resource.
  7689. type: object
  7690. properties:
  7691. dns01:
  7692. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  7693. type: object
  7694. properties:
  7695. acmeDNS:
  7696. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  7697. type: object
  7698. required:
  7699. - accountSecretRef
  7700. - host
  7701. properties:
  7702. accountSecretRef:
  7703. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7704. type: object
  7705. required:
  7706. - name
  7707. properties:
  7708. key:
  7709. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7710. type: string
  7711. name:
  7712. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7713. type: string
  7714. host:
  7715. type: string
  7716. akamai:
  7717. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  7718. type: object
  7719. required:
  7720. - accessTokenSecretRef
  7721. - clientSecretSecretRef
  7722. - clientTokenSecretRef
  7723. - serviceConsumerDomain
  7724. properties:
  7725. accessTokenSecretRef:
  7726. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7727. type: object
  7728. required:
  7729. - name
  7730. properties:
  7731. key:
  7732. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7733. type: string
  7734. name:
  7735. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7736. type: string
  7737. clientSecretSecretRef:
  7738. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7739. type: object
  7740. required:
  7741. - name
  7742. properties:
  7743. key:
  7744. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7745. type: string
  7746. name:
  7747. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7748. type: string
  7749. clientTokenSecretRef:
  7750. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7751. type: object
  7752. required:
  7753. - name
  7754. properties:
  7755. key:
  7756. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7757. type: string
  7758. name:
  7759. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7760. type: string
  7761. serviceConsumerDomain:
  7762. type: string
  7763. azureDNS:
  7764. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  7765. type: object
  7766. required:
  7767. - resourceGroupName
  7768. - subscriptionID
  7769. properties:
  7770. clientID:
  7771. description: if both this and ClientSecret are left unset MSI will be used
  7772. type: string
  7773. clientSecretSecretRef:
  7774. description: if both this and ClientID are left unset MSI will be used
  7775. type: object
  7776. required:
  7777. - name
  7778. properties:
  7779. key:
  7780. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7781. type: string
  7782. name:
  7783. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7784. type: string
  7785. environment:
  7786. type: string
  7787. enum:
  7788. - AzurePublicCloud
  7789. - AzureChinaCloud
  7790. - AzureGermanCloud
  7791. - AzureUSGovernmentCloud
  7792. hostedZoneName:
  7793. type: string
  7794. resourceGroupName:
  7795. type: string
  7796. subscriptionID:
  7797. type: string
  7798. tenantID:
  7799. description: when specifying ClientID and ClientSecret then this field is also needed
  7800. type: string
  7801. cloudDNS:
  7802. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  7803. type: object
  7804. required:
  7805. - project
  7806. properties:
  7807. hostedZoneName:
  7808. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  7809. type: string
  7810. project:
  7811. type: string
  7812. serviceAccountSecretRef:
  7813. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7814. type: object
  7815. required:
  7816. - name
  7817. properties:
  7818. key:
  7819. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7820. type: string
  7821. name:
  7822. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7823. type: string
  7824. cloudflare:
  7825. description: Use the Cloudflare API to manage DNS01 challenge records.
  7826. type: object
  7827. properties:
  7828. apiKeySecretRef:
  7829. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  7830. type: object
  7831. required:
  7832. - name
  7833. properties:
  7834. key:
  7835. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7836. type: string
  7837. name:
  7838. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7839. type: string
  7840. apiTokenSecretRef:
  7841. description: API token used to authenticate with Cloudflare.
  7842. type: object
  7843. required:
  7844. - name
  7845. properties:
  7846. key:
  7847. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7848. type: string
  7849. name:
  7850. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7851. type: string
  7852. email:
  7853. description: Email of the account, only required when using API key based authentication.
  7854. type: string
  7855. cnameStrategy:
  7856. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  7857. type: string
  7858. enum:
  7859. - None
  7860. - Follow
  7861. digitalocean:
  7862. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  7863. type: object
  7864. required:
  7865. - tokenSecretRef
  7866. properties:
  7867. tokenSecretRef:
  7868. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  7869. type: object
  7870. required:
  7871. - name
  7872. properties:
  7873. key:
  7874. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7875. type: string
  7876. name:
  7877. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7878. type: string
  7879. rfc2136:
  7880. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  7881. type: object
  7882. required:
  7883. - nameserver
  7884. properties:
  7885. nameserver:
  7886. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  7887. type: string
  7888. tsigAlgorithm:
  7889. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  7890. type: string
  7891. tsigKeyName:
  7892. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  7893. type: string
  7894. tsigSecretSecretRef:
  7895. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  7896. type: object
  7897. required:
  7898. - name
  7899. properties:
  7900. key:
  7901. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7902. type: string
  7903. name:
  7904. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7905. type: string
  7906. route53:
  7907. description: Use the AWS Route53 API to manage DNS01 challenge records.
  7908. type: object
  7909. required:
  7910. - region
  7911. properties:
  7912. accessKeyID:
  7913. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  7914. type: string
  7915. hostedZoneID:
  7916. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  7917. type: string
  7918. region:
  7919. description: Always set the region when using AccessKeyID and SecretAccessKey
  7920. type: string
  7921. role:
  7922. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  7923. type: string
  7924. secretAccessKeySecretRef:
  7925. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  7926. type: object
  7927. required:
  7928. - name
  7929. properties:
  7930. key:
  7931. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  7932. type: string
  7933. name:
  7934. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  7935. type: string
  7936. webhook:
  7937. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  7938. type: object
  7939. required:
  7940. - groupName
  7941. - solverName
  7942. properties:
  7943. config:
  7944. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  7945. x-kubernetes-preserve-unknown-fields: true
  7946. groupName:
  7947. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  7948. type: string
  7949. solverName:
  7950. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  7951. type: string
  7952. http01:
  7953. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  7954. type: object
  7955. properties:
  7956. gatewayHTTPRoute:
  7957. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  7958. type: object
  7959. properties:
  7960. labels:
  7961. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  7962. type: object
  7963. additionalProperties:
  7964. type: string
  7965. serviceType:
  7966. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  7967. type: string
  7968. ingress:
  7969. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  7970. type: object
  7971. properties:
  7972. class:
  7973. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  7974. type: string
  7975. ingressTemplate:
  7976. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  7977. type: object
  7978. properties:
  7979. metadata:
  7980. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  7981. type: object
  7982. properties:
  7983. annotations:
  7984. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  7985. type: object
  7986. additionalProperties:
  7987. type: string
  7988. labels:
  7989. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  7990. type: object
  7991. additionalProperties:
  7992. type: string
  7993. name:
  7994. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  7995. type: string
  7996. podTemplate:
  7997. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  7998. type: object
  7999. properties:
  8000. metadata:
  8001. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  8002. type: object
  8003. properties:
  8004. annotations:
  8005. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  8006. type: object
  8007. additionalProperties:
  8008. type: string
  8009. labels:
  8010. description: Labels that should be added to the created ACME HTTP01 solver pods.
  8011. type: object
  8012. additionalProperties:
  8013. type: string
  8014. spec:
  8015. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  8016. type: object
  8017. properties:
  8018. affinity:
  8019. description: If specified, the pod's scheduling constraints
  8020. type: object
  8021. properties:
  8022. nodeAffinity:
  8023. description: Describes node affinity scheduling rules for the pod.
  8024. type: object
  8025. properties:
  8026. preferredDuringSchedulingIgnoredDuringExecution:
  8027. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  8028. type: array
  8029. items:
  8030. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  8031. type: object
  8032. required:
  8033. - preference
  8034. - weight
  8035. properties:
  8036. preference:
  8037. description: A node selector term, associated with the corresponding weight.
  8038. type: object
  8039. properties:
  8040. matchExpressions:
  8041. description: A list of node selector requirements by node's labels.
  8042. type: array
  8043. items:
  8044. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8045. type: object
  8046. required:
  8047. - key
  8048. - operator
  8049. properties:
  8050. key:
  8051. description: The label key that the selector applies to.
  8052. type: string
  8053. operator:
  8054. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  8055. type: string
  8056. values:
  8057. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  8058. type: array
  8059. items:
  8060. type: string
  8061. matchFields:
  8062. description: A list of node selector requirements by node's fields.
  8063. type: array
  8064. items:
  8065. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8066. type: object
  8067. required:
  8068. - key
  8069. - operator
  8070. properties:
  8071. key:
  8072. description: The label key that the selector applies to.
  8073. type: string
  8074. operator:
  8075. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  8076. type: string
  8077. values:
  8078. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  8079. type: array
  8080. items:
  8081. type: string
  8082. weight:
  8083. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  8084. type: integer
  8085. format: int32
  8086. requiredDuringSchedulingIgnoredDuringExecution:
  8087. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  8088. type: object
  8089. required:
  8090. - nodeSelectorTerms
  8091. properties:
  8092. nodeSelectorTerms:
  8093. description: Required. A list of node selector terms. The terms are ORed.
  8094. type: array
  8095. items:
  8096. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  8097. type: object
  8098. properties:
  8099. matchExpressions:
  8100. description: A list of node selector requirements by node's labels.
  8101. type: array
  8102. items:
  8103. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8104. type: object
  8105. required:
  8106. - key
  8107. - operator
  8108. properties:
  8109. key:
  8110. description: The label key that the selector applies to.
  8111. type: string
  8112. operator:
  8113. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  8114. type: string
  8115. values:
  8116. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  8117. type: array
  8118. items:
  8119. type: string
  8120. matchFields:
  8121. description: A list of node selector requirements by node's fields.
  8122. type: array
  8123. items:
  8124. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8125. type: object
  8126. required:
  8127. - key
  8128. - operator
  8129. properties:
  8130. key:
  8131. description: The label key that the selector applies to.
  8132. type: string
  8133. operator:
  8134. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  8135. type: string
  8136. values:
  8137. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  8138. type: array
  8139. items:
  8140. type: string
  8141. podAffinity:
  8142. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  8143. type: object
  8144. properties:
  8145. preferredDuringSchedulingIgnoredDuringExecution:
  8146. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  8147. type: array
  8148. items:
  8149. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  8150. type: object
  8151. required:
  8152. - podAffinityTerm
  8153. - weight
  8154. properties:
  8155. podAffinityTerm:
  8156. description: Required. A pod affinity term, associated with the corresponding weight.
  8157. type: object
  8158. required:
  8159. - topologyKey
  8160. properties:
  8161. labelSelector:
  8162. description: A label query over a set of resources, in this case pods.
  8163. type: object
  8164. properties:
  8165. matchExpressions:
  8166. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8167. type: array
  8168. items:
  8169. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8170. type: object
  8171. required:
  8172. - key
  8173. - operator
  8174. properties:
  8175. key:
  8176. description: key is the label key that the selector applies to.
  8177. type: string
  8178. operator:
  8179. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8180. type: string
  8181. values:
  8182. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8183. type: array
  8184. items:
  8185. type: string
  8186. matchLabels:
  8187. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8188. type: object
  8189. additionalProperties:
  8190. type: string
  8191. namespaceSelector:
  8192. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  8193. type: object
  8194. properties:
  8195. matchExpressions:
  8196. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8197. type: array
  8198. items:
  8199. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8200. type: object
  8201. required:
  8202. - key
  8203. - operator
  8204. properties:
  8205. key:
  8206. description: key is the label key that the selector applies to.
  8207. type: string
  8208. operator:
  8209. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8210. type: string
  8211. values:
  8212. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8213. type: array
  8214. items:
  8215. type: string
  8216. matchLabels:
  8217. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8218. type: object
  8219. additionalProperties:
  8220. type: string
  8221. namespaces:
  8222. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  8223. type: array
  8224. items:
  8225. type: string
  8226. topologyKey:
  8227. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  8228. type: string
  8229. weight:
  8230. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  8231. type: integer
  8232. format: int32
  8233. requiredDuringSchedulingIgnoredDuringExecution:
  8234. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  8235. type: array
  8236. items:
  8237. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  8238. type: object
  8239. required:
  8240. - topologyKey
  8241. properties:
  8242. labelSelector:
  8243. description: A label query over a set of resources, in this case pods.
  8244. type: object
  8245. properties:
  8246. matchExpressions:
  8247. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8248. type: array
  8249. items:
  8250. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8251. type: object
  8252. required:
  8253. - key
  8254. - operator
  8255. properties:
  8256. key:
  8257. description: key is the label key that the selector applies to.
  8258. type: string
  8259. operator:
  8260. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8261. type: string
  8262. values:
  8263. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8264. type: array
  8265. items:
  8266. type: string
  8267. matchLabels:
  8268. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8269. type: object
  8270. additionalProperties:
  8271. type: string
  8272. namespaceSelector:
  8273. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  8274. type: object
  8275. properties:
  8276. matchExpressions:
  8277. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8278. type: array
  8279. items:
  8280. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8281. type: object
  8282. required:
  8283. - key
  8284. - operator
  8285. properties:
  8286. key:
  8287. description: key is the label key that the selector applies to.
  8288. type: string
  8289. operator:
  8290. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8291. type: string
  8292. values:
  8293. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8294. type: array
  8295. items:
  8296. type: string
  8297. matchLabels:
  8298. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8299. type: object
  8300. additionalProperties:
  8301. type: string
  8302. namespaces:
  8303. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  8304. type: array
  8305. items:
  8306. type: string
  8307. topologyKey:
  8308. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  8309. type: string
  8310. podAntiAffinity:
  8311. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  8312. type: object
  8313. properties:
  8314. preferredDuringSchedulingIgnoredDuringExecution:
  8315. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  8316. type: array
  8317. items:
  8318. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  8319. type: object
  8320. required:
  8321. - podAffinityTerm
  8322. - weight
  8323. properties:
  8324. podAffinityTerm:
  8325. description: Required. A pod affinity term, associated with the corresponding weight.
  8326. type: object
  8327. required:
  8328. - topologyKey
  8329. properties:
  8330. labelSelector:
  8331. description: A label query over a set of resources, in this case pods.
  8332. type: object
  8333. properties:
  8334. matchExpressions:
  8335. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8336. type: array
  8337. items:
  8338. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8339. type: object
  8340. required:
  8341. - key
  8342. - operator
  8343. properties:
  8344. key:
  8345. description: key is the label key that the selector applies to.
  8346. type: string
  8347. operator:
  8348. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8349. type: string
  8350. values:
  8351. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8352. type: array
  8353. items:
  8354. type: string
  8355. matchLabels:
  8356. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8357. type: object
  8358. additionalProperties:
  8359. type: string
  8360. namespaceSelector:
  8361. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  8362. type: object
  8363. properties:
  8364. matchExpressions:
  8365. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8366. type: array
  8367. items:
  8368. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8369. type: object
  8370. required:
  8371. - key
  8372. - operator
  8373. properties:
  8374. key:
  8375. description: key is the label key that the selector applies to.
  8376. type: string
  8377. operator:
  8378. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8379. type: string
  8380. values:
  8381. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8382. type: array
  8383. items:
  8384. type: string
  8385. matchLabels:
  8386. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8387. type: object
  8388. additionalProperties:
  8389. type: string
  8390. namespaces:
  8391. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  8392. type: array
  8393. items:
  8394. type: string
  8395. topologyKey:
  8396. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  8397. type: string
  8398. weight:
  8399. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  8400. type: integer
  8401. format: int32
  8402. requiredDuringSchedulingIgnoredDuringExecution:
  8403. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  8404. type: array
  8405. items:
  8406. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  8407. type: object
  8408. required:
  8409. - topologyKey
  8410. properties:
  8411. labelSelector:
  8412. description: A label query over a set of resources, in this case pods.
  8413. type: object
  8414. properties:
  8415. matchExpressions:
  8416. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8417. type: array
  8418. items:
  8419. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8420. type: object
  8421. required:
  8422. - key
  8423. - operator
  8424. properties:
  8425. key:
  8426. description: key is the label key that the selector applies to.
  8427. type: string
  8428. operator:
  8429. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8430. type: string
  8431. values:
  8432. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8433. type: array
  8434. items:
  8435. type: string
  8436. matchLabels:
  8437. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8438. type: object
  8439. additionalProperties:
  8440. type: string
  8441. namespaceSelector:
  8442. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  8443. type: object
  8444. properties:
  8445. matchExpressions:
  8446. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  8447. type: array
  8448. items:
  8449. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  8450. type: object
  8451. required:
  8452. - key
  8453. - operator
  8454. properties:
  8455. key:
  8456. description: key is the label key that the selector applies to.
  8457. type: string
  8458. operator:
  8459. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  8460. type: string
  8461. values:
  8462. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  8463. type: array
  8464. items:
  8465. type: string
  8466. matchLabels:
  8467. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  8468. type: object
  8469. additionalProperties:
  8470. type: string
  8471. namespaces:
  8472. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  8473. type: array
  8474. items:
  8475. type: string
  8476. topologyKey:
  8477. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  8478. type: string
  8479. nodeSelector:
  8480. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  8481. type: object
  8482. additionalProperties:
  8483. type: string
  8484. priorityClassName:
  8485. description: If specified, the pod's priorityClassName.
  8486. type: string
  8487. serviceAccountName:
  8488. description: If specified, the pod's service account
  8489. type: string
  8490. tolerations:
  8491. description: If specified, the pod's tolerations.
  8492. type: array
  8493. items:
  8494. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  8495. type: object
  8496. properties:
  8497. effect:
  8498. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  8499. type: string
  8500. key:
  8501. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  8502. type: string
  8503. operator:
  8504. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  8505. type: string
  8506. tolerationSeconds:
  8507. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  8508. type: integer
  8509. format: int64
  8510. value:
  8511. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  8512. type: string
  8513. serviceType:
  8514. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  8515. type: string
  8516. selector:
  8517. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  8518. type: object
  8519. properties:
  8520. dnsNames:
  8521. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  8522. type: array
  8523. items:
  8524. type: string
  8525. dnsZones:
  8526. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  8527. type: array
  8528. items:
  8529. type: string
  8530. matchLabels:
  8531. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  8532. type: object
  8533. additionalProperties:
  8534. type: string
  8535. token:
  8536. description: The ACME challenge token for this challenge. This is the raw value returned from the ACME server.
  8537. type: string
  8538. type:
  8539. description: The type of ACME challenge this resource represents. One of "HTTP-01" or "DNS-01".
  8540. type: string
  8541. enum:
  8542. - HTTP-01
  8543. - DNS-01
  8544. url:
  8545. description: The URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
  8546. type: string
  8547. wildcard:
  8548. description: wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
  8549. type: boolean
  8550. status:
  8551. type: object
  8552. properties:
  8553. presented:
  8554. description: presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
  8555. type: boolean
  8556. processing:
  8557. description: Used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
  8558. type: boolean
  8559. reason:
  8560. description: Contains human readable information on why the Challenge is in the current state.
  8561. type: string
  8562. state:
  8563. description: Contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
  8564. type: string
  8565. enum:
  8566. - valid
  8567. - ready
  8568. - pending
  8569. - processing
  8570. - invalid
  8571. - expired
  8572. - errored
  8573. served: true
  8574. storage: true
  8575. subresources:
  8576. status: {}
  8577. ---
  8578. # Source: gitlab/charts/certmanager/templates/crds.yaml
  8579. apiVersion: apiextensions.k8s.io/v1
  8580. kind: CustomResourceDefinition
  8581. metadata:
  8582. name: clusterissuers.cert-manager.io
  8583. annotations:
  8584. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  8585. labels:
  8586. app: 'certmanager'
  8587. app.kubernetes.io/name: 'certmanager'
  8588. app.kubernetes.io/instance: 'gitlab'
  8589. # Generated labels
  8590. app.kubernetes.io/version: "v1.5.4"
  8591. app.kubernetes.io/managed-by: Helm
  8592. helm.sh/chart: certmanager-v1.5.4
  8593. spec:
  8594. group: cert-manager.io
  8595. names:
  8596. kind: ClusterIssuer
  8597. listKind: ClusterIssuerList
  8598. plural: clusterissuers
  8599. singular: clusterissuer
  8600. categories:
  8601. - cert-manager
  8602. scope: Cluster
  8603. conversion:
  8604. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  8605. strategy: Webhook
  8606. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  8607. webhook:
  8608. # We don't actually support `v1beta1` but is listed here as it is a
  8609. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  8610. # API server reads the supported versions in order, so _should always_
  8611. # attempt a `v1` request which is understood by the cert-manager webhook.
  8612. # Any `v1beta1` request will return an error and fail closed for that
  8613. # resource (the whole object request is rejected).
  8614. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  8615. conversionReviewVersions: ["v1", "v1beta1"]
  8616. clientConfig:
  8617. #
  8618. service:
  8619. name: 'gitlab-certmanager-webhook'
  8620. namespace: "default"
  8621. path: /convert
  8622. #
  8623. versions:
  8624. - name: v1alpha2
  8625. subresources:
  8626. status: {}
  8627. additionalPrinterColumns:
  8628. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  8629. name: Ready
  8630. type: string
  8631. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  8632. name: Status
  8633. priority: 1
  8634. type: string
  8635. - jsonPath: .metadata.creationTimestamp
  8636. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  8637. name: Age
  8638. type: date
  8639. schema:
  8640. openAPIV3Schema:
  8641. description: A ClusterIssuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is similar to an Issuer, however it is cluster-scoped and therefore can be referenced by resources that exist in *any* namespace, not just the same namespace as the referent.
  8642. type: object
  8643. properties:
  8644. apiVersion:
  8645. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8646. type: string
  8647. kind:
  8648. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8649. type: string
  8650. metadata:
  8651. type: object
  8652. spec:
  8653. description: Desired state of the ClusterIssuer resource.
  8654. type: object
  8655. properties:
  8656. acme:
  8657. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  8658. type: object
  8659. required:
  8660. - privateKeySecretRef
  8661. - server
  8662. properties:
  8663. disableAccountKeyGeneration:
  8664. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  8665. type: boolean
  8666. email:
  8667. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  8668. type: string
  8669. enableDurationFeature:
  8670. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  8671. type: boolean
  8672. externalAccountBinding:
  8673. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  8674. type: object
  8675. required:
  8676. - keyID
  8677. - keySecretRef
  8678. properties:
  8679. keyAlgorithm:
  8680. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  8681. type: string
  8682. enum:
  8683. - HS256
  8684. - HS384
  8685. - HS512
  8686. keyID:
  8687. description: keyID is the ID of the CA key that the External Account is bound to.
  8688. type: string
  8689. keySecretRef:
  8690. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  8691. type: object
  8692. required:
  8693. - name
  8694. properties:
  8695. key:
  8696. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8697. type: string
  8698. name:
  8699. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8700. type: string
  8701. preferredChain:
  8702. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  8703. type: string
  8704. maxLength: 64
  8705. privateKeySecretRef:
  8706. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  8707. type: object
  8708. required:
  8709. - name
  8710. properties:
  8711. key:
  8712. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8713. type: string
  8714. name:
  8715. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8716. type: string
  8717. server:
  8718. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  8719. type: string
  8720. skipTLSVerify:
  8721. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  8722. type: boolean
  8723. solvers:
  8724. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  8725. type: array
  8726. items:
  8727. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  8728. type: object
  8729. properties:
  8730. dns01:
  8731. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  8732. type: object
  8733. properties:
  8734. acmedns:
  8735. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  8736. type: object
  8737. required:
  8738. - accountSecretRef
  8739. - host
  8740. properties:
  8741. accountSecretRef:
  8742. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8743. type: object
  8744. required:
  8745. - name
  8746. properties:
  8747. key:
  8748. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8749. type: string
  8750. name:
  8751. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8752. type: string
  8753. host:
  8754. type: string
  8755. akamai:
  8756. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  8757. type: object
  8758. required:
  8759. - accessTokenSecretRef
  8760. - clientSecretSecretRef
  8761. - clientTokenSecretRef
  8762. - serviceConsumerDomain
  8763. properties:
  8764. accessTokenSecretRef:
  8765. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8766. type: object
  8767. required:
  8768. - name
  8769. properties:
  8770. key:
  8771. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8772. type: string
  8773. name:
  8774. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8775. type: string
  8776. clientSecretSecretRef:
  8777. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8778. type: object
  8779. required:
  8780. - name
  8781. properties:
  8782. key:
  8783. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8784. type: string
  8785. name:
  8786. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8787. type: string
  8788. clientTokenSecretRef:
  8789. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8790. type: object
  8791. required:
  8792. - name
  8793. properties:
  8794. key:
  8795. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8796. type: string
  8797. name:
  8798. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8799. type: string
  8800. serviceConsumerDomain:
  8801. type: string
  8802. azuredns:
  8803. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  8804. type: object
  8805. required:
  8806. - resourceGroupName
  8807. - subscriptionID
  8808. properties:
  8809. clientID:
  8810. description: if both this and ClientSecret are left unset MSI will be used
  8811. type: string
  8812. clientSecretSecretRef:
  8813. description: if both this and ClientID are left unset MSI will be used
  8814. type: object
  8815. required:
  8816. - name
  8817. properties:
  8818. key:
  8819. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8820. type: string
  8821. name:
  8822. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8823. type: string
  8824. environment:
  8825. type: string
  8826. enum:
  8827. - AzurePublicCloud
  8828. - AzureChinaCloud
  8829. - AzureGermanCloud
  8830. - AzureUSGovernmentCloud
  8831. hostedZoneName:
  8832. type: string
  8833. resourceGroupName:
  8834. type: string
  8835. subscriptionID:
  8836. type: string
  8837. tenantID:
  8838. description: when specifying ClientID and ClientSecret then this field is also needed
  8839. type: string
  8840. clouddns:
  8841. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  8842. type: object
  8843. required:
  8844. - project
  8845. properties:
  8846. hostedZoneName:
  8847. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  8848. type: string
  8849. project:
  8850. type: string
  8851. serviceAccountSecretRef:
  8852. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8853. type: object
  8854. required:
  8855. - name
  8856. properties:
  8857. key:
  8858. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8859. type: string
  8860. name:
  8861. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8862. type: string
  8863. cloudflare:
  8864. description: Use the Cloudflare API to manage DNS01 challenge records.
  8865. type: object
  8866. properties:
  8867. apiKeySecretRef:
  8868. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  8869. type: object
  8870. required:
  8871. - name
  8872. properties:
  8873. key:
  8874. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8875. type: string
  8876. name:
  8877. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8878. type: string
  8879. apiTokenSecretRef:
  8880. description: API token used to authenticate with Cloudflare.
  8881. type: object
  8882. required:
  8883. - name
  8884. properties:
  8885. key:
  8886. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8887. type: string
  8888. name:
  8889. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8890. type: string
  8891. email:
  8892. description: Email of the account, only required when using API key based authentication.
  8893. type: string
  8894. cnameStrategy:
  8895. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  8896. type: string
  8897. enum:
  8898. - None
  8899. - Follow
  8900. digitalocean:
  8901. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  8902. type: object
  8903. required:
  8904. - tokenSecretRef
  8905. properties:
  8906. tokenSecretRef:
  8907. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  8908. type: object
  8909. required:
  8910. - name
  8911. properties:
  8912. key:
  8913. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8914. type: string
  8915. name:
  8916. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8917. type: string
  8918. rfc2136:
  8919. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  8920. type: object
  8921. required:
  8922. - nameserver
  8923. properties:
  8924. nameserver:
  8925. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  8926. type: string
  8927. tsigAlgorithm:
  8928. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  8929. type: string
  8930. tsigKeyName:
  8931. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  8932. type: string
  8933. tsigSecretSecretRef:
  8934. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  8935. type: object
  8936. required:
  8937. - name
  8938. properties:
  8939. key:
  8940. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8941. type: string
  8942. name:
  8943. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8944. type: string
  8945. route53:
  8946. description: Use the AWS Route53 API to manage DNS01 challenge records.
  8947. type: object
  8948. required:
  8949. - region
  8950. properties:
  8951. accessKeyID:
  8952. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  8953. type: string
  8954. hostedZoneID:
  8955. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  8956. type: string
  8957. region:
  8958. description: Always set the region when using AccessKeyID and SecretAccessKey
  8959. type: string
  8960. role:
  8961. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  8962. type: string
  8963. secretAccessKeySecretRef:
  8964. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  8965. type: object
  8966. required:
  8967. - name
  8968. properties:
  8969. key:
  8970. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  8971. type: string
  8972. name:
  8973. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  8974. type: string
  8975. webhook:
  8976. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  8977. type: object
  8978. required:
  8979. - groupName
  8980. - solverName
  8981. properties:
  8982. config:
  8983. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  8984. x-kubernetes-preserve-unknown-fields: true
  8985. groupName:
  8986. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  8987. type: string
  8988. solverName:
  8989. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  8990. type: string
  8991. http01:
  8992. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  8993. type: object
  8994. properties:
  8995. gatewayHTTPRoute:
  8996. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  8997. type: object
  8998. properties:
  8999. labels:
  9000. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  9001. type: object
  9002. additionalProperties:
  9003. type: string
  9004. serviceType:
  9005. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  9006. type: string
  9007. ingress:
  9008. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  9009. type: object
  9010. properties:
  9011. class:
  9012. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  9013. type: string
  9014. ingressTemplate:
  9015. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  9016. type: object
  9017. properties:
  9018. metadata:
  9019. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  9020. type: object
  9021. properties:
  9022. annotations:
  9023. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  9024. type: object
  9025. additionalProperties:
  9026. type: string
  9027. labels:
  9028. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  9029. type: object
  9030. additionalProperties:
  9031. type: string
  9032. name:
  9033. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  9034. type: string
  9035. podTemplate:
  9036. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  9037. type: object
  9038. properties:
  9039. metadata:
  9040. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  9041. type: object
  9042. properties:
  9043. annotations:
  9044. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  9045. type: object
  9046. additionalProperties:
  9047. type: string
  9048. labels:
  9049. description: Labels that should be added to the created ACME HTTP01 solver pods.
  9050. type: object
  9051. additionalProperties:
  9052. type: string
  9053. spec:
  9054. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  9055. type: object
  9056. properties:
  9057. affinity:
  9058. description: If specified, the pod's scheduling constraints
  9059. type: object
  9060. properties:
  9061. nodeAffinity:
  9062. description: Describes node affinity scheduling rules for the pod.
  9063. type: object
  9064. properties:
  9065. preferredDuringSchedulingIgnoredDuringExecution:
  9066. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  9067. type: array
  9068. items:
  9069. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  9070. type: object
  9071. required:
  9072. - preference
  9073. - weight
  9074. properties:
  9075. preference:
  9076. description: A node selector term, associated with the corresponding weight.
  9077. type: object
  9078. properties:
  9079. matchExpressions:
  9080. description: A list of node selector requirements by node's labels.
  9081. type: array
  9082. items:
  9083. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9084. type: object
  9085. required:
  9086. - key
  9087. - operator
  9088. properties:
  9089. key:
  9090. description: The label key that the selector applies to.
  9091. type: string
  9092. operator:
  9093. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9094. type: string
  9095. values:
  9096. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9097. type: array
  9098. items:
  9099. type: string
  9100. matchFields:
  9101. description: A list of node selector requirements by node's fields.
  9102. type: array
  9103. items:
  9104. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9105. type: object
  9106. required:
  9107. - key
  9108. - operator
  9109. properties:
  9110. key:
  9111. description: The label key that the selector applies to.
  9112. type: string
  9113. operator:
  9114. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9115. type: string
  9116. values:
  9117. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9118. type: array
  9119. items:
  9120. type: string
  9121. weight:
  9122. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  9123. type: integer
  9124. format: int32
  9125. requiredDuringSchedulingIgnoredDuringExecution:
  9126. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  9127. type: object
  9128. required:
  9129. - nodeSelectorTerms
  9130. properties:
  9131. nodeSelectorTerms:
  9132. description: Required. A list of node selector terms. The terms are ORed.
  9133. type: array
  9134. items:
  9135. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  9136. type: object
  9137. properties:
  9138. matchExpressions:
  9139. description: A list of node selector requirements by node's labels.
  9140. type: array
  9141. items:
  9142. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9143. type: object
  9144. required:
  9145. - key
  9146. - operator
  9147. properties:
  9148. key:
  9149. description: The label key that the selector applies to.
  9150. type: string
  9151. operator:
  9152. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9153. type: string
  9154. values:
  9155. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9156. type: array
  9157. items:
  9158. type: string
  9159. matchFields:
  9160. description: A list of node selector requirements by node's fields.
  9161. type: array
  9162. items:
  9163. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9164. type: object
  9165. required:
  9166. - key
  9167. - operator
  9168. properties:
  9169. key:
  9170. description: The label key that the selector applies to.
  9171. type: string
  9172. operator:
  9173. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9174. type: string
  9175. values:
  9176. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9177. type: array
  9178. items:
  9179. type: string
  9180. podAffinity:
  9181. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  9182. type: object
  9183. properties:
  9184. preferredDuringSchedulingIgnoredDuringExecution:
  9185. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9186. type: array
  9187. items:
  9188. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9189. type: object
  9190. required:
  9191. - podAffinityTerm
  9192. - weight
  9193. properties:
  9194. podAffinityTerm:
  9195. description: Required. A pod affinity term, associated with the corresponding weight.
  9196. type: object
  9197. required:
  9198. - topologyKey
  9199. properties:
  9200. labelSelector:
  9201. description: A label query over a set of resources, in this case pods.
  9202. type: object
  9203. properties:
  9204. matchExpressions:
  9205. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9206. type: array
  9207. items:
  9208. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9209. type: object
  9210. required:
  9211. - key
  9212. - operator
  9213. properties:
  9214. key:
  9215. description: key is the label key that the selector applies to.
  9216. type: string
  9217. operator:
  9218. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9219. type: string
  9220. values:
  9221. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9222. type: array
  9223. items:
  9224. type: string
  9225. matchLabels:
  9226. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9227. type: object
  9228. additionalProperties:
  9229. type: string
  9230. namespaceSelector:
  9231. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  9232. type: object
  9233. properties:
  9234. matchExpressions:
  9235. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9236. type: array
  9237. items:
  9238. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9239. type: object
  9240. required:
  9241. - key
  9242. - operator
  9243. properties:
  9244. key:
  9245. description: key is the label key that the selector applies to.
  9246. type: string
  9247. operator:
  9248. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9249. type: string
  9250. values:
  9251. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9252. type: array
  9253. items:
  9254. type: string
  9255. matchLabels:
  9256. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9257. type: object
  9258. additionalProperties:
  9259. type: string
  9260. namespaces:
  9261. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  9262. type: array
  9263. items:
  9264. type: string
  9265. topologyKey:
  9266. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9267. type: string
  9268. weight:
  9269. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9270. type: integer
  9271. format: int32
  9272. requiredDuringSchedulingIgnoredDuringExecution:
  9273. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9274. type: array
  9275. items:
  9276. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9277. type: object
  9278. required:
  9279. - topologyKey
  9280. properties:
  9281. labelSelector:
  9282. description: A label query over a set of resources, in this case pods.
  9283. type: object
  9284. properties:
  9285. matchExpressions:
  9286. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9287. type: array
  9288. items:
  9289. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9290. type: object
  9291. required:
  9292. - key
  9293. - operator
  9294. properties:
  9295. key:
  9296. description: key is the label key that the selector applies to.
  9297. type: string
  9298. operator:
  9299. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9300. type: string
  9301. values:
  9302. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9303. type: array
  9304. items:
  9305. type: string
  9306. matchLabels:
  9307. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9308. type: object
  9309. additionalProperties:
  9310. type: string
  9311. namespaceSelector:
  9312. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  9313. type: object
  9314. properties:
  9315. matchExpressions:
  9316. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9317. type: array
  9318. items:
  9319. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9320. type: object
  9321. required:
  9322. - key
  9323. - operator
  9324. properties:
  9325. key:
  9326. description: key is the label key that the selector applies to.
  9327. type: string
  9328. operator:
  9329. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9330. type: string
  9331. values:
  9332. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9333. type: array
  9334. items:
  9335. type: string
  9336. matchLabels:
  9337. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9338. type: object
  9339. additionalProperties:
  9340. type: string
  9341. namespaces:
  9342. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  9343. type: array
  9344. items:
  9345. type: string
  9346. topologyKey:
  9347. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9348. type: string
  9349. podAntiAffinity:
  9350. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  9351. type: object
  9352. properties:
  9353. preferredDuringSchedulingIgnoredDuringExecution:
  9354. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9355. type: array
  9356. items:
  9357. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9358. type: object
  9359. required:
  9360. - podAffinityTerm
  9361. - weight
  9362. properties:
  9363. podAffinityTerm:
  9364. description: Required. A pod affinity term, associated with the corresponding weight.
  9365. type: object
  9366. required:
  9367. - topologyKey
  9368. properties:
  9369. labelSelector:
  9370. description: A label query over a set of resources, in this case pods.
  9371. type: object
  9372. properties:
  9373. matchExpressions:
  9374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9375. type: array
  9376. items:
  9377. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9378. type: object
  9379. required:
  9380. - key
  9381. - operator
  9382. properties:
  9383. key:
  9384. description: key is the label key that the selector applies to.
  9385. type: string
  9386. operator:
  9387. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9388. type: string
  9389. values:
  9390. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9391. type: array
  9392. items:
  9393. type: string
  9394. matchLabels:
  9395. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9396. type: object
  9397. additionalProperties:
  9398. type: string
  9399. namespaceSelector:
  9400. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  9401. type: object
  9402. properties:
  9403. matchExpressions:
  9404. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9405. type: array
  9406. items:
  9407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9408. type: object
  9409. required:
  9410. - key
  9411. - operator
  9412. properties:
  9413. key:
  9414. description: key is the label key that the selector applies to.
  9415. type: string
  9416. operator:
  9417. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9418. type: string
  9419. values:
  9420. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9421. type: array
  9422. items:
  9423. type: string
  9424. matchLabels:
  9425. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9426. type: object
  9427. additionalProperties:
  9428. type: string
  9429. namespaces:
  9430. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  9431. type: array
  9432. items:
  9433. type: string
  9434. topologyKey:
  9435. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9436. type: string
  9437. weight:
  9438. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9439. type: integer
  9440. format: int32
  9441. requiredDuringSchedulingIgnoredDuringExecution:
  9442. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9443. type: array
  9444. items:
  9445. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9446. type: object
  9447. required:
  9448. - topologyKey
  9449. properties:
  9450. labelSelector:
  9451. description: A label query over a set of resources, in this case pods.
  9452. type: object
  9453. properties:
  9454. matchExpressions:
  9455. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9456. type: array
  9457. items:
  9458. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9459. type: object
  9460. required:
  9461. - key
  9462. - operator
  9463. properties:
  9464. key:
  9465. description: key is the label key that the selector applies to.
  9466. type: string
  9467. operator:
  9468. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9469. type: string
  9470. values:
  9471. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9472. type: array
  9473. items:
  9474. type: string
  9475. matchLabels:
  9476. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9477. type: object
  9478. additionalProperties:
  9479. type: string
  9480. namespaceSelector:
  9481. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  9482. type: object
  9483. properties:
  9484. matchExpressions:
  9485. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9486. type: array
  9487. items:
  9488. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9489. type: object
  9490. required:
  9491. - key
  9492. - operator
  9493. properties:
  9494. key:
  9495. description: key is the label key that the selector applies to.
  9496. type: string
  9497. operator:
  9498. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9499. type: string
  9500. values:
  9501. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9502. type: array
  9503. items:
  9504. type: string
  9505. matchLabels:
  9506. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9507. type: object
  9508. additionalProperties:
  9509. type: string
  9510. namespaces:
  9511. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  9512. type: array
  9513. items:
  9514. type: string
  9515. topologyKey:
  9516. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9517. type: string
  9518. nodeSelector:
  9519. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  9520. type: object
  9521. additionalProperties:
  9522. type: string
  9523. priorityClassName:
  9524. description: If specified, the pod's priorityClassName.
  9525. type: string
  9526. serviceAccountName:
  9527. description: If specified, the pod's service account
  9528. type: string
  9529. tolerations:
  9530. description: If specified, the pod's tolerations.
  9531. type: array
  9532. items:
  9533. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  9534. type: object
  9535. properties:
  9536. effect:
  9537. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  9538. type: string
  9539. key:
  9540. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  9541. type: string
  9542. operator:
  9543. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  9544. type: string
  9545. tolerationSeconds:
  9546. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  9547. type: integer
  9548. format: int64
  9549. value:
  9550. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  9551. type: string
  9552. serviceType:
  9553. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  9554. type: string
  9555. selector:
  9556. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  9557. type: object
  9558. properties:
  9559. dnsNames:
  9560. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  9561. type: array
  9562. items:
  9563. type: string
  9564. dnsZones:
  9565. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  9566. type: array
  9567. items:
  9568. type: string
  9569. matchLabels:
  9570. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  9571. type: object
  9572. additionalProperties:
  9573. type: string
  9574. ca:
  9575. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  9576. type: object
  9577. required:
  9578. - secretName
  9579. properties:
  9580. crlDistributionPoints:
  9581. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  9582. type: array
  9583. items:
  9584. type: string
  9585. ocspServers:
  9586. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  9587. type: array
  9588. items:
  9589. type: string
  9590. secretName:
  9591. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  9592. type: string
  9593. selfSigned:
  9594. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  9595. type: object
  9596. properties:
  9597. crlDistributionPoints:
  9598. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  9599. type: array
  9600. items:
  9601. type: string
  9602. vault:
  9603. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  9604. type: object
  9605. required:
  9606. - auth
  9607. - path
  9608. - server
  9609. properties:
  9610. auth:
  9611. description: Auth configures how cert-manager authenticates with the Vault server.
  9612. type: object
  9613. properties:
  9614. appRole:
  9615. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  9616. type: object
  9617. required:
  9618. - path
  9619. - roleId
  9620. - secretRef
  9621. properties:
  9622. path:
  9623. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  9624. type: string
  9625. roleId:
  9626. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  9627. type: string
  9628. secretRef:
  9629. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  9630. type: object
  9631. required:
  9632. - name
  9633. properties:
  9634. key:
  9635. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9636. type: string
  9637. name:
  9638. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9639. type: string
  9640. kubernetes:
  9641. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  9642. type: object
  9643. required:
  9644. - role
  9645. - secretRef
  9646. properties:
  9647. mountPath:
  9648. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  9649. type: string
  9650. role:
  9651. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  9652. type: string
  9653. secretRef:
  9654. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  9655. type: object
  9656. required:
  9657. - name
  9658. properties:
  9659. key:
  9660. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9661. type: string
  9662. name:
  9663. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9664. type: string
  9665. tokenSecretRef:
  9666. description: TokenSecretRef authenticates with Vault by presenting a token.
  9667. type: object
  9668. required:
  9669. - name
  9670. properties:
  9671. key:
  9672. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9673. type: string
  9674. name:
  9675. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9676. type: string
  9677. caBundle:
  9678. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  9679. type: string
  9680. format: byte
  9681. namespace:
  9682. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  9683. type: string
  9684. path:
  9685. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  9686. type: string
  9687. server:
  9688. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  9689. type: string
  9690. venafi:
  9691. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  9692. type: object
  9693. required:
  9694. - zone
  9695. properties:
  9696. cloud:
  9697. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  9698. type: object
  9699. required:
  9700. - apiTokenSecretRef
  9701. properties:
  9702. apiTokenSecretRef:
  9703. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  9704. type: object
  9705. required:
  9706. - name
  9707. properties:
  9708. key:
  9709. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9710. type: string
  9711. name:
  9712. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9713. type: string
  9714. url:
  9715. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  9716. type: string
  9717. tpp:
  9718. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  9719. type: object
  9720. required:
  9721. - credentialsRef
  9722. - url
  9723. properties:
  9724. caBundle:
  9725. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  9726. type: string
  9727. format: byte
  9728. credentialsRef:
  9729. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  9730. type: object
  9731. required:
  9732. - name
  9733. properties:
  9734. name:
  9735. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9736. type: string
  9737. url:
  9738. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  9739. type: string
  9740. zone:
  9741. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  9742. type: string
  9743. status:
  9744. description: Status of the ClusterIssuer. This is set and managed automatically.
  9745. type: object
  9746. properties:
  9747. acme:
  9748. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  9749. type: object
  9750. properties:
  9751. lastRegisteredEmail:
  9752. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  9753. type: string
  9754. uri:
  9755. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  9756. type: string
  9757. conditions:
  9758. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  9759. type: array
  9760. items:
  9761. description: IssuerCondition contains condition information for an Issuer.
  9762. type: object
  9763. required:
  9764. - status
  9765. - type
  9766. properties:
  9767. lastTransitionTime:
  9768. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  9769. type: string
  9770. format: date-time
  9771. message:
  9772. description: Message is a human readable description of the details of the last transition, complementing reason.
  9773. type: string
  9774. observedGeneration:
  9775. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  9776. type: integer
  9777. format: int64
  9778. reason:
  9779. description: Reason is a brief machine readable explanation for the condition's last transition.
  9780. type: string
  9781. status:
  9782. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  9783. type: string
  9784. enum:
  9785. - "True"
  9786. - "False"
  9787. - Unknown
  9788. type:
  9789. description: Type of the condition, known values are (`Ready`).
  9790. type: string
  9791. served: true
  9792. storage: false
  9793. - name: v1alpha3
  9794. subresources:
  9795. status: {}
  9796. additionalPrinterColumns:
  9797. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  9798. name: Ready
  9799. type: string
  9800. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  9801. name: Status
  9802. priority: 1
  9803. type: string
  9804. - jsonPath: .metadata.creationTimestamp
  9805. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  9806. name: Age
  9807. type: date
  9808. schema:
  9809. openAPIV3Schema:
  9810. description: A ClusterIssuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is similar to an Issuer, however it is cluster-scoped and therefore can be referenced by resources that exist in *any* namespace, not just the same namespace as the referent.
  9811. type: object
  9812. properties:
  9813. apiVersion:
  9814. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  9815. type: string
  9816. kind:
  9817. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  9818. type: string
  9819. metadata:
  9820. type: object
  9821. spec:
  9822. description: Desired state of the ClusterIssuer resource.
  9823. type: object
  9824. properties:
  9825. acme:
  9826. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  9827. type: object
  9828. required:
  9829. - privateKeySecretRef
  9830. - server
  9831. properties:
  9832. disableAccountKeyGeneration:
  9833. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  9834. type: boolean
  9835. email:
  9836. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  9837. type: string
  9838. enableDurationFeature:
  9839. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  9840. type: boolean
  9841. externalAccountBinding:
  9842. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  9843. type: object
  9844. required:
  9845. - keyID
  9846. - keySecretRef
  9847. properties:
  9848. keyAlgorithm:
  9849. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  9850. type: string
  9851. enum:
  9852. - HS256
  9853. - HS384
  9854. - HS512
  9855. keyID:
  9856. description: keyID is the ID of the CA key that the External Account is bound to.
  9857. type: string
  9858. keySecretRef:
  9859. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  9860. type: object
  9861. required:
  9862. - name
  9863. properties:
  9864. key:
  9865. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9866. type: string
  9867. name:
  9868. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9869. type: string
  9870. preferredChain:
  9871. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  9872. type: string
  9873. maxLength: 64
  9874. privateKeySecretRef:
  9875. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  9876. type: object
  9877. required:
  9878. - name
  9879. properties:
  9880. key:
  9881. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9882. type: string
  9883. name:
  9884. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9885. type: string
  9886. server:
  9887. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  9888. type: string
  9889. skipTLSVerify:
  9890. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  9891. type: boolean
  9892. solvers:
  9893. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  9894. type: array
  9895. items:
  9896. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  9897. type: object
  9898. properties:
  9899. dns01:
  9900. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  9901. type: object
  9902. properties:
  9903. acmedns:
  9904. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  9905. type: object
  9906. required:
  9907. - accountSecretRef
  9908. - host
  9909. properties:
  9910. accountSecretRef:
  9911. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  9912. type: object
  9913. required:
  9914. - name
  9915. properties:
  9916. key:
  9917. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9918. type: string
  9919. name:
  9920. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9921. type: string
  9922. host:
  9923. type: string
  9924. akamai:
  9925. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  9926. type: object
  9927. required:
  9928. - accessTokenSecretRef
  9929. - clientSecretSecretRef
  9930. - clientTokenSecretRef
  9931. - serviceConsumerDomain
  9932. properties:
  9933. accessTokenSecretRef:
  9934. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  9935. type: object
  9936. required:
  9937. - name
  9938. properties:
  9939. key:
  9940. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9941. type: string
  9942. name:
  9943. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9944. type: string
  9945. clientSecretSecretRef:
  9946. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  9947. type: object
  9948. required:
  9949. - name
  9950. properties:
  9951. key:
  9952. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9953. type: string
  9954. name:
  9955. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9956. type: string
  9957. clientTokenSecretRef:
  9958. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  9959. type: object
  9960. required:
  9961. - name
  9962. properties:
  9963. key:
  9964. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9965. type: string
  9966. name:
  9967. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9968. type: string
  9969. serviceConsumerDomain:
  9970. type: string
  9971. azuredns:
  9972. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  9973. type: object
  9974. required:
  9975. - resourceGroupName
  9976. - subscriptionID
  9977. properties:
  9978. clientID:
  9979. description: if both this and ClientSecret are left unset MSI will be used
  9980. type: string
  9981. clientSecretSecretRef:
  9982. description: if both this and ClientID are left unset MSI will be used
  9983. type: object
  9984. required:
  9985. - name
  9986. properties:
  9987. key:
  9988. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  9989. type: string
  9990. name:
  9991. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  9992. type: string
  9993. environment:
  9994. type: string
  9995. enum:
  9996. - AzurePublicCloud
  9997. - AzureChinaCloud
  9998. - AzureGermanCloud
  9999. - AzureUSGovernmentCloud
  10000. hostedZoneName:
  10001. type: string
  10002. resourceGroupName:
  10003. type: string
  10004. subscriptionID:
  10005. type: string
  10006. tenantID:
  10007. description: when specifying ClientID and ClientSecret then this field is also needed
  10008. type: string
  10009. clouddns:
  10010. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  10011. type: object
  10012. required:
  10013. - project
  10014. properties:
  10015. hostedZoneName:
  10016. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  10017. type: string
  10018. project:
  10019. type: string
  10020. serviceAccountSecretRef:
  10021. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  10022. type: object
  10023. required:
  10024. - name
  10025. properties:
  10026. key:
  10027. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10028. type: string
  10029. name:
  10030. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10031. type: string
  10032. cloudflare:
  10033. description: Use the Cloudflare API to manage DNS01 challenge records.
  10034. type: object
  10035. properties:
  10036. apiKeySecretRef:
  10037. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  10038. type: object
  10039. required:
  10040. - name
  10041. properties:
  10042. key:
  10043. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10044. type: string
  10045. name:
  10046. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10047. type: string
  10048. apiTokenSecretRef:
  10049. description: API token used to authenticate with Cloudflare.
  10050. type: object
  10051. required:
  10052. - name
  10053. properties:
  10054. key:
  10055. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10056. type: string
  10057. name:
  10058. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10059. type: string
  10060. email:
  10061. description: Email of the account, only required when using API key based authentication.
  10062. type: string
  10063. cnameStrategy:
  10064. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  10065. type: string
  10066. enum:
  10067. - None
  10068. - Follow
  10069. digitalocean:
  10070. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  10071. type: object
  10072. required:
  10073. - tokenSecretRef
  10074. properties:
  10075. tokenSecretRef:
  10076. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  10077. type: object
  10078. required:
  10079. - name
  10080. properties:
  10081. key:
  10082. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10083. type: string
  10084. name:
  10085. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10086. type: string
  10087. rfc2136:
  10088. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  10089. type: object
  10090. required:
  10091. - nameserver
  10092. properties:
  10093. nameserver:
  10094. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  10095. type: string
  10096. tsigAlgorithm:
  10097. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  10098. type: string
  10099. tsigKeyName:
  10100. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  10101. type: string
  10102. tsigSecretSecretRef:
  10103. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  10104. type: object
  10105. required:
  10106. - name
  10107. properties:
  10108. key:
  10109. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10110. type: string
  10111. name:
  10112. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10113. type: string
  10114. route53:
  10115. description: Use the AWS Route53 API to manage DNS01 challenge records.
  10116. type: object
  10117. required:
  10118. - region
  10119. properties:
  10120. accessKeyID:
  10121. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  10122. type: string
  10123. hostedZoneID:
  10124. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  10125. type: string
  10126. region:
  10127. description: Always set the region when using AccessKeyID and SecretAccessKey
  10128. type: string
  10129. role:
  10130. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  10131. type: string
  10132. secretAccessKeySecretRef:
  10133. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  10134. type: object
  10135. required:
  10136. - name
  10137. properties:
  10138. key:
  10139. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10140. type: string
  10141. name:
  10142. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10143. type: string
  10144. webhook:
  10145. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  10146. type: object
  10147. required:
  10148. - groupName
  10149. - solverName
  10150. properties:
  10151. config:
  10152. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  10153. x-kubernetes-preserve-unknown-fields: true
  10154. groupName:
  10155. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  10156. type: string
  10157. solverName:
  10158. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  10159. type: string
  10160. http01:
  10161. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  10162. type: object
  10163. properties:
  10164. gatewayHTTPRoute:
  10165. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  10166. type: object
  10167. properties:
  10168. labels:
  10169. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  10170. type: object
  10171. additionalProperties:
  10172. type: string
  10173. serviceType:
  10174. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  10175. type: string
  10176. ingress:
  10177. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  10178. type: object
  10179. properties:
  10180. class:
  10181. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  10182. type: string
  10183. ingressTemplate:
  10184. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  10185. type: object
  10186. properties:
  10187. metadata:
  10188. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  10189. type: object
  10190. properties:
  10191. annotations:
  10192. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  10193. type: object
  10194. additionalProperties:
  10195. type: string
  10196. labels:
  10197. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  10198. type: object
  10199. additionalProperties:
  10200. type: string
  10201. name:
  10202. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  10203. type: string
  10204. podTemplate:
  10205. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  10206. type: object
  10207. properties:
  10208. metadata:
  10209. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  10210. type: object
  10211. properties:
  10212. annotations:
  10213. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  10214. type: object
  10215. additionalProperties:
  10216. type: string
  10217. labels:
  10218. description: Labels that should be added to the created ACME HTTP01 solver pods.
  10219. type: object
  10220. additionalProperties:
  10221. type: string
  10222. spec:
  10223. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  10224. type: object
  10225. properties:
  10226. affinity:
  10227. description: If specified, the pod's scheduling constraints
  10228. type: object
  10229. properties:
  10230. nodeAffinity:
  10231. description: Describes node affinity scheduling rules for the pod.
  10232. type: object
  10233. properties:
  10234. preferredDuringSchedulingIgnoredDuringExecution:
  10235. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  10236. type: array
  10237. items:
  10238. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  10239. type: object
  10240. required:
  10241. - preference
  10242. - weight
  10243. properties:
  10244. preference:
  10245. description: A node selector term, associated with the corresponding weight.
  10246. type: object
  10247. properties:
  10248. matchExpressions:
  10249. description: A list of node selector requirements by node's labels.
  10250. type: array
  10251. items:
  10252. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10253. type: object
  10254. required:
  10255. - key
  10256. - operator
  10257. properties:
  10258. key:
  10259. description: The label key that the selector applies to.
  10260. type: string
  10261. operator:
  10262. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10263. type: string
  10264. values:
  10265. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10266. type: array
  10267. items:
  10268. type: string
  10269. matchFields:
  10270. description: A list of node selector requirements by node's fields.
  10271. type: array
  10272. items:
  10273. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10274. type: object
  10275. required:
  10276. - key
  10277. - operator
  10278. properties:
  10279. key:
  10280. description: The label key that the selector applies to.
  10281. type: string
  10282. operator:
  10283. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10284. type: string
  10285. values:
  10286. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10287. type: array
  10288. items:
  10289. type: string
  10290. weight:
  10291. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  10292. type: integer
  10293. format: int32
  10294. requiredDuringSchedulingIgnoredDuringExecution:
  10295. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  10296. type: object
  10297. required:
  10298. - nodeSelectorTerms
  10299. properties:
  10300. nodeSelectorTerms:
  10301. description: Required. A list of node selector terms. The terms are ORed.
  10302. type: array
  10303. items:
  10304. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  10305. type: object
  10306. properties:
  10307. matchExpressions:
  10308. description: A list of node selector requirements by node's labels.
  10309. type: array
  10310. items:
  10311. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10312. type: object
  10313. required:
  10314. - key
  10315. - operator
  10316. properties:
  10317. key:
  10318. description: The label key that the selector applies to.
  10319. type: string
  10320. operator:
  10321. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10322. type: string
  10323. values:
  10324. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10325. type: array
  10326. items:
  10327. type: string
  10328. matchFields:
  10329. description: A list of node selector requirements by node's fields.
  10330. type: array
  10331. items:
  10332. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10333. type: object
  10334. required:
  10335. - key
  10336. - operator
  10337. properties:
  10338. key:
  10339. description: The label key that the selector applies to.
  10340. type: string
  10341. operator:
  10342. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10343. type: string
  10344. values:
  10345. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10346. type: array
  10347. items:
  10348. type: string
  10349. podAffinity:
  10350. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  10351. type: object
  10352. properties:
  10353. preferredDuringSchedulingIgnoredDuringExecution:
  10354. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10355. type: array
  10356. items:
  10357. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10358. type: object
  10359. required:
  10360. - podAffinityTerm
  10361. - weight
  10362. properties:
  10363. podAffinityTerm:
  10364. description: Required. A pod affinity term, associated with the corresponding weight.
  10365. type: object
  10366. required:
  10367. - topologyKey
  10368. properties:
  10369. labelSelector:
  10370. description: A label query over a set of resources, in this case pods.
  10371. type: object
  10372. properties:
  10373. matchExpressions:
  10374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10375. type: array
  10376. items:
  10377. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10378. type: object
  10379. required:
  10380. - key
  10381. - operator
  10382. properties:
  10383. key:
  10384. description: key is the label key that the selector applies to.
  10385. type: string
  10386. operator:
  10387. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10388. type: string
  10389. values:
  10390. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10391. type: array
  10392. items:
  10393. type: string
  10394. matchLabels:
  10395. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10396. type: object
  10397. additionalProperties:
  10398. type: string
  10399. namespaceSelector:
  10400. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  10401. type: object
  10402. properties:
  10403. matchExpressions:
  10404. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10405. type: array
  10406. items:
  10407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10408. type: object
  10409. required:
  10410. - key
  10411. - operator
  10412. properties:
  10413. key:
  10414. description: key is the label key that the selector applies to.
  10415. type: string
  10416. operator:
  10417. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10418. type: string
  10419. values:
  10420. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10421. type: array
  10422. items:
  10423. type: string
  10424. matchLabels:
  10425. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10426. type: object
  10427. additionalProperties:
  10428. type: string
  10429. namespaces:
  10430. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  10431. type: array
  10432. items:
  10433. type: string
  10434. topologyKey:
  10435. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10436. type: string
  10437. weight:
  10438. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10439. type: integer
  10440. format: int32
  10441. requiredDuringSchedulingIgnoredDuringExecution:
  10442. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10443. type: array
  10444. items:
  10445. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10446. type: object
  10447. required:
  10448. - topologyKey
  10449. properties:
  10450. labelSelector:
  10451. description: A label query over a set of resources, in this case pods.
  10452. type: object
  10453. properties:
  10454. matchExpressions:
  10455. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10456. type: array
  10457. items:
  10458. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10459. type: object
  10460. required:
  10461. - key
  10462. - operator
  10463. properties:
  10464. key:
  10465. description: key is the label key that the selector applies to.
  10466. type: string
  10467. operator:
  10468. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10469. type: string
  10470. values:
  10471. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10472. type: array
  10473. items:
  10474. type: string
  10475. matchLabels:
  10476. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10477. type: object
  10478. additionalProperties:
  10479. type: string
  10480. namespaceSelector:
  10481. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  10482. type: object
  10483. properties:
  10484. matchExpressions:
  10485. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10486. type: array
  10487. items:
  10488. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10489. type: object
  10490. required:
  10491. - key
  10492. - operator
  10493. properties:
  10494. key:
  10495. description: key is the label key that the selector applies to.
  10496. type: string
  10497. operator:
  10498. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10499. type: string
  10500. values:
  10501. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10502. type: array
  10503. items:
  10504. type: string
  10505. matchLabels:
  10506. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10507. type: object
  10508. additionalProperties:
  10509. type: string
  10510. namespaces:
  10511. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  10512. type: array
  10513. items:
  10514. type: string
  10515. topologyKey:
  10516. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10517. type: string
  10518. podAntiAffinity:
  10519. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  10520. type: object
  10521. properties:
  10522. preferredDuringSchedulingIgnoredDuringExecution:
  10523. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10524. type: array
  10525. items:
  10526. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10527. type: object
  10528. required:
  10529. - podAffinityTerm
  10530. - weight
  10531. properties:
  10532. podAffinityTerm:
  10533. description: Required. A pod affinity term, associated with the corresponding weight.
  10534. type: object
  10535. required:
  10536. - topologyKey
  10537. properties:
  10538. labelSelector:
  10539. description: A label query over a set of resources, in this case pods.
  10540. type: object
  10541. properties:
  10542. matchExpressions:
  10543. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10544. type: array
  10545. items:
  10546. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10547. type: object
  10548. required:
  10549. - key
  10550. - operator
  10551. properties:
  10552. key:
  10553. description: key is the label key that the selector applies to.
  10554. type: string
  10555. operator:
  10556. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10557. type: string
  10558. values:
  10559. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10560. type: array
  10561. items:
  10562. type: string
  10563. matchLabels:
  10564. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10565. type: object
  10566. additionalProperties:
  10567. type: string
  10568. namespaceSelector:
  10569. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  10570. type: object
  10571. properties:
  10572. matchExpressions:
  10573. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10574. type: array
  10575. items:
  10576. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10577. type: object
  10578. required:
  10579. - key
  10580. - operator
  10581. properties:
  10582. key:
  10583. description: key is the label key that the selector applies to.
  10584. type: string
  10585. operator:
  10586. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10587. type: string
  10588. values:
  10589. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10590. type: array
  10591. items:
  10592. type: string
  10593. matchLabels:
  10594. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10595. type: object
  10596. additionalProperties:
  10597. type: string
  10598. namespaces:
  10599. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  10600. type: array
  10601. items:
  10602. type: string
  10603. topologyKey:
  10604. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10605. type: string
  10606. weight:
  10607. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10608. type: integer
  10609. format: int32
  10610. requiredDuringSchedulingIgnoredDuringExecution:
  10611. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10612. type: array
  10613. items:
  10614. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10615. type: object
  10616. required:
  10617. - topologyKey
  10618. properties:
  10619. labelSelector:
  10620. description: A label query over a set of resources, in this case pods.
  10621. type: object
  10622. properties:
  10623. matchExpressions:
  10624. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10625. type: array
  10626. items:
  10627. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10628. type: object
  10629. required:
  10630. - key
  10631. - operator
  10632. properties:
  10633. key:
  10634. description: key is the label key that the selector applies to.
  10635. type: string
  10636. operator:
  10637. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10638. type: string
  10639. values:
  10640. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10641. type: array
  10642. items:
  10643. type: string
  10644. matchLabels:
  10645. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10646. type: object
  10647. additionalProperties:
  10648. type: string
  10649. namespaceSelector:
  10650. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  10651. type: object
  10652. properties:
  10653. matchExpressions:
  10654. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10655. type: array
  10656. items:
  10657. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10658. type: object
  10659. required:
  10660. - key
  10661. - operator
  10662. properties:
  10663. key:
  10664. description: key is the label key that the selector applies to.
  10665. type: string
  10666. operator:
  10667. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10668. type: string
  10669. values:
  10670. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10671. type: array
  10672. items:
  10673. type: string
  10674. matchLabels:
  10675. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10676. type: object
  10677. additionalProperties:
  10678. type: string
  10679. namespaces:
  10680. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  10681. type: array
  10682. items:
  10683. type: string
  10684. topologyKey:
  10685. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10686. type: string
  10687. nodeSelector:
  10688. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  10689. type: object
  10690. additionalProperties:
  10691. type: string
  10692. priorityClassName:
  10693. description: If specified, the pod's priorityClassName.
  10694. type: string
  10695. serviceAccountName:
  10696. description: If specified, the pod's service account
  10697. type: string
  10698. tolerations:
  10699. description: If specified, the pod's tolerations.
  10700. type: array
  10701. items:
  10702. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  10703. type: object
  10704. properties:
  10705. effect:
  10706. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  10707. type: string
  10708. key:
  10709. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  10710. type: string
  10711. operator:
  10712. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  10713. type: string
  10714. tolerationSeconds:
  10715. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  10716. type: integer
  10717. format: int64
  10718. value:
  10719. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  10720. type: string
  10721. serviceType:
  10722. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  10723. type: string
  10724. selector:
  10725. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  10726. type: object
  10727. properties:
  10728. dnsNames:
  10729. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  10730. type: array
  10731. items:
  10732. type: string
  10733. dnsZones:
  10734. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  10735. type: array
  10736. items:
  10737. type: string
  10738. matchLabels:
  10739. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  10740. type: object
  10741. additionalProperties:
  10742. type: string
  10743. ca:
  10744. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  10745. type: object
  10746. required:
  10747. - secretName
  10748. properties:
  10749. crlDistributionPoints:
  10750. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  10751. type: array
  10752. items:
  10753. type: string
  10754. ocspServers:
  10755. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  10756. type: array
  10757. items:
  10758. type: string
  10759. secretName:
  10760. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  10761. type: string
  10762. selfSigned:
  10763. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  10764. type: object
  10765. properties:
  10766. crlDistributionPoints:
  10767. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  10768. type: array
  10769. items:
  10770. type: string
  10771. vault:
  10772. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  10773. type: object
  10774. required:
  10775. - auth
  10776. - path
  10777. - server
  10778. properties:
  10779. auth:
  10780. description: Auth configures how cert-manager authenticates with the Vault server.
  10781. type: object
  10782. properties:
  10783. appRole:
  10784. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  10785. type: object
  10786. required:
  10787. - path
  10788. - roleId
  10789. - secretRef
  10790. properties:
  10791. path:
  10792. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  10793. type: string
  10794. roleId:
  10795. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  10796. type: string
  10797. secretRef:
  10798. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  10799. type: object
  10800. required:
  10801. - name
  10802. properties:
  10803. key:
  10804. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10805. type: string
  10806. name:
  10807. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10808. type: string
  10809. kubernetes:
  10810. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  10811. type: object
  10812. required:
  10813. - role
  10814. - secretRef
  10815. properties:
  10816. mountPath:
  10817. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  10818. type: string
  10819. role:
  10820. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  10821. type: string
  10822. secretRef:
  10823. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  10824. type: object
  10825. required:
  10826. - name
  10827. properties:
  10828. key:
  10829. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10830. type: string
  10831. name:
  10832. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10833. type: string
  10834. tokenSecretRef:
  10835. description: TokenSecretRef authenticates with Vault by presenting a token.
  10836. type: object
  10837. required:
  10838. - name
  10839. properties:
  10840. key:
  10841. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10842. type: string
  10843. name:
  10844. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10845. type: string
  10846. caBundle:
  10847. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  10848. type: string
  10849. format: byte
  10850. namespace:
  10851. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  10852. type: string
  10853. path:
  10854. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  10855. type: string
  10856. server:
  10857. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  10858. type: string
  10859. venafi:
  10860. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  10861. type: object
  10862. required:
  10863. - zone
  10864. properties:
  10865. cloud:
  10866. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  10867. type: object
  10868. required:
  10869. - apiTokenSecretRef
  10870. properties:
  10871. apiTokenSecretRef:
  10872. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  10873. type: object
  10874. required:
  10875. - name
  10876. properties:
  10877. key:
  10878. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  10879. type: string
  10880. name:
  10881. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10882. type: string
  10883. url:
  10884. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  10885. type: string
  10886. tpp:
  10887. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  10888. type: object
  10889. required:
  10890. - credentialsRef
  10891. - url
  10892. properties:
  10893. caBundle:
  10894. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  10895. type: string
  10896. format: byte
  10897. credentialsRef:
  10898. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  10899. type: object
  10900. required:
  10901. - name
  10902. properties:
  10903. name:
  10904. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  10905. type: string
  10906. url:
  10907. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  10908. type: string
  10909. zone:
  10910. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  10911. type: string
  10912. status:
  10913. description: Status of the ClusterIssuer. This is set and managed automatically.
  10914. type: object
  10915. properties:
  10916. acme:
  10917. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  10918. type: object
  10919. properties:
  10920. lastRegisteredEmail:
  10921. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  10922. type: string
  10923. uri:
  10924. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  10925. type: string
  10926. conditions:
  10927. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  10928. type: array
  10929. items:
  10930. description: IssuerCondition contains condition information for an Issuer.
  10931. type: object
  10932. required:
  10933. - status
  10934. - type
  10935. properties:
  10936. lastTransitionTime:
  10937. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  10938. type: string
  10939. format: date-time
  10940. message:
  10941. description: Message is a human readable description of the details of the last transition, complementing reason.
  10942. type: string
  10943. observedGeneration:
  10944. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  10945. type: integer
  10946. format: int64
  10947. reason:
  10948. description: Reason is a brief machine readable explanation for the condition's last transition.
  10949. type: string
  10950. status:
  10951. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  10952. type: string
  10953. enum:
  10954. - "True"
  10955. - "False"
  10956. - Unknown
  10957. type:
  10958. description: Type of the condition, known values are (`Ready`).
  10959. type: string
  10960. served: true
  10961. storage: false
  10962. - name: v1beta1
  10963. subresources:
  10964. status: {}
  10965. additionalPrinterColumns:
  10966. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  10967. name: Ready
  10968. type: string
  10969. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  10970. name: Status
  10971. priority: 1
  10972. type: string
  10973. - jsonPath: .metadata.creationTimestamp
  10974. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  10975. name: Age
  10976. type: date
  10977. schema:
  10978. openAPIV3Schema:
  10979. description: A ClusterIssuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is similar to an Issuer, however it is cluster-scoped and therefore can be referenced by resources that exist in *any* namespace, not just the same namespace as the referent.
  10980. type: object
  10981. required:
  10982. - spec
  10983. properties:
  10984. apiVersion:
  10985. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  10986. type: string
  10987. kind:
  10988. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  10989. type: string
  10990. metadata:
  10991. type: object
  10992. spec:
  10993. description: Desired state of the ClusterIssuer resource.
  10994. type: object
  10995. properties:
  10996. acme:
  10997. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  10998. type: object
  10999. required:
  11000. - privateKeySecretRef
  11001. - server
  11002. properties:
  11003. disableAccountKeyGeneration:
  11004. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  11005. type: boolean
  11006. email:
  11007. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  11008. type: string
  11009. enableDurationFeature:
  11010. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  11011. type: boolean
  11012. externalAccountBinding:
  11013. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  11014. type: object
  11015. required:
  11016. - keyID
  11017. - keySecretRef
  11018. properties:
  11019. keyAlgorithm:
  11020. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  11021. type: string
  11022. enum:
  11023. - HS256
  11024. - HS384
  11025. - HS512
  11026. keyID:
  11027. description: keyID is the ID of the CA key that the External Account is bound to.
  11028. type: string
  11029. keySecretRef:
  11030. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  11031. type: object
  11032. required:
  11033. - name
  11034. properties:
  11035. key:
  11036. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11037. type: string
  11038. name:
  11039. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11040. type: string
  11041. preferredChain:
  11042. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  11043. type: string
  11044. maxLength: 64
  11045. privateKeySecretRef:
  11046. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  11047. type: object
  11048. required:
  11049. - name
  11050. properties:
  11051. key:
  11052. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11053. type: string
  11054. name:
  11055. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11056. type: string
  11057. server:
  11058. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  11059. type: string
  11060. skipTLSVerify:
  11061. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  11062. type: boolean
  11063. solvers:
  11064. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  11065. type: array
  11066. items:
  11067. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  11068. type: object
  11069. properties:
  11070. dns01:
  11071. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  11072. type: object
  11073. properties:
  11074. acmeDNS:
  11075. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  11076. type: object
  11077. required:
  11078. - accountSecretRef
  11079. - host
  11080. properties:
  11081. accountSecretRef:
  11082. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11083. type: object
  11084. required:
  11085. - name
  11086. properties:
  11087. key:
  11088. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11089. type: string
  11090. name:
  11091. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11092. type: string
  11093. host:
  11094. type: string
  11095. akamai:
  11096. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  11097. type: object
  11098. required:
  11099. - accessTokenSecretRef
  11100. - clientSecretSecretRef
  11101. - clientTokenSecretRef
  11102. - serviceConsumerDomain
  11103. properties:
  11104. accessTokenSecretRef:
  11105. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11106. type: object
  11107. required:
  11108. - name
  11109. properties:
  11110. key:
  11111. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11112. type: string
  11113. name:
  11114. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11115. type: string
  11116. clientSecretSecretRef:
  11117. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11118. type: object
  11119. required:
  11120. - name
  11121. properties:
  11122. key:
  11123. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11124. type: string
  11125. name:
  11126. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11127. type: string
  11128. clientTokenSecretRef:
  11129. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11130. type: object
  11131. required:
  11132. - name
  11133. properties:
  11134. key:
  11135. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11136. type: string
  11137. name:
  11138. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11139. type: string
  11140. serviceConsumerDomain:
  11141. type: string
  11142. azureDNS:
  11143. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  11144. type: object
  11145. required:
  11146. - resourceGroupName
  11147. - subscriptionID
  11148. properties:
  11149. clientID:
  11150. description: if both this and ClientSecret are left unset MSI will be used
  11151. type: string
  11152. clientSecretSecretRef:
  11153. description: if both this and ClientID are left unset MSI will be used
  11154. type: object
  11155. required:
  11156. - name
  11157. properties:
  11158. key:
  11159. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11160. type: string
  11161. name:
  11162. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11163. type: string
  11164. environment:
  11165. type: string
  11166. enum:
  11167. - AzurePublicCloud
  11168. - AzureChinaCloud
  11169. - AzureGermanCloud
  11170. - AzureUSGovernmentCloud
  11171. hostedZoneName:
  11172. type: string
  11173. resourceGroupName:
  11174. type: string
  11175. subscriptionID:
  11176. type: string
  11177. tenantID:
  11178. description: when specifying ClientID and ClientSecret then this field is also needed
  11179. type: string
  11180. cloudDNS:
  11181. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  11182. type: object
  11183. required:
  11184. - project
  11185. properties:
  11186. hostedZoneName:
  11187. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  11188. type: string
  11189. project:
  11190. type: string
  11191. serviceAccountSecretRef:
  11192. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11193. type: object
  11194. required:
  11195. - name
  11196. properties:
  11197. key:
  11198. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11199. type: string
  11200. name:
  11201. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11202. type: string
  11203. cloudflare:
  11204. description: Use the Cloudflare API to manage DNS01 challenge records.
  11205. type: object
  11206. properties:
  11207. apiKeySecretRef:
  11208. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  11209. type: object
  11210. required:
  11211. - name
  11212. properties:
  11213. key:
  11214. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11215. type: string
  11216. name:
  11217. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11218. type: string
  11219. apiTokenSecretRef:
  11220. description: API token used to authenticate with Cloudflare.
  11221. type: object
  11222. required:
  11223. - name
  11224. properties:
  11225. key:
  11226. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11227. type: string
  11228. name:
  11229. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11230. type: string
  11231. email:
  11232. description: Email of the account, only required when using API key based authentication.
  11233. type: string
  11234. cnameStrategy:
  11235. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  11236. type: string
  11237. enum:
  11238. - None
  11239. - Follow
  11240. digitalocean:
  11241. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  11242. type: object
  11243. required:
  11244. - tokenSecretRef
  11245. properties:
  11246. tokenSecretRef:
  11247. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  11248. type: object
  11249. required:
  11250. - name
  11251. properties:
  11252. key:
  11253. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11254. type: string
  11255. name:
  11256. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11257. type: string
  11258. rfc2136:
  11259. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  11260. type: object
  11261. required:
  11262. - nameserver
  11263. properties:
  11264. nameserver:
  11265. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  11266. type: string
  11267. tsigAlgorithm:
  11268. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  11269. type: string
  11270. tsigKeyName:
  11271. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  11272. type: string
  11273. tsigSecretSecretRef:
  11274. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  11275. type: object
  11276. required:
  11277. - name
  11278. properties:
  11279. key:
  11280. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11281. type: string
  11282. name:
  11283. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11284. type: string
  11285. route53:
  11286. description: Use the AWS Route53 API to manage DNS01 challenge records.
  11287. type: object
  11288. required:
  11289. - region
  11290. properties:
  11291. accessKeyID:
  11292. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  11293. type: string
  11294. hostedZoneID:
  11295. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  11296. type: string
  11297. region:
  11298. description: Always set the region when using AccessKeyID and SecretAccessKey
  11299. type: string
  11300. role:
  11301. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  11302. type: string
  11303. secretAccessKeySecretRef:
  11304. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  11305. type: object
  11306. required:
  11307. - name
  11308. properties:
  11309. key:
  11310. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11311. type: string
  11312. name:
  11313. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11314. type: string
  11315. webhook:
  11316. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  11317. type: object
  11318. required:
  11319. - groupName
  11320. - solverName
  11321. properties:
  11322. config:
  11323. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  11324. x-kubernetes-preserve-unknown-fields: true
  11325. groupName:
  11326. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  11327. type: string
  11328. solverName:
  11329. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  11330. type: string
  11331. http01:
  11332. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  11333. type: object
  11334. properties:
  11335. gatewayHTTPRoute:
  11336. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  11337. type: object
  11338. properties:
  11339. labels:
  11340. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  11341. type: object
  11342. additionalProperties:
  11343. type: string
  11344. serviceType:
  11345. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  11346. type: string
  11347. ingress:
  11348. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  11349. type: object
  11350. properties:
  11351. class:
  11352. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  11353. type: string
  11354. ingressTemplate:
  11355. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  11356. type: object
  11357. properties:
  11358. metadata:
  11359. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  11360. type: object
  11361. properties:
  11362. annotations:
  11363. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  11364. type: object
  11365. additionalProperties:
  11366. type: string
  11367. labels:
  11368. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  11369. type: object
  11370. additionalProperties:
  11371. type: string
  11372. name:
  11373. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  11374. type: string
  11375. podTemplate:
  11376. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
  11377. type: object
  11378. properties:
  11379. metadata:
  11380. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  11381. type: object
  11382. properties:
  11383. annotations:
  11384. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  11385. type: object
  11386. additionalProperties:
  11387. type: string
  11388. labels:
  11389. description: Labels that should be added to the created ACME HTTP01 solver pods.
  11390. type: object
  11391. additionalProperties:
  11392. type: string
  11393. spec:
  11394. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  11395. type: object
  11396. properties:
  11397. affinity:
  11398. description: If specified, the pod's scheduling constraints
  11399. type: object
  11400. properties:
  11401. nodeAffinity:
  11402. description: Describes node affinity scheduling rules for the pod.
  11403. type: object
  11404. properties:
  11405. preferredDuringSchedulingIgnoredDuringExecution:
  11406. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  11407. type: array
  11408. items:
  11409. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  11410. type: object
  11411. required:
  11412. - preference
  11413. - weight
  11414. properties:
  11415. preference:
  11416. description: A node selector term, associated with the corresponding weight.
  11417. type: object
  11418. properties:
  11419. matchExpressions:
  11420. description: A list of node selector requirements by node's labels.
  11421. type: array
  11422. items:
  11423. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11424. type: object
  11425. required:
  11426. - key
  11427. - operator
  11428. properties:
  11429. key:
  11430. description: The label key that the selector applies to.
  11431. type: string
  11432. operator:
  11433. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11434. type: string
  11435. values:
  11436. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  11437. type: array
  11438. items:
  11439. type: string
  11440. matchFields:
  11441. description: A list of node selector requirements by node's fields.
  11442. type: array
  11443. items:
  11444. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11445. type: object
  11446. required:
  11447. - key
  11448. - operator
  11449. properties:
  11450. key:
  11451. description: The label key that the selector applies to.
  11452. type: string
  11453. operator:
  11454. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11455. type: string
  11456. values:
  11457. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  11458. type: array
  11459. items:
  11460. type: string
  11461. weight:
  11462. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  11463. type: integer
  11464. format: int32
  11465. requiredDuringSchedulingIgnoredDuringExecution:
  11466. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  11467. type: object
  11468. required:
  11469. - nodeSelectorTerms
  11470. properties:
  11471. nodeSelectorTerms:
  11472. description: Required. A list of node selector terms. The terms are ORed.
  11473. type: array
  11474. items:
  11475. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  11476. type: object
  11477. properties:
  11478. matchExpressions:
  11479. description: A list of node selector requirements by node's labels.
  11480. type: array
  11481. items:
  11482. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11483. type: object
  11484. required:
  11485. - key
  11486. - operator
  11487. properties:
  11488. key:
  11489. description: The label key that the selector applies to.
  11490. type: string
  11491. operator:
  11492. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11493. type: string
  11494. values:
  11495. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  11496. type: array
  11497. items:
  11498. type: string
  11499. matchFields:
  11500. description: A list of node selector requirements by node's fields.
  11501. type: array
  11502. items:
  11503. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11504. type: object
  11505. required:
  11506. - key
  11507. - operator
  11508. properties:
  11509. key:
  11510. description: The label key that the selector applies to.
  11511. type: string
  11512. operator:
  11513. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11514. type: string
  11515. values:
  11516. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  11517. type: array
  11518. items:
  11519. type: string
  11520. podAffinity:
  11521. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  11522. type: object
  11523. properties:
  11524. preferredDuringSchedulingIgnoredDuringExecution:
  11525. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  11526. type: array
  11527. items:
  11528. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  11529. type: object
  11530. required:
  11531. - podAffinityTerm
  11532. - weight
  11533. properties:
  11534. podAffinityTerm:
  11535. description: Required. A pod affinity term, associated with the corresponding weight.
  11536. type: object
  11537. required:
  11538. - topologyKey
  11539. properties:
  11540. labelSelector:
  11541. description: A label query over a set of resources, in this case pods.
  11542. type: object
  11543. properties:
  11544. matchExpressions:
  11545. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11546. type: array
  11547. items:
  11548. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11549. type: object
  11550. required:
  11551. - key
  11552. - operator
  11553. properties:
  11554. key:
  11555. description: key is the label key that the selector applies to.
  11556. type: string
  11557. operator:
  11558. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11559. type: string
  11560. values:
  11561. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11562. type: array
  11563. items:
  11564. type: string
  11565. matchLabels:
  11566. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11567. type: object
  11568. additionalProperties:
  11569. type: string
  11570. namespaceSelector:
  11571. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  11572. type: object
  11573. properties:
  11574. matchExpressions:
  11575. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11576. type: array
  11577. items:
  11578. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11579. type: object
  11580. required:
  11581. - key
  11582. - operator
  11583. properties:
  11584. key:
  11585. description: key is the label key that the selector applies to.
  11586. type: string
  11587. operator:
  11588. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11589. type: string
  11590. values:
  11591. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11592. type: array
  11593. items:
  11594. type: string
  11595. matchLabels:
  11596. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11597. type: object
  11598. additionalProperties:
  11599. type: string
  11600. namespaces:
  11601. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  11602. type: array
  11603. items:
  11604. type: string
  11605. topologyKey:
  11606. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  11607. type: string
  11608. weight:
  11609. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  11610. type: integer
  11611. format: int32
  11612. requiredDuringSchedulingIgnoredDuringExecution:
  11613. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  11614. type: array
  11615. items:
  11616. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  11617. type: object
  11618. required:
  11619. - topologyKey
  11620. properties:
  11621. labelSelector:
  11622. description: A label query over a set of resources, in this case pods.
  11623. type: object
  11624. properties:
  11625. matchExpressions:
  11626. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11627. type: array
  11628. items:
  11629. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11630. type: object
  11631. required:
  11632. - key
  11633. - operator
  11634. properties:
  11635. key:
  11636. description: key is the label key that the selector applies to.
  11637. type: string
  11638. operator:
  11639. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11640. type: string
  11641. values:
  11642. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11643. type: array
  11644. items:
  11645. type: string
  11646. matchLabels:
  11647. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11648. type: object
  11649. additionalProperties:
  11650. type: string
  11651. namespaceSelector:
  11652. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  11653. type: object
  11654. properties:
  11655. matchExpressions:
  11656. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11657. type: array
  11658. items:
  11659. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11660. type: object
  11661. required:
  11662. - key
  11663. - operator
  11664. properties:
  11665. key:
  11666. description: key is the label key that the selector applies to.
  11667. type: string
  11668. operator:
  11669. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11670. type: string
  11671. values:
  11672. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11673. type: array
  11674. items:
  11675. type: string
  11676. matchLabels:
  11677. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11678. type: object
  11679. additionalProperties:
  11680. type: string
  11681. namespaces:
  11682. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  11683. type: array
  11684. items:
  11685. type: string
  11686. topologyKey:
  11687. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  11688. type: string
  11689. podAntiAffinity:
  11690. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  11691. type: object
  11692. properties:
  11693. preferredDuringSchedulingIgnoredDuringExecution:
  11694. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  11695. type: array
  11696. items:
  11697. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  11698. type: object
  11699. required:
  11700. - podAffinityTerm
  11701. - weight
  11702. properties:
  11703. podAffinityTerm:
  11704. description: Required. A pod affinity term, associated with the corresponding weight.
  11705. type: object
  11706. required:
  11707. - topologyKey
  11708. properties:
  11709. labelSelector:
  11710. description: A label query over a set of resources, in this case pods.
  11711. type: object
  11712. properties:
  11713. matchExpressions:
  11714. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11715. type: array
  11716. items:
  11717. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11718. type: object
  11719. required:
  11720. - key
  11721. - operator
  11722. properties:
  11723. key:
  11724. description: key is the label key that the selector applies to.
  11725. type: string
  11726. operator:
  11727. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11728. type: string
  11729. values:
  11730. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11731. type: array
  11732. items:
  11733. type: string
  11734. matchLabels:
  11735. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11736. type: object
  11737. additionalProperties:
  11738. type: string
  11739. namespaceSelector:
  11740. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  11741. type: object
  11742. properties:
  11743. matchExpressions:
  11744. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11745. type: array
  11746. items:
  11747. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11748. type: object
  11749. required:
  11750. - key
  11751. - operator
  11752. properties:
  11753. key:
  11754. description: key is the label key that the selector applies to.
  11755. type: string
  11756. operator:
  11757. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11758. type: string
  11759. values:
  11760. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11761. type: array
  11762. items:
  11763. type: string
  11764. matchLabels:
  11765. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11766. type: object
  11767. additionalProperties:
  11768. type: string
  11769. namespaces:
  11770. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  11771. type: array
  11772. items:
  11773. type: string
  11774. topologyKey:
  11775. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  11776. type: string
  11777. weight:
  11778. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  11779. type: integer
  11780. format: int32
  11781. requiredDuringSchedulingIgnoredDuringExecution:
  11782. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  11783. type: array
  11784. items:
  11785. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  11786. type: object
  11787. required:
  11788. - topologyKey
  11789. properties:
  11790. labelSelector:
  11791. description: A label query over a set of resources, in this case pods.
  11792. type: object
  11793. properties:
  11794. matchExpressions:
  11795. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11796. type: array
  11797. items:
  11798. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11799. type: object
  11800. required:
  11801. - key
  11802. - operator
  11803. properties:
  11804. key:
  11805. description: key is the label key that the selector applies to.
  11806. type: string
  11807. operator:
  11808. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11809. type: string
  11810. values:
  11811. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11812. type: array
  11813. items:
  11814. type: string
  11815. matchLabels:
  11816. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11817. type: object
  11818. additionalProperties:
  11819. type: string
  11820. namespaceSelector:
  11821. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  11822. type: object
  11823. properties:
  11824. matchExpressions:
  11825. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  11826. type: array
  11827. items:
  11828. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  11829. type: object
  11830. required:
  11831. - key
  11832. - operator
  11833. properties:
  11834. key:
  11835. description: key is the label key that the selector applies to.
  11836. type: string
  11837. operator:
  11838. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  11839. type: string
  11840. values:
  11841. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  11842. type: array
  11843. items:
  11844. type: string
  11845. matchLabels:
  11846. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  11847. type: object
  11848. additionalProperties:
  11849. type: string
  11850. namespaces:
  11851. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  11852. type: array
  11853. items:
  11854. type: string
  11855. topologyKey:
  11856. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  11857. type: string
  11858. nodeSelector:
  11859. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  11860. type: object
  11861. additionalProperties:
  11862. type: string
  11863. priorityClassName:
  11864. description: If specified, the pod's priorityClassName.
  11865. type: string
  11866. serviceAccountName:
  11867. description: If specified, the pod's service account
  11868. type: string
  11869. tolerations:
  11870. description: If specified, the pod's tolerations.
  11871. type: array
  11872. items:
  11873. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  11874. type: object
  11875. properties:
  11876. effect:
  11877. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  11878. type: string
  11879. key:
  11880. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  11881. type: string
  11882. operator:
  11883. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  11884. type: string
  11885. tolerationSeconds:
  11886. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  11887. type: integer
  11888. format: int64
  11889. value:
  11890. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  11891. type: string
  11892. serviceType:
  11893. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  11894. type: string
  11895. selector:
  11896. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  11897. type: object
  11898. properties:
  11899. dnsNames:
  11900. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  11901. type: array
  11902. items:
  11903. type: string
  11904. dnsZones:
  11905. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  11906. type: array
  11907. items:
  11908. type: string
  11909. matchLabels:
  11910. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  11911. type: object
  11912. additionalProperties:
  11913. type: string
  11914. ca:
  11915. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  11916. type: object
  11917. required:
  11918. - secretName
  11919. properties:
  11920. crlDistributionPoints:
  11921. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  11922. type: array
  11923. items:
  11924. type: string
  11925. ocspServers:
  11926. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  11927. type: array
  11928. items:
  11929. type: string
  11930. secretName:
  11931. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  11932. type: string
  11933. selfSigned:
  11934. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  11935. type: object
  11936. properties:
  11937. crlDistributionPoints:
  11938. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  11939. type: array
  11940. items:
  11941. type: string
  11942. vault:
  11943. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  11944. type: object
  11945. required:
  11946. - auth
  11947. - path
  11948. - server
  11949. properties:
  11950. auth:
  11951. description: Auth configures how cert-manager authenticates with the Vault server.
  11952. type: object
  11953. properties:
  11954. appRole:
  11955. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  11956. type: object
  11957. required:
  11958. - path
  11959. - roleId
  11960. - secretRef
  11961. properties:
  11962. path:
  11963. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  11964. type: string
  11965. roleId:
  11966. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  11967. type: string
  11968. secretRef:
  11969. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  11970. type: object
  11971. required:
  11972. - name
  11973. properties:
  11974. key:
  11975. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  11976. type: string
  11977. name:
  11978. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  11979. type: string
  11980. kubernetes:
  11981. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  11982. type: object
  11983. required:
  11984. - role
  11985. - secretRef
  11986. properties:
  11987. mountPath:
  11988. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  11989. type: string
  11990. role:
  11991. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  11992. type: string
  11993. secretRef:
  11994. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  11995. type: object
  11996. required:
  11997. - name
  11998. properties:
  11999. key:
  12000. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12001. type: string
  12002. name:
  12003. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12004. type: string
  12005. tokenSecretRef:
  12006. description: TokenSecretRef authenticates with Vault by presenting a token.
  12007. type: object
  12008. required:
  12009. - name
  12010. properties:
  12011. key:
  12012. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12013. type: string
  12014. name:
  12015. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12016. type: string
  12017. caBundle:
  12018. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  12019. type: string
  12020. format: byte
  12021. namespace:
  12022. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  12023. type: string
  12024. path:
  12025. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  12026. type: string
  12027. server:
  12028. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  12029. type: string
  12030. venafi:
  12031. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  12032. type: object
  12033. required:
  12034. - zone
  12035. properties:
  12036. cloud:
  12037. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  12038. type: object
  12039. required:
  12040. - apiTokenSecretRef
  12041. properties:
  12042. apiTokenSecretRef:
  12043. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  12044. type: object
  12045. required:
  12046. - name
  12047. properties:
  12048. key:
  12049. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12050. type: string
  12051. name:
  12052. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12053. type: string
  12054. url:
  12055. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  12056. type: string
  12057. tpp:
  12058. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  12059. type: object
  12060. required:
  12061. - credentialsRef
  12062. - url
  12063. properties:
  12064. caBundle:
  12065. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  12066. type: string
  12067. format: byte
  12068. credentialsRef:
  12069. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  12070. type: object
  12071. required:
  12072. - name
  12073. properties:
  12074. name:
  12075. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12076. type: string
  12077. url:
  12078. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  12079. type: string
  12080. zone:
  12081. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  12082. type: string
  12083. status:
  12084. description: Status of the ClusterIssuer. This is set and managed automatically.
  12085. type: object
  12086. properties:
  12087. acme:
  12088. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  12089. type: object
  12090. properties:
  12091. lastRegisteredEmail:
  12092. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  12093. type: string
  12094. uri:
  12095. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  12096. type: string
  12097. conditions:
  12098. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  12099. type: array
  12100. items:
  12101. description: IssuerCondition contains condition information for an Issuer.
  12102. type: object
  12103. required:
  12104. - status
  12105. - type
  12106. properties:
  12107. lastTransitionTime:
  12108. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  12109. type: string
  12110. format: date-time
  12111. message:
  12112. description: Message is a human readable description of the details of the last transition, complementing reason.
  12113. type: string
  12114. observedGeneration:
  12115. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  12116. type: integer
  12117. format: int64
  12118. reason:
  12119. description: Reason is a brief machine readable explanation for the condition's last transition.
  12120. type: string
  12121. status:
  12122. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  12123. type: string
  12124. enum:
  12125. - "True"
  12126. - "False"
  12127. - Unknown
  12128. type:
  12129. description: Type of the condition, known values are (`Ready`).
  12130. type: string
  12131. served: true
  12132. storage: false
  12133. - name: v1
  12134. subresources:
  12135. status: {}
  12136. additionalPrinterColumns:
  12137. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  12138. name: Ready
  12139. type: string
  12140. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  12141. name: Status
  12142. priority: 1
  12143. type: string
  12144. - jsonPath: .metadata.creationTimestamp
  12145. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  12146. name: Age
  12147. type: date
  12148. schema:
  12149. openAPIV3Schema:
  12150. description: A ClusterIssuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is similar to an Issuer, however it is cluster-scoped and therefore can be referenced by resources that exist in *any* namespace, not just the same namespace as the referent.
  12151. type: object
  12152. required:
  12153. - spec
  12154. properties:
  12155. apiVersion:
  12156. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  12157. type: string
  12158. kind:
  12159. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  12160. type: string
  12161. metadata:
  12162. type: object
  12163. spec:
  12164. description: Desired state of the ClusterIssuer resource.
  12165. type: object
  12166. properties:
  12167. acme:
  12168. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  12169. type: object
  12170. required:
  12171. - privateKeySecretRef
  12172. - server
  12173. properties:
  12174. disableAccountKeyGeneration:
  12175. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  12176. type: boolean
  12177. email:
  12178. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  12179. type: string
  12180. enableDurationFeature:
  12181. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  12182. type: boolean
  12183. externalAccountBinding:
  12184. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  12185. type: object
  12186. required:
  12187. - keyID
  12188. - keySecretRef
  12189. properties:
  12190. keyAlgorithm:
  12191. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  12192. type: string
  12193. enum:
  12194. - HS256
  12195. - HS384
  12196. - HS512
  12197. keyID:
  12198. description: keyID is the ID of the CA key that the External Account is bound to.
  12199. type: string
  12200. keySecretRef:
  12201. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  12202. type: object
  12203. required:
  12204. - name
  12205. properties:
  12206. key:
  12207. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12208. type: string
  12209. name:
  12210. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12211. type: string
  12212. preferredChain:
  12213. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  12214. type: string
  12215. maxLength: 64
  12216. privateKeySecretRef:
  12217. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  12218. type: object
  12219. required:
  12220. - name
  12221. properties:
  12222. key:
  12223. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12224. type: string
  12225. name:
  12226. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12227. type: string
  12228. server:
  12229. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  12230. type: string
  12231. skipTLSVerify:
  12232. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  12233. type: boolean
  12234. solvers:
  12235. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  12236. type: array
  12237. items:
  12238. description: An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of. A selector may be provided to use different solving strategies for different DNS names. Only one of HTTP01 or DNS01 must be provided.
  12239. type: object
  12240. properties:
  12241. dns01:
  12242. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  12243. type: object
  12244. properties:
  12245. acmeDNS:
  12246. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  12247. type: object
  12248. required:
  12249. - accountSecretRef
  12250. - host
  12251. properties:
  12252. accountSecretRef:
  12253. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12254. type: object
  12255. required:
  12256. - name
  12257. properties:
  12258. key:
  12259. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12260. type: string
  12261. name:
  12262. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12263. type: string
  12264. host:
  12265. type: string
  12266. akamai:
  12267. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  12268. type: object
  12269. required:
  12270. - accessTokenSecretRef
  12271. - clientSecretSecretRef
  12272. - clientTokenSecretRef
  12273. - serviceConsumerDomain
  12274. properties:
  12275. accessTokenSecretRef:
  12276. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12277. type: object
  12278. required:
  12279. - name
  12280. properties:
  12281. key:
  12282. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12283. type: string
  12284. name:
  12285. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12286. type: string
  12287. clientSecretSecretRef:
  12288. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12289. type: object
  12290. required:
  12291. - name
  12292. properties:
  12293. key:
  12294. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12295. type: string
  12296. name:
  12297. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12298. type: string
  12299. clientTokenSecretRef:
  12300. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12301. type: object
  12302. required:
  12303. - name
  12304. properties:
  12305. key:
  12306. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12307. type: string
  12308. name:
  12309. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12310. type: string
  12311. serviceConsumerDomain:
  12312. type: string
  12313. azureDNS:
  12314. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  12315. type: object
  12316. required:
  12317. - resourceGroupName
  12318. - subscriptionID
  12319. properties:
  12320. clientID:
  12321. description: if both this and ClientSecret are left unset MSI will be used
  12322. type: string
  12323. clientSecretSecretRef:
  12324. description: if both this and ClientID are left unset MSI will be used
  12325. type: object
  12326. required:
  12327. - name
  12328. properties:
  12329. key:
  12330. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12331. type: string
  12332. name:
  12333. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12334. type: string
  12335. environment:
  12336. type: string
  12337. enum:
  12338. - AzurePublicCloud
  12339. - AzureChinaCloud
  12340. - AzureGermanCloud
  12341. - AzureUSGovernmentCloud
  12342. hostedZoneName:
  12343. type: string
  12344. resourceGroupName:
  12345. type: string
  12346. subscriptionID:
  12347. type: string
  12348. tenantID:
  12349. description: when specifying ClientID and ClientSecret then this field is also needed
  12350. type: string
  12351. cloudDNS:
  12352. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  12353. type: object
  12354. required:
  12355. - project
  12356. properties:
  12357. hostedZoneName:
  12358. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  12359. type: string
  12360. project:
  12361. type: string
  12362. serviceAccountSecretRef:
  12363. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12364. type: object
  12365. required:
  12366. - name
  12367. properties:
  12368. key:
  12369. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12370. type: string
  12371. name:
  12372. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12373. type: string
  12374. cloudflare:
  12375. description: Use the Cloudflare API to manage DNS01 challenge records.
  12376. type: object
  12377. properties:
  12378. apiKeySecretRef:
  12379. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  12380. type: object
  12381. required:
  12382. - name
  12383. properties:
  12384. key:
  12385. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12386. type: string
  12387. name:
  12388. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12389. type: string
  12390. apiTokenSecretRef:
  12391. description: API token used to authenticate with Cloudflare.
  12392. type: object
  12393. required:
  12394. - name
  12395. properties:
  12396. key:
  12397. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12398. type: string
  12399. name:
  12400. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12401. type: string
  12402. email:
  12403. description: Email of the account, only required when using API key based authentication.
  12404. type: string
  12405. cnameStrategy:
  12406. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  12407. type: string
  12408. enum:
  12409. - None
  12410. - Follow
  12411. digitalocean:
  12412. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  12413. type: object
  12414. required:
  12415. - tokenSecretRef
  12416. properties:
  12417. tokenSecretRef:
  12418. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  12419. type: object
  12420. required:
  12421. - name
  12422. properties:
  12423. key:
  12424. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12425. type: string
  12426. name:
  12427. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12428. type: string
  12429. rfc2136:
  12430. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  12431. type: object
  12432. required:
  12433. - nameserver
  12434. properties:
  12435. nameserver:
  12436. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  12437. type: string
  12438. tsigAlgorithm:
  12439. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  12440. type: string
  12441. tsigKeyName:
  12442. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  12443. type: string
  12444. tsigSecretSecretRef:
  12445. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  12446. type: object
  12447. required:
  12448. - name
  12449. properties:
  12450. key:
  12451. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12452. type: string
  12453. name:
  12454. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12455. type: string
  12456. route53:
  12457. description: Use the AWS Route53 API to manage DNS01 challenge records.
  12458. type: object
  12459. required:
  12460. - region
  12461. properties:
  12462. accessKeyID:
  12463. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  12464. type: string
  12465. hostedZoneID:
  12466. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  12467. type: string
  12468. region:
  12469. description: Always set the region when using AccessKeyID and SecretAccessKey
  12470. type: string
  12471. role:
  12472. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  12473. type: string
  12474. secretAccessKeySecretRef:
  12475. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  12476. type: object
  12477. required:
  12478. - name
  12479. properties:
  12480. key:
  12481. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  12482. type: string
  12483. name:
  12484. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  12485. type: string
  12486. webhook:
  12487. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  12488. type: object
  12489. required:
  12490. - groupName
  12491. - solverName
  12492. properties:
  12493. config:
  12494. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  12495. x-kubernetes-preserve-unknown-fields: true
  12496. groupName:
  12497. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  12498. type: string
  12499. solverName:
  12500. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  12501. type: string
  12502. http01:
  12503. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  12504. type: object
  12505. properties:
  12506. gatewayHTTPRoute:
  12507. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  12508. type: object
  12509. properties:
  12510. labels:
  12511. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  12512. type: object
  12513. additionalProperties:
  12514. type: string
  12515. serviceType:
  12516. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  12517. type: string
  12518. ingress:
  12519. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  12520. type: object
  12521. properties:
  12522. class:
  12523. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  12524. type: string
  12525. ingressTemplate:
  12526. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  12527. type: object
  12528. properties:
  12529. metadata:
  12530. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  12531. type: object
  12532. properties:
  12533. annotations:
  12534. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  12535. type: object
  12536. additionalProperties:
  12537. type: string
  12538. labels:
  12539. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  12540. type: object
  12541. additionalProperties:
  12542. type: string
  12543. name:
  12544. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  12545. type: string
  12546. podTemplate:
  12547. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  12548. type: object
  12549. properties:
  12550. metadata:
  12551. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  12552. type: object
  12553. properties:
  12554. annotations:
  12555. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  12556. type: object
  12557. additionalProperties:
  12558. type: string
  12559. labels:
  12560. description: Labels that should be added to the created ACME HTTP01 solver pods.
  12561. type: object
  12562. additionalProperties:
  12563. type: string
  12564. spec:
  12565. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  12566. type: object
  12567. properties:
  12568. affinity:
  12569. description: If specified, the pod's scheduling constraints
  12570. type: object
  12571. properties:
  12572. nodeAffinity:
  12573. description: Describes node affinity scheduling rules for the pod.
  12574. type: object
  12575. properties:
  12576. preferredDuringSchedulingIgnoredDuringExecution:
  12577. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  12578. type: array
  12579. items:
  12580. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  12581. type: object
  12582. required:
  12583. - preference
  12584. - weight
  12585. properties:
  12586. preference:
  12587. description: A node selector term, associated with the corresponding weight.
  12588. type: object
  12589. properties:
  12590. matchExpressions:
  12591. description: A list of node selector requirements by node's labels.
  12592. type: array
  12593. items:
  12594. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12595. type: object
  12596. required:
  12597. - key
  12598. - operator
  12599. properties:
  12600. key:
  12601. description: The label key that the selector applies to.
  12602. type: string
  12603. operator:
  12604. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12605. type: string
  12606. values:
  12607. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12608. type: array
  12609. items:
  12610. type: string
  12611. matchFields:
  12612. description: A list of node selector requirements by node's fields.
  12613. type: array
  12614. items:
  12615. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12616. type: object
  12617. required:
  12618. - key
  12619. - operator
  12620. properties:
  12621. key:
  12622. description: The label key that the selector applies to.
  12623. type: string
  12624. operator:
  12625. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12626. type: string
  12627. values:
  12628. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12629. type: array
  12630. items:
  12631. type: string
  12632. weight:
  12633. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  12634. type: integer
  12635. format: int32
  12636. requiredDuringSchedulingIgnoredDuringExecution:
  12637. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  12638. type: object
  12639. required:
  12640. - nodeSelectorTerms
  12641. properties:
  12642. nodeSelectorTerms:
  12643. description: Required. A list of node selector terms. The terms are ORed.
  12644. type: array
  12645. items:
  12646. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  12647. type: object
  12648. properties:
  12649. matchExpressions:
  12650. description: A list of node selector requirements by node's labels.
  12651. type: array
  12652. items:
  12653. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12654. type: object
  12655. required:
  12656. - key
  12657. - operator
  12658. properties:
  12659. key:
  12660. description: The label key that the selector applies to.
  12661. type: string
  12662. operator:
  12663. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12664. type: string
  12665. values:
  12666. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12667. type: array
  12668. items:
  12669. type: string
  12670. matchFields:
  12671. description: A list of node selector requirements by node's fields.
  12672. type: array
  12673. items:
  12674. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12675. type: object
  12676. required:
  12677. - key
  12678. - operator
  12679. properties:
  12680. key:
  12681. description: The label key that the selector applies to.
  12682. type: string
  12683. operator:
  12684. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12685. type: string
  12686. values:
  12687. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12688. type: array
  12689. items:
  12690. type: string
  12691. podAffinity:
  12692. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  12693. type: object
  12694. properties:
  12695. preferredDuringSchedulingIgnoredDuringExecution:
  12696. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12697. type: array
  12698. items:
  12699. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12700. type: object
  12701. required:
  12702. - podAffinityTerm
  12703. - weight
  12704. properties:
  12705. podAffinityTerm:
  12706. description: Required. A pod affinity term, associated with the corresponding weight.
  12707. type: object
  12708. required:
  12709. - topologyKey
  12710. properties:
  12711. labelSelector:
  12712. description: A label query over a set of resources, in this case pods.
  12713. type: object
  12714. properties:
  12715. matchExpressions:
  12716. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12717. type: array
  12718. items:
  12719. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12720. type: object
  12721. required:
  12722. - key
  12723. - operator
  12724. properties:
  12725. key:
  12726. description: key is the label key that the selector applies to.
  12727. type: string
  12728. operator:
  12729. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12730. type: string
  12731. values:
  12732. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12733. type: array
  12734. items:
  12735. type: string
  12736. matchLabels:
  12737. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12738. type: object
  12739. additionalProperties:
  12740. type: string
  12741. namespaceSelector:
  12742. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  12743. type: object
  12744. properties:
  12745. matchExpressions:
  12746. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12747. type: array
  12748. items:
  12749. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12750. type: object
  12751. required:
  12752. - key
  12753. - operator
  12754. properties:
  12755. key:
  12756. description: key is the label key that the selector applies to.
  12757. type: string
  12758. operator:
  12759. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12760. type: string
  12761. values:
  12762. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12763. type: array
  12764. items:
  12765. type: string
  12766. matchLabels:
  12767. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12768. type: object
  12769. additionalProperties:
  12770. type: string
  12771. namespaces:
  12772. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  12773. type: array
  12774. items:
  12775. type: string
  12776. topologyKey:
  12777. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12778. type: string
  12779. weight:
  12780. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12781. type: integer
  12782. format: int32
  12783. requiredDuringSchedulingIgnoredDuringExecution:
  12784. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12785. type: array
  12786. items:
  12787. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12788. type: object
  12789. required:
  12790. - topologyKey
  12791. properties:
  12792. labelSelector:
  12793. description: A label query over a set of resources, in this case pods.
  12794. type: object
  12795. properties:
  12796. matchExpressions:
  12797. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12798. type: array
  12799. items:
  12800. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12801. type: object
  12802. required:
  12803. - key
  12804. - operator
  12805. properties:
  12806. key:
  12807. description: key is the label key that the selector applies to.
  12808. type: string
  12809. operator:
  12810. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12811. type: string
  12812. values:
  12813. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12814. type: array
  12815. items:
  12816. type: string
  12817. matchLabels:
  12818. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12819. type: object
  12820. additionalProperties:
  12821. type: string
  12822. namespaceSelector:
  12823. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  12824. type: object
  12825. properties:
  12826. matchExpressions:
  12827. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12828. type: array
  12829. items:
  12830. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12831. type: object
  12832. required:
  12833. - key
  12834. - operator
  12835. properties:
  12836. key:
  12837. description: key is the label key that the selector applies to.
  12838. type: string
  12839. operator:
  12840. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12841. type: string
  12842. values:
  12843. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12844. type: array
  12845. items:
  12846. type: string
  12847. matchLabels:
  12848. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12849. type: object
  12850. additionalProperties:
  12851. type: string
  12852. namespaces:
  12853. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  12854. type: array
  12855. items:
  12856. type: string
  12857. topologyKey:
  12858. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12859. type: string
  12860. podAntiAffinity:
  12861. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  12862. type: object
  12863. properties:
  12864. preferredDuringSchedulingIgnoredDuringExecution:
  12865. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12866. type: array
  12867. items:
  12868. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12869. type: object
  12870. required:
  12871. - podAffinityTerm
  12872. - weight
  12873. properties:
  12874. podAffinityTerm:
  12875. description: Required. A pod affinity term, associated with the corresponding weight.
  12876. type: object
  12877. required:
  12878. - topologyKey
  12879. properties:
  12880. labelSelector:
  12881. description: A label query over a set of resources, in this case pods.
  12882. type: object
  12883. properties:
  12884. matchExpressions:
  12885. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12886. type: array
  12887. items:
  12888. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12889. type: object
  12890. required:
  12891. - key
  12892. - operator
  12893. properties:
  12894. key:
  12895. description: key is the label key that the selector applies to.
  12896. type: string
  12897. operator:
  12898. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12899. type: string
  12900. values:
  12901. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12902. type: array
  12903. items:
  12904. type: string
  12905. matchLabels:
  12906. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12907. type: object
  12908. additionalProperties:
  12909. type: string
  12910. namespaceSelector:
  12911. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  12912. type: object
  12913. properties:
  12914. matchExpressions:
  12915. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12916. type: array
  12917. items:
  12918. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12919. type: object
  12920. required:
  12921. - key
  12922. - operator
  12923. properties:
  12924. key:
  12925. description: key is the label key that the selector applies to.
  12926. type: string
  12927. operator:
  12928. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12929. type: string
  12930. values:
  12931. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12932. type: array
  12933. items:
  12934. type: string
  12935. matchLabels:
  12936. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12937. type: object
  12938. additionalProperties:
  12939. type: string
  12940. namespaces:
  12941. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  12942. type: array
  12943. items:
  12944. type: string
  12945. topologyKey:
  12946. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12947. type: string
  12948. weight:
  12949. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12950. type: integer
  12951. format: int32
  12952. requiredDuringSchedulingIgnoredDuringExecution:
  12953. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12954. type: array
  12955. items:
  12956. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12957. type: object
  12958. required:
  12959. - topologyKey
  12960. properties:
  12961. labelSelector:
  12962. description: A label query over a set of resources, in this case pods.
  12963. type: object
  12964. properties:
  12965. matchExpressions:
  12966. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12967. type: array
  12968. items:
  12969. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12970. type: object
  12971. required:
  12972. - key
  12973. - operator
  12974. properties:
  12975. key:
  12976. description: key is the label key that the selector applies to.
  12977. type: string
  12978. operator:
  12979. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12980. type: string
  12981. values:
  12982. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12983. type: array
  12984. items:
  12985. type: string
  12986. matchLabels:
  12987. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12988. type: object
  12989. additionalProperties:
  12990. type: string
  12991. namespaceSelector:
  12992. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  12993. type: object
  12994. properties:
  12995. matchExpressions:
  12996. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12997. type: array
  12998. items:
  12999. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13000. type: object
  13001. required:
  13002. - key
  13003. - operator
  13004. properties:
  13005. key:
  13006. description: key is the label key that the selector applies to.
  13007. type: string
  13008. operator:
  13009. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  13010. type: string
  13011. values:
  13012. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  13013. type: array
  13014. items:
  13015. type: string
  13016. matchLabels:
  13017. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  13018. type: object
  13019. additionalProperties:
  13020. type: string
  13021. namespaces:
  13022. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  13023. type: array
  13024. items:
  13025. type: string
  13026. topologyKey:
  13027. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  13028. type: string
  13029. nodeSelector:
  13030. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  13031. type: object
  13032. additionalProperties:
  13033. type: string
  13034. priorityClassName:
  13035. description: If specified, the pod's priorityClassName.
  13036. type: string
  13037. serviceAccountName:
  13038. description: If specified, the pod's service account
  13039. type: string
  13040. tolerations:
  13041. description: If specified, the pod's tolerations.
  13042. type: array
  13043. items:
  13044. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  13045. type: object
  13046. properties:
  13047. effect:
  13048. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  13049. type: string
  13050. key:
  13051. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  13052. type: string
  13053. operator:
  13054. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  13055. type: string
  13056. tolerationSeconds:
  13057. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  13058. type: integer
  13059. format: int64
  13060. value:
  13061. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  13062. type: string
  13063. serviceType:
  13064. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  13065. type: string
  13066. selector:
  13067. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  13068. type: object
  13069. properties:
  13070. dnsNames:
  13071. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  13072. type: array
  13073. items:
  13074. type: string
  13075. dnsZones:
  13076. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  13077. type: array
  13078. items:
  13079. type: string
  13080. matchLabels:
  13081. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  13082. type: object
  13083. additionalProperties:
  13084. type: string
  13085. ca:
  13086. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  13087. type: object
  13088. required:
  13089. - secretName
  13090. properties:
  13091. crlDistributionPoints:
  13092. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  13093. type: array
  13094. items:
  13095. type: string
  13096. ocspServers:
  13097. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  13098. type: array
  13099. items:
  13100. type: string
  13101. secretName:
  13102. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  13103. type: string
  13104. selfSigned:
  13105. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  13106. type: object
  13107. properties:
  13108. crlDistributionPoints:
  13109. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  13110. type: array
  13111. items:
  13112. type: string
  13113. vault:
  13114. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  13115. type: object
  13116. required:
  13117. - auth
  13118. - path
  13119. - server
  13120. properties:
  13121. auth:
  13122. description: Auth configures how cert-manager authenticates with the Vault server.
  13123. type: object
  13124. properties:
  13125. appRole:
  13126. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  13127. type: object
  13128. required:
  13129. - path
  13130. - roleId
  13131. - secretRef
  13132. properties:
  13133. path:
  13134. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  13135. type: string
  13136. roleId:
  13137. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  13138. type: string
  13139. secretRef:
  13140. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  13141. type: object
  13142. required:
  13143. - name
  13144. properties:
  13145. key:
  13146. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13147. type: string
  13148. name:
  13149. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13150. type: string
  13151. kubernetes:
  13152. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  13153. type: object
  13154. required:
  13155. - role
  13156. - secretRef
  13157. properties:
  13158. mountPath:
  13159. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  13160. type: string
  13161. role:
  13162. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  13163. type: string
  13164. secretRef:
  13165. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  13166. type: object
  13167. required:
  13168. - name
  13169. properties:
  13170. key:
  13171. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13172. type: string
  13173. name:
  13174. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13175. type: string
  13176. tokenSecretRef:
  13177. description: TokenSecretRef authenticates with Vault by presenting a token.
  13178. type: object
  13179. required:
  13180. - name
  13181. properties:
  13182. key:
  13183. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13184. type: string
  13185. name:
  13186. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13187. type: string
  13188. caBundle:
  13189. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  13190. type: string
  13191. format: byte
  13192. namespace:
  13193. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  13194. type: string
  13195. path:
  13196. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  13197. type: string
  13198. server:
  13199. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  13200. type: string
  13201. venafi:
  13202. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  13203. type: object
  13204. required:
  13205. - zone
  13206. properties:
  13207. cloud:
  13208. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  13209. type: object
  13210. required:
  13211. - apiTokenSecretRef
  13212. properties:
  13213. apiTokenSecretRef:
  13214. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  13215. type: object
  13216. required:
  13217. - name
  13218. properties:
  13219. key:
  13220. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13221. type: string
  13222. name:
  13223. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13224. type: string
  13225. url:
  13226. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  13227. type: string
  13228. tpp:
  13229. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  13230. type: object
  13231. required:
  13232. - credentialsRef
  13233. - url
  13234. properties:
  13235. caBundle:
  13236. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  13237. type: string
  13238. format: byte
  13239. credentialsRef:
  13240. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  13241. type: object
  13242. required:
  13243. - name
  13244. properties:
  13245. name:
  13246. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13247. type: string
  13248. url:
  13249. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  13250. type: string
  13251. zone:
  13252. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  13253. type: string
  13254. status:
  13255. description: Status of the ClusterIssuer. This is set and managed automatically.
  13256. type: object
  13257. properties:
  13258. acme:
  13259. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  13260. type: object
  13261. properties:
  13262. lastRegisteredEmail:
  13263. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  13264. type: string
  13265. uri:
  13266. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  13267. type: string
  13268. conditions:
  13269. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  13270. type: array
  13271. items:
  13272. description: IssuerCondition contains condition information for an Issuer.
  13273. type: object
  13274. required:
  13275. - status
  13276. - type
  13277. properties:
  13278. lastTransitionTime:
  13279. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  13280. type: string
  13281. format: date-time
  13282. message:
  13283. description: Message is a human readable description of the details of the last transition, complementing reason.
  13284. type: string
  13285. observedGeneration:
  13286. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  13287. type: integer
  13288. format: int64
  13289. reason:
  13290. description: Reason is a brief machine readable explanation for the condition's last transition.
  13291. type: string
  13292. status:
  13293. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  13294. type: string
  13295. enum:
  13296. - "True"
  13297. - "False"
  13298. - Unknown
  13299. type:
  13300. description: Type of the condition, known values are (`Ready`).
  13301. type: string
  13302. served: true
  13303. storage: true
  13304. ---
  13305. # Source: gitlab/charts/certmanager/templates/crds.yaml
  13306. apiVersion: apiextensions.k8s.io/v1
  13307. kind: CustomResourceDefinition
  13308. metadata:
  13309. name: issuers.cert-manager.io
  13310. annotations:
  13311. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  13312. labels:
  13313. app: 'certmanager'
  13314. app.kubernetes.io/name: 'certmanager'
  13315. app.kubernetes.io/instance: 'gitlab'
  13316. # Generated labels
  13317. app.kubernetes.io/version: "v1.5.4"
  13318. app.kubernetes.io/managed-by: Helm
  13319. helm.sh/chart: certmanager-v1.5.4
  13320. spec:
  13321. group: cert-manager.io
  13322. names:
  13323. kind: Issuer
  13324. listKind: IssuerList
  13325. plural: issuers
  13326. singular: issuer
  13327. categories:
  13328. - cert-manager
  13329. scope: Namespaced
  13330. conversion:
  13331. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  13332. strategy: Webhook
  13333. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  13334. webhook:
  13335. # We don't actually support `v1beta1` but is listed here as it is a
  13336. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  13337. # API server reads the supported versions in order, so _should always_
  13338. # attempt a `v1` request which is understood by the cert-manager webhook.
  13339. # Any `v1beta1` request will return an error and fail closed for that
  13340. # resource (the whole object request is rejected).
  13341. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  13342. conversionReviewVersions: ["v1", "v1beta1"]
  13343. clientConfig:
  13344. #
  13345. service:
  13346. name: 'gitlab-certmanager-webhook'
  13347. namespace: "default"
  13348. path: /convert
  13349. #
  13350. versions:
  13351. - name: v1alpha2
  13352. subresources:
  13353. status: {}
  13354. additionalPrinterColumns:
  13355. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  13356. name: Ready
  13357. type: string
  13358. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  13359. name: Status
  13360. priority: 1
  13361. type: string
  13362. - jsonPath: .metadata.creationTimestamp
  13363. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  13364. name: Age
  13365. type: date
  13366. schema:
  13367. openAPIV3Schema:
  13368. description: An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.
  13369. type: object
  13370. properties:
  13371. apiVersion:
  13372. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  13373. type: string
  13374. kind:
  13375. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  13376. type: string
  13377. metadata:
  13378. type: object
  13379. spec:
  13380. description: Desired state of the Issuer resource.
  13381. type: object
  13382. properties:
  13383. acme:
  13384. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  13385. type: object
  13386. required:
  13387. - privateKeySecretRef
  13388. - server
  13389. properties:
  13390. disableAccountKeyGeneration:
  13391. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  13392. type: boolean
  13393. email:
  13394. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  13395. type: string
  13396. enableDurationFeature:
  13397. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  13398. type: boolean
  13399. externalAccountBinding:
  13400. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  13401. type: object
  13402. required:
  13403. - keyID
  13404. - keySecretRef
  13405. properties:
  13406. keyAlgorithm:
  13407. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  13408. type: string
  13409. enum:
  13410. - HS256
  13411. - HS384
  13412. - HS512
  13413. keyID:
  13414. description: keyID is the ID of the CA key that the External Account is bound to.
  13415. type: string
  13416. keySecretRef:
  13417. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  13418. type: object
  13419. required:
  13420. - name
  13421. properties:
  13422. key:
  13423. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13424. type: string
  13425. name:
  13426. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13427. type: string
  13428. preferredChain:
  13429. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  13430. type: string
  13431. maxLength: 64
  13432. privateKeySecretRef:
  13433. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  13434. type: object
  13435. required:
  13436. - name
  13437. properties:
  13438. key:
  13439. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13440. type: string
  13441. name:
  13442. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13443. type: string
  13444. server:
  13445. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  13446. type: string
  13447. skipTLSVerify:
  13448. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  13449. type: boolean
  13450. solvers:
  13451. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  13452. type: array
  13453. items:
  13454. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  13455. type: object
  13456. properties:
  13457. dns01:
  13458. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  13459. type: object
  13460. properties:
  13461. acmedns:
  13462. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  13463. type: object
  13464. required:
  13465. - accountSecretRef
  13466. - host
  13467. properties:
  13468. accountSecretRef:
  13469. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13470. type: object
  13471. required:
  13472. - name
  13473. properties:
  13474. key:
  13475. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13476. type: string
  13477. name:
  13478. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13479. type: string
  13480. host:
  13481. type: string
  13482. akamai:
  13483. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  13484. type: object
  13485. required:
  13486. - accessTokenSecretRef
  13487. - clientSecretSecretRef
  13488. - clientTokenSecretRef
  13489. - serviceConsumerDomain
  13490. properties:
  13491. accessTokenSecretRef:
  13492. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13493. type: object
  13494. required:
  13495. - name
  13496. properties:
  13497. key:
  13498. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13499. type: string
  13500. name:
  13501. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13502. type: string
  13503. clientSecretSecretRef:
  13504. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13505. type: object
  13506. required:
  13507. - name
  13508. properties:
  13509. key:
  13510. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13511. type: string
  13512. name:
  13513. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13514. type: string
  13515. clientTokenSecretRef:
  13516. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13517. type: object
  13518. required:
  13519. - name
  13520. properties:
  13521. key:
  13522. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13523. type: string
  13524. name:
  13525. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13526. type: string
  13527. serviceConsumerDomain:
  13528. type: string
  13529. azuredns:
  13530. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  13531. type: object
  13532. required:
  13533. - resourceGroupName
  13534. - subscriptionID
  13535. properties:
  13536. clientID:
  13537. description: if both this and ClientSecret are left unset MSI will be used
  13538. type: string
  13539. clientSecretSecretRef:
  13540. description: if both this and ClientID are left unset MSI will be used
  13541. type: object
  13542. required:
  13543. - name
  13544. properties:
  13545. key:
  13546. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13547. type: string
  13548. name:
  13549. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13550. type: string
  13551. environment:
  13552. type: string
  13553. enum:
  13554. - AzurePublicCloud
  13555. - AzureChinaCloud
  13556. - AzureGermanCloud
  13557. - AzureUSGovernmentCloud
  13558. hostedZoneName:
  13559. type: string
  13560. resourceGroupName:
  13561. type: string
  13562. subscriptionID:
  13563. type: string
  13564. tenantID:
  13565. description: when specifying ClientID and ClientSecret then this field is also needed
  13566. type: string
  13567. clouddns:
  13568. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  13569. type: object
  13570. required:
  13571. - project
  13572. properties:
  13573. hostedZoneName:
  13574. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  13575. type: string
  13576. project:
  13577. type: string
  13578. serviceAccountSecretRef:
  13579. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13580. type: object
  13581. required:
  13582. - name
  13583. properties:
  13584. key:
  13585. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13586. type: string
  13587. name:
  13588. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13589. type: string
  13590. cloudflare:
  13591. description: Use the Cloudflare API to manage DNS01 challenge records.
  13592. type: object
  13593. properties:
  13594. apiKeySecretRef:
  13595. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  13596. type: object
  13597. required:
  13598. - name
  13599. properties:
  13600. key:
  13601. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13602. type: string
  13603. name:
  13604. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13605. type: string
  13606. apiTokenSecretRef:
  13607. description: API token used to authenticate with Cloudflare.
  13608. type: object
  13609. required:
  13610. - name
  13611. properties:
  13612. key:
  13613. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13614. type: string
  13615. name:
  13616. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13617. type: string
  13618. email:
  13619. description: Email of the account, only required when using API key based authentication.
  13620. type: string
  13621. cnameStrategy:
  13622. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  13623. type: string
  13624. enum:
  13625. - None
  13626. - Follow
  13627. digitalocean:
  13628. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  13629. type: object
  13630. required:
  13631. - tokenSecretRef
  13632. properties:
  13633. tokenSecretRef:
  13634. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  13635. type: object
  13636. required:
  13637. - name
  13638. properties:
  13639. key:
  13640. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13641. type: string
  13642. name:
  13643. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13644. type: string
  13645. rfc2136:
  13646. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  13647. type: object
  13648. required:
  13649. - nameserver
  13650. properties:
  13651. nameserver:
  13652. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  13653. type: string
  13654. tsigAlgorithm:
  13655. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  13656. type: string
  13657. tsigKeyName:
  13658. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  13659. type: string
  13660. tsigSecretSecretRef:
  13661. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  13662. type: object
  13663. required:
  13664. - name
  13665. properties:
  13666. key:
  13667. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13668. type: string
  13669. name:
  13670. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13671. type: string
  13672. route53:
  13673. description: Use the AWS Route53 API to manage DNS01 challenge records.
  13674. type: object
  13675. required:
  13676. - region
  13677. properties:
  13678. accessKeyID:
  13679. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  13680. type: string
  13681. hostedZoneID:
  13682. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  13683. type: string
  13684. region:
  13685. description: Always set the region when using AccessKeyID and SecretAccessKey
  13686. type: string
  13687. role:
  13688. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  13689. type: string
  13690. secretAccessKeySecretRef:
  13691. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  13692. type: object
  13693. required:
  13694. - name
  13695. properties:
  13696. key:
  13697. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  13698. type: string
  13699. name:
  13700. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  13701. type: string
  13702. webhook:
  13703. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  13704. type: object
  13705. required:
  13706. - groupName
  13707. - solverName
  13708. properties:
  13709. config:
  13710. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  13711. x-kubernetes-preserve-unknown-fields: true
  13712. groupName:
  13713. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  13714. type: string
  13715. solverName:
  13716. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  13717. type: string
  13718. http01:
  13719. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  13720. type: object
  13721. properties:
  13722. gatewayHTTPRoute:
  13723. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  13724. type: object
  13725. properties:
  13726. labels:
  13727. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  13728. type: object
  13729. additionalProperties:
  13730. type: string
  13731. serviceType:
  13732. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  13733. type: string
  13734. ingress:
  13735. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  13736. type: object
  13737. properties:
  13738. class:
  13739. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  13740. type: string
  13741. ingressTemplate:
  13742. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  13743. type: object
  13744. properties:
  13745. metadata:
  13746. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  13747. type: object
  13748. properties:
  13749. annotations:
  13750. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  13751. type: object
  13752. additionalProperties:
  13753. type: string
  13754. labels:
  13755. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  13756. type: object
  13757. additionalProperties:
  13758. type: string
  13759. name:
  13760. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  13761. type: string
  13762. podTemplate:
  13763. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  13764. type: object
  13765. properties:
  13766. metadata:
  13767. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  13768. type: object
  13769. properties:
  13770. annotations:
  13771. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  13772. type: object
  13773. additionalProperties:
  13774. type: string
  13775. labels:
  13776. description: Labels that should be added to the created ACME HTTP01 solver pods.
  13777. type: object
  13778. additionalProperties:
  13779. type: string
  13780. spec:
  13781. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  13782. type: object
  13783. properties:
  13784. affinity:
  13785. description: If specified, the pod's scheduling constraints
  13786. type: object
  13787. properties:
  13788. nodeAffinity:
  13789. description: Describes node affinity scheduling rules for the pod.
  13790. type: object
  13791. properties:
  13792. preferredDuringSchedulingIgnoredDuringExecution:
  13793. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  13794. type: array
  13795. items:
  13796. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  13797. type: object
  13798. required:
  13799. - preference
  13800. - weight
  13801. properties:
  13802. preference:
  13803. description: A node selector term, associated with the corresponding weight.
  13804. type: object
  13805. properties:
  13806. matchExpressions:
  13807. description: A list of node selector requirements by node's labels.
  13808. type: array
  13809. items:
  13810. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13811. type: object
  13812. required:
  13813. - key
  13814. - operator
  13815. properties:
  13816. key:
  13817. description: The label key that the selector applies to.
  13818. type: string
  13819. operator:
  13820. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  13821. type: string
  13822. values:
  13823. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  13824. type: array
  13825. items:
  13826. type: string
  13827. matchFields:
  13828. description: A list of node selector requirements by node's fields.
  13829. type: array
  13830. items:
  13831. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13832. type: object
  13833. required:
  13834. - key
  13835. - operator
  13836. properties:
  13837. key:
  13838. description: The label key that the selector applies to.
  13839. type: string
  13840. operator:
  13841. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  13842. type: string
  13843. values:
  13844. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  13845. type: array
  13846. items:
  13847. type: string
  13848. weight:
  13849. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  13850. type: integer
  13851. format: int32
  13852. requiredDuringSchedulingIgnoredDuringExecution:
  13853. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  13854. type: object
  13855. required:
  13856. - nodeSelectorTerms
  13857. properties:
  13858. nodeSelectorTerms:
  13859. description: Required. A list of node selector terms. The terms are ORed.
  13860. type: array
  13861. items:
  13862. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  13863. type: object
  13864. properties:
  13865. matchExpressions:
  13866. description: A list of node selector requirements by node's labels.
  13867. type: array
  13868. items:
  13869. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13870. type: object
  13871. required:
  13872. - key
  13873. - operator
  13874. properties:
  13875. key:
  13876. description: The label key that the selector applies to.
  13877. type: string
  13878. operator:
  13879. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  13880. type: string
  13881. values:
  13882. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  13883. type: array
  13884. items:
  13885. type: string
  13886. matchFields:
  13887. description: A list of node selector requirements by node's fields.
  13888. type: array
  13889. items:
  13890. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13891. type: object
  13892. required:
  13893. - key
  13894. - operator
  13895. properties:
  13896. key:
  13897. description: The label key that the selector applies to.
  13898. type: string
  13899. operator:
  13900. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  13901. type: string
  13902. values:
  13903. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  13904. type: array
  13905. items:
  13906. type: string
  13907. podAffinity:
  13908. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  13909. type: object
  13910. properties:
  13911. preferredDuringSchedulingIgnoredDuringExecution:
  13912. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  13913. type: array
  13914. items:
  13915. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  13916. type: object
  13917. required:
  13918. - podAffinityTerm
  13919. - weight
  13920. properties:
  13921. podAffinityTerm:
  13922. description: Required. A pod affinity term, associated with the corresponding weight.
  13923. type: object
  13924. required:
  13925. - topologyKey
  13926. properties:
  13927. labelSelector:
  13928. description: A label query over a set of resources, in this case pods.
  13929. type: object
  13930. properties:
  13931. matchExpressions:
  13932. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  13933. type: array
  13934. items:
  13935. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13936. type: object
  13937. required:
  13938. - key
  13939. - operator
  13940. properties:
  13941. key:
  13942. description: key is the label key that the selector applies to.
  13943. type: string
  13944. operator:
  13945. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  13946. type: string
  13947. values:
  13948. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  13949. type: array
  13950. items:
  13951. type: string
  13952. matchLabels:
  13953. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  13954. type: object
  13955. additionalProperties:
  13956. type: string
  13957. namespaceSelector:
  13958. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  13959. type: object
  13960. properties:
  13961. matchExpressions:
  13962. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  13963. type: array
  13964. items:
  13965. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  13966. type: object
  13967. required:
  13968. - key
  13969. - operator
  13970. properties:
  13971. key:
  13972. description: key is the label key that the selector applies to.
  13973. type: string
  13974. operator:
  13975. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  13976. type: string
  13977. values:
  13978. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  13979. type: array
  13980. items:
  13981. type: string
  13982. matchLabels:
  13983. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  13984. type: object
  13985. additionalProperties:
  13986. type: string
  13987. namespaces:
  13988. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  13989. type: array
  13990. items:
  13991. type: string
  13992. topologyKey:
  13993. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  13994. type: string
  13995. weight:
  13996. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  13997. type: integer
  13998. format: int32
  13999. requiredDuringSchedulingIgnoredDuringExecution:
  14000. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  14001. type: array
  14002. items:
  14003. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  14004. type: object
  14005. required:
  14006. - topologyKey
  14007. properties:
  14008. labelSelector:
  14009. description: A label query over a set of resources, in this case pods.
  14010. type: object
  14011. properties:
  14012. matchExpressions:
  14013. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14014. type: array
  14015. items:
  14016. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14017. type: object
  14018. required:
  14019. - key
  14020. - operator
  14021. properties:
  14022. key:
  14023. description: key is the label key that the selector applies to.
  14024. type: string
  14025. operator:
  14026. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14027. type: string
  14028. values:
  14029. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14030. type: array
  14031. items:
  14032. type: string
  14033. matchLabels:
  14034. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14035. type: object
  14036. additionalProperties:
  14037. type: string
  14038. namespaceSelector:
  14039. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  14040. type: object
  14041. properties:
  14042. matchExpressions:
  14043. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14044. type: array
  14045. items:
  14046. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14047. type: object
  14048. required:
  14049. - key
  14050. - operator
  14051. properties:
  14052. key:
  14053. description: key is the label key that the selector applies to.
  14054. type: string
  14055. operator:
  14056. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14057. type: string
  14058. values:
  14059. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14060. type: array
  14061. items:
  14062. type: string
  14063. matchLabels:
  14064. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14065. type: object
  14066. additionalProperties:
  14067. type: string
  14068. namespaces:
  14069. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  14070. type: array
  14071. items:
  14072. type: string
  14073. topologyKey:
  14074. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  14075. type: string
  14076. podAntiAffinity:
  14077. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  14078. type: object
  14079. properties:
  14080. preferredDuringSchedulingIgnoredDuringExecution:
  14081. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  14082. type: array
  14083. items:
  14084. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  14085. type: object
  14086. required:
  14087. - podAffinityTerm
  14088. - weight
  14089. properties:
  14090. podAffinityTerm:
  14091. description: Required. A pod affinity term, associated with the corresponding weight.
  14092. type: object
  14093. required:
  14094. - topologyKey
  14095. properties:
  14096. labelSelector:
  14097. description: A label query over a set of resources, in this case pods.
  14098. type: object
  14099. properties:
  14100. matchExpressions:
  14101. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14102. type: array
  14103. items:
  14104. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14105. type: object
  14106. required:
  14107. - key
  14108. - operator
  14109. properties:
  14110. key:
  14111. description: key is the label key that the selector applies to.
  14112. type: string
  14113. operator:
  14114. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14115. type: string
  14116. values:
  14117. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14118. type: array
  14119. items:
  14120. type: string
  14121. matchLabels:
  14122. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14123. type: object
  14124. additionalProperties:
  14125. type: string
  14126. namespaceSelector:
  14127. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  14128. type: object
  14129. properties:
  14130. matchExpressions:
  14131. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14132. type: array
  14133. items:
  14134. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14135. type: object
  14136. required:
  14137. - key
  14138. - operator
  14139. properties:
  14140. key:
  14141. description: key is the label key that the selector applies to.
  14142. type: string
  14143. operator:
  14144. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14145. type: string
  14146. values:
  14147. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14148. type: array
  14149. items:
  14150. type: string
  14151. matchLabels:
  14152. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14153. type: object
  14154. additionalProperties:
  14155. type: string
  14156. namespaces:
  14157. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  14158. type: array
  14159. items:
  14160. type: string
  14161. topologyKey:
  14162. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  14163. type: string
  14164. weight:
  14165. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  14166. type: integer
  14167. format: int32
  14168. requiredDuringSchedulingIgnoredDuringExecution:
  14169. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  14170. type: array
  14171. items:
  14172. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  14173. type: object
  14174. required:
  14175. - topologyKey
  14176. properties:
  14177. labelSelector:
  14178. description: A label query over a set of resources, in this case pods.
  14179. type: object
  14180. properties:
  14181. matchExpressions:
  14182. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14183. type: array
  14184. items:
  14185. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14186. type: object
  14187. required:
  14188. - key
  14189. - operator
  14190. properties:
  14191. key:
  14192. description: key is the label key that the selector applies to.
  14193. type: string
  14194. operator:
  14195. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14196. type: string
  14197. values:
  14198. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14199. type: array
  14200. items:
  14201. type: string
  14202. matchLabels:
  14203. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14204. type: object
  14205. additionalProperties:
  14206. type: string
  14207. namespaceSelector:
  14208. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  14209. type: object
  14210. properties:
  14211. matchExpressions:
  14212. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  14213. type: array
  14214. items:
  14215. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14216. type: object
  14217. required:
  14218. - key
  14219. - operator
  14220. properties:
  14221. key:
  14222. description: key is the label key that the selector applies to.
  14223. type: string
  14224. operator:
  14225. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  14226. type: string
  14227. values:
  14228. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  14229. type: array
  14230. items:
  14231. type: string
  14232. matchLabels:
  14233. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  14234. type: object
  14235. additionalProperties:
  14236. type: string
  14237. namespaces:
  14238. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  14239. type: array
  14240. items:
  14241. type: string
  14242. topologyKey:
  14243. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  14244. type: string
  14245. nodeSelector:
  14246. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  14247. type: object
  14248. additionalProperties:
  14249. type: string
  14250. priorityClassName:
  14251. description: If specified, the pod's priorityClassName.
  14252. type: string
  14253. serviceAccountName:
  14254. description: If specified, the pod's service account
  14255. type: string
  14256. tolerations:
  14257. description: If specified, the pod's tolerations.
  14258. type: array
  14259. items:
  14260. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  14261. type: object
  14262. properties:
  14263. effect:
  14264. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  14265. type: string
  14266. key:
  14267. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  14268. type: string
  14269. operator:
  14270. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  14271. type: string
  14272. tolerationSeconds:
  14273. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  14274. type: integer
  14275. format: int64
  14276. value:
  14277. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  14278. type: string
  14279. serviceType:
  14280. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  14281. type: string
  14282. selector:
  14283. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  14284. type: object
  14285. properties:
  14286. dnsNames:
  14287. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  14288. type: array
  14289. items:
  14290. type: string
  14291. dnsZones:
  14292. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  14293. type: array
  14294. items:
  14295. type: string
  14296. matchLabels:
  14297. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  14298. type: object
  14299. additionalProperties:
  14300. type: string
  14301. ca:
  14302. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  14303. type: object
  14304. required:
  14305. - secretName
  14306. properties:
  14307. crlDistributionPoints:
  14308. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  14309. type: array
  14310. items:
  14311. type: string
  14312. ocspServers:
  14313. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  14314. type: array
  14315. items:
  14316. type: string
  14317. secretName:
  14318. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  14319. type: string
  14320. selfSigned:
  14321. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  14322. type: object
  14323. properties:
  14324. crlDistributionPoints:
  14325. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  14326. type: array
  14327. items:
  14328. type: string
  14329. vault:
  14330. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  14331. type: object
  14332. required:
  14333. - auth
  14334. - path
  14335. - server
  14336. properties:
  14337. auth:
  14338. description: Auth configures how cert-manager authenticates with the Vault server.
  14339. type: object
  14340. properties:
  14341. appRole:
  14342. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  14343. type: object
  14344. required:
  14345. - path
  14346. - roleId
  14347. - secretRef
  14348. properties:
  14349. path:
  14350. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  14351. type: string
  14352. roleId:
  14353. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  14354. type: string
  14355. secretRef:
  14356. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  14357. type: object
  14358. required:
  14359. - name
  14360. properties:
  14361. key:
  14362. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14363. type: string
  14364. name:
  14365. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14366. type: string
  14367. kubernetes:
  14368. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  14369. type: object
  14370. required:
  14371. - role
  14372. - secretRef
  14373. properties:
  14374. mountPath:
  14375. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  14376. type: string
  14377. role:
  14378. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  14379. type: string
  14380. secretRef:
  14381. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  14382. type: object
  14383. required:
  14384. - name
  14385. properties:
  14386. key:
  14387. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14388. type: string
  14389. name:
  14390. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14391. type: string
  14392. tokenSecretRef:
  14393. description: TokenSecretRef authenticates with Vault by presenting a token.
  14394. type: object
  14395. required:
  14396. - name
  14397. properties:
  14398. key:
  14399. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14400. type: string
  14401. name:
  14402. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14403. type: string
  14404. caBundle:
  14405. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  14406. type: string
  14407. format: byte
  14408. namespace:
  14409. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  14410. type: string
  14411. path:
  14412. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  14413. type: string
  14414. server:
  14415. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  14416. type: string
  14417. venafi:
  14418. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  14419. type: object
  14420. required:
  14421. - zone
  14422. properties:
  14423. cloud:
  14424. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  14425. type: object
  14426. required:
  14427. - apiTokenSecretRef
  14428. properties:
  14429. apiTokenSecretRef:
  14430. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  14431. type: object
  14432. required:
  14433. - name
  14434. properties:
  14435. key:
  14436. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14437. type: string
  14438. name:
  14439. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14440. type: string
  14441. url:
  14442. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  14443. type: string
  14444. tpp:
  14445. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  14446. type: object
  14447. required:
  14448. - credentialsRef
  14449. - url
  14450. properties:
  14451. caBundle:
  14452. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  14453. type: string
  14454. format: byte
  14455. credentialsRef:
  14456. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  14457. type: object
  14458. required:
  14459. - name
  14460. properties:
  14461. name:
  14462. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14463. type: string
  14464. url:
  14465. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  14466. type: string
  14467. zone:
  14468. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  14469. type: string
  14470. status:
  14471. description: Status of the Issuer. This is set and managed automatically.
  14472. type: object
  14473. properties:
  14474. acme:
  14475. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  14476. type: object
  14477. properties:
  14478. lastRegisteredEmail:
  14479. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  14480. type: string
  14481. uri:
  14482. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  14483. type: string
  14484. conditions:
  14485. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  14486. type: array
  14487. items:
  14488. description: IssuerCondition contains condition information for an Issuer.
  14489. type: object
  14490. required:
  14491. - status
  14492. - type
  14493. properties:
  14494. lastTransitionTime:
  14495. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  14496. type: string
  14497. format: date-time
  14498. message:
  14499. description: Message is a human readable description of the details of the last transition, complementing reason.
  14500. type: string
  14501. observedGeneration:
  14502. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  14503. type: integer
  14504. format: int64
  14505. reason:
  14506. description: Reason is a brief machine readable explanation for the condition's last transition.
  14507. type: string
  14508. status:
  14509. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  14510. type: string
  14511. enum:
  14512. - "True"
  14513. - "False"
  14514. - Unknown
  14515. type:
  14516. description: Type of the condition, known values are (`Ready`).
  14517. type: string
  14518. served: true
  14519. storage: false
  14520. - name: v1alpha3
  14521. subresources:
  14522. status: {}
  14523. additionalPrinterColumns:
  14524. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  14525. name: Ready
  14526. type: string
  14527. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  14528. name: Status
  14529. priority: 1
  14530. type: string
  14531. - jsonPath: .metadata.creationTimestamp
  14532. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  14533. name: Age
  14534. type: date
  14535. schema:
  14536. openAPIV3Schema:
  14537. description: An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.
  14538. type: object
  14539. properties:
  14540. apiVersion:
  14541. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  14542. type: string
  14543. kind:
  14544. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  14545. type: string
  14546. metadata:
  14547. type: object
  14548. spec:
  14549. description: Desired state of the Issuer resource.
  14550. type: object
  14551. properties:
  14552. acme:
  14553. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  14554. type: object
  14555. required:
  14556. - privateKeySecretRef
  14557. - server
  14558. properties:
  14559. disableAccountKeyGeneration:
  14560. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  14561. type: boolean
  14562. email:
  14563. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  14564. type: string
  14565. enableDurationFeature:
  14566. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  14567. type: boolean
  14568. externalAccountBinding:
  14569. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  14570. type: object
  14571. required:
  14572. - keyID
  14573. - keySecretRef
  14574. properties:
  14575. keyAlgorithm:
  14576. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  14577. type: string
  14578. enum:
  14579. - HS256
  14580. - HS384
  14581. - HS512
  14582. keyID:
  14583. description: keyID is the ID of the CA key that the External Account is bound to.
  14584. type: string
  14585. keySecretRef:
  14586. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  14587. type: object
  14588. required:
  14589. - name
  14590. properties:
  14591. key:
  14592. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14593. type: string
  14594. name:
  14595. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14596. type: string
  14597. preferredChain:
  14598. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  14599. type: string
  14600. maxLength: 64
  14601. privateKeySecretRef:
  14602. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  14603. type: object
  14604. required:
  14605. - name
  14606. properties:
  14607. key:
  14608. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14609. type: string
  14610. name:
  14611. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14612. type: string
  14613. server:
  14614. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  14615. type: string
  14616. skipTLSVerify:
  14617. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  14618. type: boolean
  14619. solvers:
  14620. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  14621. type: array
  14622. items:
  14623. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  14624. type: object
  14625. properties:
  14626. dns01:
  14627. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  14628. type: object
  14629. properties:
  14630. acmedns:
  14631. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  14632. type: object
  14633. required:
  14634. - accountSecretRef
  14635. - host
  14636. properties:
  14637. accountSecretRef:
  14638. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14639. type: object
  14640. required:
  14641. - name
  14642. properties:
  14643. key:
  14644. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14645. type: string
  14646. name:
  14647. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14648. type: string
  14649. host:
  14650. type: string
  14651. akamai:
  14652. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  14653. type: object
  14654. required:
  14655. - accessTokenSecretRef
  14656. - clientSecretSecretRef
  14657. - clientTokenSecretRef
  14658. - serviceConsumerDomain
  14659. properties:
  14660. accessTokenSecretRef:
  14661. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14662. type: object
  14663. required:
  14664. - name
  14665. properties:
  14666. key:
  14667. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14668. type: string
  14669. name:
  14670. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14671. type: string
  14672. clientSecretSecretRef:
  14673. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14674. type: object
  14675. required:
  14676. - name
  14677. properties:
  14678. key:
  14679. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14680. type: string
  14681. name:
  14682. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14683. type: string
  14684. clientTokenSecretRef:
  14685. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14686. type: object
  14687. required:
  14688. - name
  14689. properties:
  14690. key:
  14691. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14692. type: string
  14693. name:
  14694. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14695. type: string
  14696. serviceConsumerDomain:
  14697. type: string
  14698. azuredns:
  14699. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  14700. type: object
  14701. required:
  14702. - resourceGroupName
  14703. - subscriptionID
  14704. properties:
  14705. clientID:
  14706. description: if both this and ClientSecret are left unset MSI will be used
  14707. type: string
  14708. clientSecretSecretRef:
  14709. description: if both this and ClientID are left unset MSI will be used
  14710. type: object
  14711. required:
  14712. - name
  14713. properties:
  14714. key:
  14715. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14716. type: string
  14717. name:
  14718. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14719. type: string
  14720. environment:
  14721. type: string
  14722. enum:
  14723. - AzurePublicCloud
  14724. - AzureChinaCloud
  14725. - AzureGermanCloud
  14726. - AzureUSGovernmentCloud
  14727. hostedZoneName:
  14728. type: string
  14729. resourceGroupName:
  14730. type: string
  14731. subscriptionID:
  14732. type: string
  14733. tenantID:
  14734. description: when specifying ClientID and ClientSecret then this field is also needed
  14735. type: string
  14736. clouddns:
  14737. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  14738. type: object
  14739. required:
  14740. - project
  14741. properties:
  14742. hostedZoneName:
  14743. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  14744. type: string
  14745. project:
  14746. type: string
  14747. serviceAccountSecretRef:
  14748. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14749. type: object
  14750. required:
  14751. - name
  14752. properties:
  14753. key:
  14754. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14755. type: string
  14756. name:
  14757. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14758. type: string
  14759. cloudflare:
  14760. description: Use the Cloudflare API to manage DNS01 challenge records.
  14761. type: object
  14762. properties:
  14763. apiKeySecretRef:
  14764. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  14765. type: object
  14766. required:
  14767. - name
  14768. properties:
  14769. key:
  14770. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14771. type: string
  14772. name:
  14773. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14774. type: string
  14775. apiTokenSecretRef:
  14776. description: API token used to authenticate with Cloudflare.
  14777. type: object
  14778. required:
  14779. - name
  14780. properties:
  14781. key:
  14782. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14783. type: string
  14784. name:
  14785. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14786. type: string
  14787. email:
  14788. description: Email of the account, only required when using API key based authentication.
  14789. type: string
  14790. cnameStrategy:
  14791. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  14792. type: string
  14793. enum:
  14794. - None
  14795. - Follow
  14796. digitalocean:
  14797. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  14798. type: object
  14799. required:
  14800. - tokenSecretRef
  14801. properties:
  14802. tokenSecretRef:
  14803. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  14804. type: object
  14805. required:
  14806. - name
  14807. properties:
  14808. key:
  14809. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14810. type: string
  14811. name:
  14812. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14813. type: string
  14814. rfc2136:
  14815. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  14816. type: object
  14817. required:
  14818. - nameserver
  14819. properties:
  14820. nameserver:
  14821. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  14822. type: string
  14823. tsigAlgorithm:
  14824. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  14825. type: string
  14826. tsigKeyName:
  14827. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  14828. type: string
  14829. tsigSecretSecretRef:
  14830. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  14831. type: object
  14832. required:
  14833. - name
  14834. properties:
  14835. key:
  14836. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14837. type: string
  14838. name:
  14839. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14840. type: string
  14841. route53:
  14842. description: Use the AWS Route53 API to manage DNS01 challenge records.
  14843. type: object
  14844. required:
  14845. - region
  14846. properties:
  14847. accessKeyID:
  14848. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  14849. type: string
  14850. hostedZoneID:
  14851. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  14852. type: string
  14853. region:
  14854. description: Always set the region when using AccessKeyID and SecretAccessKey
  14855. type: string
  14856. role:
  14857. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  14858. type: string
  14859. secretAccessKeySecretRef:
  14860. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  14861. type: object
  14862. required:
  14863. - name
  14864. properties:
  14865. key:
  14866. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  14867. type: string
  14868. name:
  14869. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  14870. type: string
  14871. webhook:
  14872. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  14873. type: object
  14874. required:
  14875. - groupName
  14876. - solverName
  14877. properties:
  14878. config:
  14879. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  14880. x-kubernetes-preserve-unknown-fields: true
  14881. groupName:
  14882. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  14883. type: string
  14884. solverName:
  14885. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  14886. type: string
  14887. http01:
  14888. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  14889. type: object
  14890. properties:
  14891. gatewayHTTPRoute:
  14892. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  14893. type: object
  14894. properties:
  14895. labels:
  14896. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  14897. type: object
  14898. additionalProperties:
  14899. type: string
  14900. serviceType:
  14901. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  14902. type: string
  14903. ingress:
  14904. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  14905. type: object
  14906. properties:
  14907. class:
  14908. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  14909. type: string
  14910. ingressTemplate:
  14911. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
  14912. type: object
  14913. properties:
  14914. metadata:
  14915. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  14916. type: object
  14917. properties:
  14918. annotations:
  14919. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  14920. type: object
  14921. additionalProperties:
  14922. type: string
  14923. labels:
  14924. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  14925. type: object
  14926. additionalProperties:
  14927. type: string
  14928. name:
  14929. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  14930. type: string
  14931. podTemplate:
  14932. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  14933. type: object
  14934. properties:
  14935. metadata:
  14936. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  14937. type: object
  14938. properties:
  14939. annotations:
  14940. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  14941. type: object
  14942. additionalProperties:
  14943. type: string
  14944. labels:
  14945. description: Labels that should be added to the created ACME HTTP01 solver pods.
  14946. type: object
  14947. additionalProperties:
  14948. type: string
  14949. spec:
  14950. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  14951. type: object
  14952. properties:
  14953. affinity:
  14954. description: If specified, the pod's scheduling constraints
  14955. type: object
  14956. properties:
  14957. nodeAffinity:
  14958. description: Describes node affinity scheduling rules for the pod.
  14959. type: object
  14960. properties:
  14961. preferredDuringSchedulingIgnoredDuringExecution:
  14962. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  14963. type: array
  14964. items:
  14965. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  14966. type: object
  14967. required:
  14968. - preference
  14969. - weight
  14970. properties:
  14971. preference:
  14972. description: A node selector term, associated with the corresponding weight.
  14973. type: object
  14974. properties:
  14975. matchExpressions:
  14976. description: A list of node selector requirements by node's labels.
  14977. type: array
  14978. items:
  14979. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  14980. type: object
  14981. required:
  14982. - key
  14983. - operator
  14984. properties:
  14985. key:
  14986. description: The label key that the selector applies to.
  14987. type: string
  14988. operator:
  14989. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  14990. type: string
  14991. values:
  14992. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  14993. type: array
  14994. items:
  14995. type: string
  14996. matchFields:
  14997. description: A list of node selector requirements by node's fields.
  14998. type: array
  14999. items:
  15000. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15001. type: object
  15002. required:
  15003. - key
  15004. - operator
  15005. properties:
  15006. key:
  15007. description: The label key that the selector applies to.
  15008. type: string
  15009. operator:
  15010. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  15011. type: string
  15012. values:
  15013. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  15014. type: array
  15015. items:
  15016. type: string
  15017. weight:
  15018. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  15019. type: integer
  15020. format: int32
  15021. requiredDuringSchedulingIgnoredDuringExecution:
  15022. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  15023. type: object
  15024. required:
  15025. - nodeSelectorTerms
  15026. properties:
  15027. nodeSelectorTerms:
  15028. description: Required. A list of node selector terms. The terms are ORed.
  15029. type: array
  15030. items:
  15031. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  15032. type: object
  15033. properties:
  15034. matchExpressions:
  15035. description: A list of node selector requirements by node's labels.
  15036. type: array
  15037. items:
  15038. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15039. type: object
  15040. required:
  15041. - key
  15042. - operator
  15043. properties:
  15044. key:
  15045. description: The label key that the selector applies to.
  15046. type: string
  15047. operator:
  15048. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  15049. type: string
  15050. values:
  15051. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  15052. type: array
  15053. items:
  15054. type: string
  15055. matchFields:
  15056. description: A list of node selector requirements by node's fields.
  15057. type: array
  15058. items:
  15059. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15060. type: object
  15061. required:
  15062. - key
  15063. - operator
  15064. properties:
  15065. key:
  15066. description: The label key that the selector applies to.
  15067. type: string
  15068. operator:
  15069. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  15070. type: string
  15071. values:
  15072. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  15073. type: array
  15074. items:
  15075. type: string
  15076. podAffinity:
  15077. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  15078. type: object
  15079. properties:
  15080. preferredDuringSchedulingIgnoredDuringExecution:
  15081. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  15082. type: array
  15083. items:
  15084. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  15085. type: object
  15086. required:
  15087. - podAffinityTerm
  15088. - weight
  15089. properties:
  15090. podAffinityTerm:
  15091. description: Required. A pod affinity term, associated with the corresponding weight.
  15092. type: object
  15093. required:
  15094. - topologyKey
  15095. properties:
  15096. labelSelector:
  15097. description: A label query over a set of resources, in this case pods.
  15098. type: object
  15099. properties:
  15100. matchExpressions:
  15101. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15102. type: array
  15103. items:
  15104. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15105. type: object
  15106. required:
  15107. - key
  15108. - operator
  15109. properties:
  15110. key:
  15111. description: key is the label key that the selector applies to.
  15112. type: string
  15113. operator:
  15114. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15115. type: string
  15116. values:
  15117. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15118. type: array
  15119. items:
  15120. type: string
  15121. matchLabels:
  15122. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15123. type: object
  15124. additionalProperties:
  15125. type: string
  15126. namespaceSelector:
  15127. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  15128. type: object
  15129. properties:
  15130. matchExpressions:
  15131. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15132. type: array
  15133. items:
  15134. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15135. type: object
  15136. required:
  15137. - key
  15138. - operator
  15139. properties:
  15140. key:
  15141. description: key is the label key that the selector applies to.
  15142. type: string
  15143. operator:
  15144. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15145. type: string
  15146. values:
  15147. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15148. type: array
  15149. items:
  15150. type: string
  15151. matchLabels:
  15152. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15153. type: object
  15154. additionalProperties:
  15155. type: string
  15156. namespaces:
  15157. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  15158. type: array
  15159. items:
  15160. type: string
  15161. topologyKey:
  15162. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  15163. type: string
  15164. weight:
  15165. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  15166. type: integer
  15167. format: int32
  15168. requiredDuringSchedulingIgnoredDuringExecution:
  15169. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  15170. type: array
  15171. items:
  15172. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  15173. type: object
  15174. required:
  15175. - topologyKey
  15176. properties:
  15177. labelSelector:
  15178. description: A label query over a set of resources, in this case pods.
  15179. type: object
  15180. properties:
  15181. matchExpressions:
  15182. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15183. type: array
  15184. items:
  15185. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15186. type: object
  15187. required:
  15188. - key
  15189. - operator
  15190. properties:
  15191. key:
  15192. description: key is the label key that the selector applies to.
  15193. type: string
  15194. operator:
  15195. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15196. type: string
  15197. values:
  15198. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15199. type: array
  15200. items:
  15201. type: string
  15202. matchLabels:
  15203. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15204. type: object
  15205. additionalProperties:
  15206. type: string
  15207. namespaceSelector:
  15208. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  15209. type: object
  15210. properties:
  15211. matchExpressions:
  15212. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15213. type: array
  15214. items:
  15215. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15216. type: object
  15217. required:
  15218. - key
  15219. - operator
  15220. properties:
  15221. key:
  15222. description: key is the label key that the selector applies to.
  15223. type: string
  15224. operator:
  15225. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15226. type: string
  15227. values:
  15228. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15229. type: array
  15230. items:
  15231. type: string
  15232. matchLabels:
  15233. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15234. type: object
  15235. additionalProperties:
  15236. type: string
  15237. namespaces:
  15238. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  15239. type: array
  15240. items:
  15241. type: string
  15242. topologyKey:
  15243. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  15244. type: string
  15245. podAntiAffinity:
  15246. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  15247. type: object
  15248. properties:
  15249. preferredDuringSchedulingIgnoredDuringExecution:
  15250. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  15251. type: array
  15252. items:
  15253. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  15254. type: object
  15255. required:
  15256. - podAffinityTerm
  15257. - weight
  15258. properties:
  15259. podAffinityTerm:
  15260. description: Required. A pod affinity term, associated with the corresponding weight.
  15261. type: object
  15262. required:
  15263. - topologyKey
  15264. properties:
  15265. labelSelector:
  15266. description: A label query over a set of resources, in this case pods.
  15267. type: object
  15268. properties:
  15269. matchExpressions:
  15270. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15271. type: array
  15272. items:
  15273. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15274. type: object
  15275. required:
  15276. - key
  15277. - operator
  15278. properties:
  15279. key:
  15280. description: key is the label key that the selector applies to.
  15281. type: string
  15282. operator:
  15283. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15284. type: string
  15285. values:
  15286. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15287. type: array
  15288. items:
  15289. type: string
  15290. matchLabels:
  15291. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15292. type: object
  15293. additionalProperties:
  15294. type: string
  15295. namespaceSelector:
  15296. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  15297. type: object
  15298. properties:
  15299. matchExpressions:
  15300. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15301. type: array
  15302. items:
  15303. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15304. type: object
  15305. required:
  15306. - key
  15307. - operator
  15308. properties:
  15309. key:
  15310. description: key is the label key that the selector applies to.
  15311. type: string
  15312. operator:
  15313. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15314. type: string
  15315. values:
  15316. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15317. type: array
  15318. items:
  15319. type: string
  15320. matchLabels:
  15321. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15322. type: object
  15323. additionalProperties:
  15324. type: string
  15325. namespaces:
  15326. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  15327. type: array
  15328. items:
  15329. type: string
  15330. topologyKey:
  15331. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  15332. type: string
  15333. weight:
  15334. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  15335. type: integer
  15336. format: int32
  15337. requiredDuringSchedulingIgnoredDuringExecution:
  15338. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  15339. type: array
  15340. items:
  15341. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  15342. type: object
  15343. required:
  15344. - topologyKey
  15345. properties:
  15346. labelSelector:
  15347. description: A label query over a set of resources, in this case pods.
  15348. type: object
  15349. properties:
  15350. matchExpressions:
  15351. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15352. type: array
  15353. items:
  15354. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15355. type: object
  15356. required:
  15357. - key
  15358. - operator
  15359. properties:
  15360. key:
  15361. description: key is the label key that the selector applies to.
  15362. type: string
  15363. operator:
  15364. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15365. type: string
  15366. values:
  15367. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15368. type: array
  15369. items:
  15370. type: string
  15371. matchLabels:
  15372. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15373. type: object
  15374. additionalProperties:
  15375. type: string
  15376. namespaceSelector:
  15377. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  15378. type: object
  15379. properties:
  15380. matchExpressions:
  15381. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  15382. type: array
  15383. items:
  15384. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  15385. type: object
  15386. required:
  15387. - key
  15388. - operator
  15389. properties:
  15390. key:
  15391. description: key is the label key that the selector applies to.
  15392. type: string
  15393. operator:
  15394. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  15395. type: string
  15396. values:
  15397. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  15398. type: array
  15399. items:
  15400. type: string
  15401. matchLabels:
  15402. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  15403. type: object
  15404. additionalProperties:
  15405. type: string
  15406. namespaces:
  15407. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  15408. type: array
  15409. items:
  15410. type: string
  15411. topologyKey:
  15412. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  15413. type: string
  15414. nodeSelector:
  15415. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  15416. type: object
  15417. additionalProperties:
  15418. type: string
  15419. priorityClassName:
  15420. description: If specified, the pod's priorityClassName.
  15421. type: string
  15422. serviceAccountName:
  15423. description: If specified, the pod's service account
  15424. type: string
  15425. tolerations:
  15426. description: If specified, the pod's tolerations.
  15427. type: array
  15428. items:
  15429. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  15430. type: object
  15431. properties:
  15432. effect:
  15433. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  15434. type: string
  15435. key:
  15436. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  15437. type: string
  15438. operator:
  15439. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  15440. type: string
  15441. tolerationSeconds:
  15442. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  15443. type: integer
  15444. format: int64
  15445. value:
  15446. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  15447. type: string
  15448. serviceType:
  15449. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  15450. type: string
  15451. selector:
  15452. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  15453. type: object
  15454. properties:
  15455. dnsNames:
  15456. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  15457. type: array
  15458. items:
  15459. type: string
  15460. dnsZones:
  15461. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  15462. type: array
  15463. items:
  15464. type: string
  15465. matchLabels:
  15466. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  15467. type: object
  15468. additionalProperties:
  15469. type: string
  15470. ca:
  15471. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  15472. type: object
  15473. required:
  15474. - secretName
  15475. properties:
  15476. crlDistributionPoints:
  15477. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  15478. type: array
  15479. items:
  15480. type: string
  15481. ocspServers:
  15482. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  15483. type: array
  15484. items:
  15485. type: string
  15486. secretName:
  15487. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  15488. type: string
  15489. selfSigned:
  15490. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  15491. type: object
  15492. properties:
  15493. crlDistributionPoints:
  15494. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  15495. type: array
  15496. items:
  15497. type: string
  15498. vault:
  15499. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  15500. type: object
  15501. required:
  15502. - auth
  15503. - path
  15504. - server
  15505. properties:
  15506. auth:
  15507. description: Auth configures how cert-manager authenticates with the Vault server.
  15508. type: object
  15509. properties:
  15510. appRole:
  15511. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  15512. type: object
  15513. required:
  15514. - path
  15515. - roleId
  15516. - secretRef
  15517. properties:
  15518. path:
  15519. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  15520. type: string
  15521. roleId:
  15522. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  15523. type: string
  15524. secretRef:
  15525. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  15526. type: object
  15527. required:
  15528. - name
  15529. properties:
  15530. key:
  15531. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15532. type: string
  15533. name:
  15534. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15535. type: string
  15536. kubernetes:
  15537. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  15538. type: object
  15539. required:
  15540. - role
  15541. - secretRef
  15542. properties:
  15543. mountPath:
  15544. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  15545. type: string
  15546. role:
  15547. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  15548. type: string
  15549. secretRef:
  15550. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  15551. type: object
  15552. required:
  15553. - name
  15554. properties:
  15555. key:
  15556. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15557. type: string
  15558. name:
  15559. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15560. type: string
  15561. tokenSecretRef:
  15562. description: TokenSecretRef authenticates with Vault by presenting a token.
  15563. type: object
  15564. required:
  15565. - name
  15566. properties:
  15567. key:
  15568. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15569. type: string
  15570. name:
  15571. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15572. type: string
  15573. caBundle:
  15574. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  15575. type: string
  15576. format: byte
  15577. namespace:
  15578. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  15579. type: string
  15580. path:
  15581. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  15582. type: string
  15583. server:
  15584. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  15585. type: string
  15586. venafi:
  15587. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  15588. type: object
  15589. required:
  15590. - zone
  15591. properties:
  15592. cloud:
  15593. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  15594. type: object
  15595. required:
  15596. - apiTokenSecretRef
  15597. properties:
  15598. apiTokenSecretRef:
  15599. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  15600. type: object
  15601. required:
  15602. - name
  15603. properties:
  15604. key:
  15605. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15606. type: string
  15607. name:
  15608. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15609. type: string
  15610. url:
  15611. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  15612. type: string
  15613. tpp:
  15614. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  15615. type: object
  15616. required:
  15617. - credentialsRef
  15618. - url
  15619. properties:
  15620. caBundle:
  15621. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  15622. type: string
  15623. format: byte
  15624. credentialsRef:
  15625. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  15626. type: object
  15627. required:
  15628. - name
  15629. properties:
  15630. name:
  15631. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15632. type: string
  15633. url:
  15634. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  15635. type: string
  15636. zone:
  15637. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  15638. type: string
  15639. status:
  15640. description: Status of the Issuer. This is set and managed automatically.
  15641. type: object
  15642. properties:
  15643. acme:
  15644. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  15645. type: object
  15646. properties:
  15647. lastRegisteredEmail:
  15648. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  15649. type: string
  15650. uri:
  15651. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  15652. type: string
  15653. conditions:
  15654. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  15655. type: array
  15656. items:
  15657. description: IssuerCondition contains condition information for an Issuer.
  15658. type: object
  15659. required:
  15660. - status
  15661. - type
  15662. properties:
  15663. lastTransitionTime:
  15664. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  15665. type: string
  15666. format: date-time
  15667. message:
  15668. description: Message is a human readable description of the details of the last transition, complementing reason.
  15669. type: string
  15670. observedGeneration:
  15671. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  15672. type: integer
  15673. format: int64
  15674. reason:
  15675. description: Reason is a brief machine readable explanation for the condition's last transition.
  15676. type: string
  15677. status:
  15678. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  15679. type: string
  15680. enum:
  15681. - "True"
  15682. - "False"
  15683. - Unknown
  15684. type:
  15685. description: Type of the condition, known values are (`Ready`).
  15686. type: string
  15687. served: true
  15688. storage: false
  15689. - name: v1beta1
  15690. subresources:
  15691. status: {}
  15692. additionalPrinterColumns:
  15693. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  15694. name: Ready
  15695. type: string
  15696. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  15697. name: Status
  15698. priority: 1
  15699. type: string
  15700. - jsonPath: .metadata.creationTimestamp
  15701. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  15702. name: Age
  15703. type: date
  15704. schema:
  15705. openAPIV3Schema:
  15706. description: An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.
  15707. type: object
  15708. required:
  15709. - spec
  15710. properties:
  15711. apiVersion:
  15712. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  15713. type: string
  15714. kind:
  15715. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  15716. type: string
  15717. metadata:
  15718. type: object
  15719. spec:
  15720. description: Desired state of the Issuer resource.
  15721. type: object
  15722. properties:
  15723. acme:
  15724. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  15725. type: object
  15726. required:
  15727. - privateKeySecretRef
  15728. - server
  15729. properties:
  15730. disableAccountKeyGeneration:
  15731. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  15732. type: boolean
  15733. email:
  15734. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  15735. type: string
  15736. enableDurationFeature:
  15737. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  15738. type: boolean
  15739. externalAccountBinding:
  15740. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  15741. type: object
  15742. required:
  15743. - keyID
  15744. - keySecretRef
  15745. properties:
  15746. keyAlgorithm:
  15747. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  15748. type: string
  15749. enum:
  15750. - HS256
  15751. - HS384
  15752. - HS512
  15753. keyID:
  15754. description: keyID is the ID of the CA key that the External Account is bound to.
  15755. type: string
  15756. keySecretRef:
  15757. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  15758. type: object
  15759. required:
  15760. - name
  15761. properties:
  15762. key:
  15763. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15764. type: string
  15765. name:
  15766. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15767. type: string
  15768. preferredChain:
  15769. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  15770. type: string
  15771. maxLength: 64
  15772. privateKeySecretRef:
  15773. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  15774. type: object
  15775. required:
  15776. - name
  15777. properties:
  15778. key:
  15779. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15780. type: string
  15781. name:
  15782. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15783. type: string
  15784. server:
  15785. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  15786. type: string
  15787. skipTLSVerify:
  15788. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  15789. type: boolean
  15790. solvers:
  15791. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  15792. type: array
  15793. items:
  15794. description: Configures an issuer to solve challenges using the specified options. Only one of HTTP01 or DNS01 may be provided.
  15795. type: object
  15796. properties:
  15797. dns01:
  15798. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  15799. type: object
  15800. properties:
  15801. acmeDNS:
  15802. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  15803. type: object
  15804. required:
  15805. - accountSecretRef
  15806. - host
  15807. properties:
  15808. accountSecretRef:
  15809. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15810. type: object
  15811. required:
  15812. - name
  15813. properties:
  15814. key:
  15815. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15816. type: string
  15817. name:
  15818. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15819. type: string
  15820. host:
  15821. type: string
  15822. akamai:
  15823. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  15824. type: object
  15825. required:
  15826. - accessTokenSecretRef
  15827. - clientSecretSecretRef
  15828. - clientTokenSecretRef
  15829. - serviceConsumerDomain
  15830. properties:
  15831. accessTokenSecretRef:
  15832. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15833. type: object
  15834. required:
  15835. - name
  15836. properties:
  15837. key:
  15838. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15839. type: string
  15840. name:
  15841. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15842. type: string
  15843. clientSecretSecretRef:
  15844. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15845. type: object
  15846. required:
  15847. - name
  15848. properties:
  15849. key:
  15850. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15851. type: string
  15852. name:
  15853. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15854. type: string
  15855. clientTokenSecretRef:
  15856. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15857. type: object
  15858. required:
  15859. - name
  15860. properties:
  15861. key:
  15862. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15863. type: string
  15864. name:
  15865. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15866. type: string
  15867. serviceConsumerDomain:
  15868. type: string
  15869. azureDNS:
  15870. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  15871. type: object
  15872. required:
  15873. - resourceGroupName
  15874. - subscriptionID
  15875. properties:
  15876. clientID:
  15877. description: if both this and ClientSecret are left unset MSI will be used
  15878. type: string
  15879. clientSecretSecretRef:
  15880. description: if both this and ClientID are left unset MSI will be used
  15881. type: object
  15882. required:
  15883. - name
  15884. properties:
  15885. key:
  15886. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15887. type: string
  15888. name:
  15889. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15890. type: string
  15891. environment:
  15892. type: string
  15893. enum:
  15894. - AzurePublicCloud
  15895. - AzureChinaCloud
  15896. - AzureGermanCloud
  15897. - AzureUSGovernmentCloud
  15898. hostedZoneName:
  15899. type: string
  15900. resourceGroupName:
  15901. type: string
  15902. subscriptionID:
  15903. type: string
  15904. tenantID:
  15905. description: when specifying ClientID and ClientSecret then this field is also needed
  15906. type: string
  15907. cloudDNS:
  15908. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  15909. type: object
  15910. required:
  15911. - project
  15912. properties:
  15913. hostedZoneName:
  15914. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  15915. type: string
  15916. project:
  15917. type: string
  15918. serviceAccountSecretRef:
  15919. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15920. type: object
  15921. required:
  15922. - name
  15923. properties:
  15924. key:
  15925. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15926. type: string
  15927. name:
  15928. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15929. type: string
  15930. cloudflare:
  15931. description: Use the Cloudflare API to manage DNS01 challenge records.
  15932. type: object
  15933. properties:
  15934. apiKeySecretRef:
  15935. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  15936. type: object
  15937. required:
  15938. - name
  15939. properties:
  15940. key:
  15941. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15942. type: string
  15943. name:
  15944. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15945. type: string
  15946. apiTokenSecretRef:
  15947. description: API token used to authenticate with Cloudflare.
  15948. type: object
  15949. required:
  15950. - name
  15951. properties:
  15952. key:
  15953. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15954. type: string
  15955. name:
  15956. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15957. type: string
  15958. email:
  15959. description: Email of the account, only required when using API key based authentication.
  15960. type: string
  15961. cnameStrategy:
  15962. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  15963. type: string
  15964. enum:
  15965. - None
  15966. - Follow
  15967. digitalocean:
  15968. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  15969. type: object
  15970. required:
  15971. - tokenSecretRef
  15972. properties:
  15973. tokenSecretRef:
  15974. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  15975. type: object
  15976. required:
  15977. - name
  15978. properties:
  15979. key:
  15980. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  15981. type: string
  15982. name:
  15983. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  15984. type: string
  15985. rfc2136:
  15986. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  15987. type: object
  15988. required:
  15989. - nameserver
  15990. properties:
  15991. nameserver:
  15992. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  15993. type: string
  15994. tsigAlgorithm:
  15995. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  15996. type: string
  15997. tsigKeyName:
  15998. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  15999. type: string
  16000. tsigSecretSecretRef:
  16001. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  16002. type: object
  16003. required:
  16004. - name
  16005. properties:
  16006. key:
  16007. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16008. type: string
  16009. name:
  16010. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16011. type: string
  16012. route53:
  16013. description: Use the AWS Route53 API to manage DNS01 challenge records.
  16014. type: object
  16015. required:
  16016. - region
  16017. properties:
  16018. accessKeyID:
  16019. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  16020. type: string
  16021. hostedZoneID:
  16022. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  16023. type: string
  16024. region:
  16025. description: Always set the region when using AccessKeyID and SecretAccessKey
  16026. type: string
  16027. role:
  16028. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  16029. type: string
  16030. secretAccessKeySecretRef:
  16031. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  16032. type: object
  16033. required:
  16034. - name
  16035. properties:
  16036. key:
  16037. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16038. type: string
  16039. name:
  16040. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16041. type: string
  16042. webhook:
  16043. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  16044. type: object
  16045. required:
  16046. - groupName
  16047. - solverName
  16048. properties:
  16049. config:
  16050. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  16051. x-kubernetes-preserve-unknown-fields: true
  16052. groupName:
  16053. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  16054. type: string
  16055. solverName:
  16056. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  16057. type: string
  16058. http01:
  16059. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  16060. type: object
  16061. properties:
  16062. gatewayHTTPRoute:
  16063. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  16064. type: object
  16065. properties:
  16066. labels:
  16067. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  16068. type: object
  16069. additionalProperties:
  16070. type: string
  16071. serviceType:
  16072. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  16073. type: string
  16074. ingress:
  16075. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  16076. type: object
  16077. properties:
  16078. class:
  16079. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  16080. type: string
  16081. ingressTemplate:
  16082. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  16083. type: object
  16084. properties:
  16085. metadata:
  16086. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  16087. type: object
  16088. properties:
  16089. annotations:
  16090. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  16091. type: object
  16092. additionalProperties:
  16093. type: string
  16094. labels:
  16095. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  16096. type: object
  16097. additionalProperties:
  16098. type: string
  16099. name:
  16100. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  16101. type: string
  16102. podTemplate:
  16103. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
  16104. type: object
  16105. properties:
  16106. metadata:
  16107. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  16108. type: object
  16109. properties:
  16110. annotations:
  16111. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  16112. type: object
  16113. additionalProperties:
  16114. type: string
  16115. labels:
  16116. description: Labels that should be added to the created ACME HTTP01 solver pods.
  16117. type: object
  16118. additionalProperties:
  16119. type: string
  16120. spec:
  16121. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  16122. type: object
  16123. properties:
  16124. affinity:
  16125. description: If specified, the pod's scheduling constraints
  16126. type: object
  16127. properties:
  16128. nodeAffinity:
  16129. description: Describes node affinity scheduling rules for the pod.
  16130. type: object
  16131. properties:
  16132. preferredDuringSchedulingIgnoredDuringExecution:
  16133. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  16134. type: array
  16135. items:
  16136. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  16137. type: object
  16138. required:
  16139. - preference
  16140. - weight
  16141. properties:
  16142. preference:
  16143. description: A node selector term, associated with the corresponding weight.
  16144. type: object
  16145. properties:
  16146. matchExpressions:
  16147. description: A list of node selector requirements by node's labels.
  16148. type: array
  16149. items:
  16150. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16151. type: object
  16152. required:
  16153. - key
  16154. - operator
  16155. properties:
  16156. key:
  16157. description: The label key that the selector applies to.
  16158. type: string
  16159. operator:
  16160. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  16161. type: string
  16162. values:
  16163. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  16164. type: array
  16165. items:
  16166. type: string
  16167. matchFields:
  16168. description: A list of node selector requirements by node's fields.
  16169. type: array
  16170. items:
  16171. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16172. type: object
  16173. required:
  16174. - key
  16175. - operator
  16176. properties:
  16177. key:
  16178. description: The label key that the selector applies to.
  16179. type: string
  16180. operator:
  16181. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  16182. type: string
  16183. values:
  16184. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  16185. type: array
  16186. items:
  16187. type: string
  16188. weight:
  16189. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  16190. type: integer
  16191. format: int32
  16192. requiredDuringSchedulingIgnoredDuringExecution:
  16193. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  16194. type: object
  16195. required:
  16196. - nodeSelectorTerms
  16197. properties:
  16198. nodeSelectorTerms:
  16199. description: Required. A list of node selector terms. The terms are ORed.
  16200. type: array
  16201. items:
  16202. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  16203. type: object
  16204. properties:
  16205. matchExpressions:
  16206. description: A list of node selector requirements by node's labels.
  16207. type: array
  16208. items:
  16209. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16210. type: object
  16211. required:
  16212. - key
  16213. - operator
  16214. properties:
  16215. key:
  16216. description: The label key that the selector applies to.
  16217. type: string
  16218. operator:
  16219. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  16220. type: string
  16221. values:
  16222. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  16223. type: array
  16224. items:
  16225. type: string
  16226. matchFields:
  16227. description: A list of node selector requirements by node's fields.
  16228. type: array
  16229. items:
  16230. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16231. type: object
  16232. required:
  16233. - key
  16234. - operator
  16235. properties:
  16236. key:
  16237. description: The label key that the selector applies to.
  16238. type: string
  16239. operator:
  16240. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  16241. type: string
  16242. values:
  16243. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  16244. type: array
  16245. items:
  16246. type: string
  16247. podAffinity:
  16248. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  16249. type: object
  16250. properties:
  16251. preferredDuringSchedulingIgnoredDuringExecution:
  16252. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  16253. type: array
  16254. items:
  16255. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  16256. type: object
  16257. required:
  16258. - podAffinityTerm
  16259. - weight
  16260. properties:
  16261. podAffinityTerm:
  16262. description: Required. A pod affinity term, associated with the corresponding weight.
  16263. type: object
  16264. required:
  16265. - topologyKey
  16266. properties:
  16267. labelSelector:
  16268. description: A label query over a set of resources, in this case pods.
  16269. type: object
  16270. properties:
  16271. matchExpressions:
  16272. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16273. type: array
  16274. items:
  16275. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16276. type: object
  16277. required:
  16278. - key
  16279. - operator
  16280. properties:
  16281. key:
  16282. description: key is the label key that the selector applies to.
  16283. type: string
  16284. operator:
  16285. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16286. type: string
  16287. values:
  16288. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16289. type: array
  16290. items:
  16291. type: string
  16292. matchLabels:
  16293. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16294. type: object
  16295. additionalProperties:
  16296. type: string
  16297. namespaceSelector:
  16298. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  16299. type: object
  16300. properties:
  16301. matchExpressions:
  16302. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16303. type: array
  16304. items:
  16305. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16306. type: object
  16307. required:
  16308. - key
  16309. - operator
  16310. properties:
  16311. key:
  16312. description: key is the label key that the selector applies to.
  16313. type: string
  16314. operator:
  16315. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16316. type: string
  16317. values:
  16318. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16319. type: array
  16320. items:
  16321. type: string
  16322. matchLabels:
  16323. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16324. type: object
  16325. additionalProperties:
  16326. type: string
  16327. namespaces:
  16328. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  16329. type: array
  16330. items:
  16331. type: string
  16332. topologyKey:
  16333. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  16334. type: string
  16335. weight:
  16336. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  16337. type: integer
  16338. format: int32
  16339. requiredDuringSchedulingIgnoredDuringExecution:
  16340. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  16341. type: array
  16342. items:
  16343. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  16344. type: object
  16345. required:
  16346. - topologyKey
  16347. properties:
  16348. labelSelector:
  16349. description: A label query over a set of resources, in this case pods.
  16350. type: object
  16351. properties:
  16352. matchExpressions:
  16353. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16354. type: array
  16355. items:
  16356. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16357. type: object
  16358. required:
  16359. - key
  16360. - operator
  16361. properties:
  16362. key:
  16363. description: key is the label key that the selector applies to.
  16364. type: string
  16365. operator:
  16366. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16367. type: string
  16368. values:
  16369. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16370. type: array
  16371. items:
  16372. type: string
  16373. matchLabels:
  16374. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16375. type: object
  16376. additionalProperties:
  16377. type: string
  16378. namespaceSelector:
  16379. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  16380. type: object
  16381. properties:
  16382. matchExpressions:
  16383. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16384. type: array
  16385. items:
  16386. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16387. type: object
  16388. required:
  16389. - key
  16390. - operator
  16391. properties:
  16392. key:
  16393. description: key is the label key that the selector applies to.
  16394. type: string
  16395. operator:
  16396. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16397. type: string
  16398. values:
  16399. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16400. type: array
  16401. items:
  16402. type: string
  16403. matchLabels:
  16404. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16405. type: object
  16406. additionalProperties:
  16407. type: string
  16408. namespaces:
  16409. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  16410. type: array
  16411. items:
  16412. type: string
  16413. topologyKey:
  16414. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  16415. type: string
  16416. podAntiAffinity:
  16417. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  16418. type: object
  16419. properties:
  16420. preferredDuringSchedulingIgnoredDuringExecution:
  16421. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  16422. type: array
  16423. items:
  16424. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  16425. type: object
  16426. required:
  16427. - podAffinityTerm
  16428. - weight
  16429. properties:
  16430. podAffinityTerm:
  16431. description: Required. A pod affinity term, associated with the corresponding weight.
  16432. type: object
  16433. required:
  16434. - topologyKey
  16435. properties:
  16436. labelSelector:
  16437. description: A label query over a set of resources, in this case pods.
  16438. type: object
  16439. properties:
  16440. matchExpressions:
  16441. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16442. type: array
  16443. items:
  16444. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16445. type: object
  16446. required:
  16447. - key
  16448. - operator
  16449. properties:
  16450. key:
  16451. description: key is the label key that the selector applies to.
  16452. type: string
  16453. operator:
  16454. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16455. type: string
  16456. values:
  16457. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16458. type: array
  16459. items:
  16460. type: string
  16461. matchLabels:
  16462. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16463. type: object
  16464. additionalProperties:
  16465. type: string
  16466. namespaceSelector:
  16467. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  16468. type: object
  16469. properties:
  16470. matchExpressions:
  16471. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16472. type: array
  16473. items:
  16474. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16475. type: object
  16476. required:
  16477. - key
  16478. - operator
  16479. properties:
  16480. key:
  16481. description: key is the label key that the selector applies to.
  16482. type: string
  16483. operator:
  16484. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16485. type: string
  16486. values:
  16487. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16488. type: array
  16489. items:
  16490. type: string
  16491. matchLabels:
  16492. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16493. type: object
  16494. additionalProperties:
  16495. type: string
  16496. namespaces:
  16497. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  16498. type: array
  16499. items:
  16500. type: string
  16501. topologyKey:
  16502. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  16503. type: string
  16504. weight:
  16505. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  16506. type: integer
  16507. format: int32
  16508. requiredDuringSchedulingIgnoredDuringExecution:
  16509. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  16510. type: array
  16511. items:
  16512. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  16513. type: object
  16514. required:
  16515. - topologyKey
  16516. properties:
  16517. labelSelector:
  16518. description: A label query over a set of resources, in this case pods.
  16519. type: object
  16520. properties:
  16521. matchExpressions:
  16522. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16523. type: array
  16524. items:
  16525. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16526. type: object
  16527. required:
  16528. - key
  16529. - operator
  16530. properties:
  16531. key:
  16532. description: key is the label key that the selector applies to.
  16533. type: string
  16534. operator:
  16535. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16536. type: string
  16537. values:
  16538. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16539. type: array
  16540. items:
  16541. type: string
  16542. matchLabels:
  16543. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16544. type: object
  16545. additionalProperties:
  16546. type: string
  16547. namespaceSelector:
  16548. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  16549. type: object
  16550. properties:
  16551. matchExpressions:
  16552. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  16553. type: array
  16554. items:
  16555. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  16556. type: object
  16557. required:
  16558. - key
  16559. - operator
  16560. properties:
  16561. key:
  16562. description: key is the label key that the selector applies to.
  16563. type: string
  16564. operator:
  16565. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  16566. type: string
  16567. values:
  16568. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  16569. type: array
  16570. items:
  16571. type: string
  16572. matchLabels:
  16573. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  16574. type: object
  16575. additionalProperties:
  16576. type: string
  16577. namespaces:
  16578. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  16579. type: array
  16580. items:
  16581. type: string
  16582. topologyKey:
  16583. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  16584. type: string
  16585. nodeSelector:
  16586. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  16587. type: object
  16588. additionalProperties:
  16589. type: string
  16590. priorityClassName:
  16591. description: If specified, the pod's priorityClassName.
  16592. type: string
  16593. serviceAccountName:
  16594. description: If specified, the pod's service account
  16595. type: string
  16596. tolerations:
  16597. description: If specified, the pod's tolerations.
  16598. type: array
  16599. items:
  16600. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  16601. type: object
  16602. properties:
  16603. effect:
  16604. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  16605. type: string
  16606. key:
  16607. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  16608. type: string
  16609. operator:
  16610. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  16611. type: string
  16612. tolerationSeconds:
  16613. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  16614. type: integer
  16615. format: int64
  16616. value:
  16617. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  16618. type: string
  16619. serviceType:
  16620. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  16621. type: string
  16622. selector:
  16623. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  16624. type: object
  16625. properties:
  16626. dnsNames:
  16627. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  16628. type: array
  16629. items:
  16630. type: string
  16631. dnsZones:
  16632. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  16633. type: array
  16634. items:
  16635. type: string
  16636. matchLabels:
  16637. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  16638. type: object
  16639. additionalProperties:
  16640. type: string
  16641. ca:
  16642. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  16643. type: object
  16644. required:
  16645. - secretName
  16646. properties:
  16647. crlDistributionPoints:
  16648. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  16649. type: array
  16650. items:
  16651. type: string
  16652. ocspServers:
  16653. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  16654. type: array
  16655. items:
  16656. type: string
  16657. secretName:
  16658. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  16659. type: string
  16660. selfSigned:
  16661. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  16662. type: object
  16663. properties:
  16664. crlDistributionPoints:
  16665. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  16666. type: array
  16667. items:
  16668. type: string
  16669. vault:
  16670. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  16671. type: object
  16672. required:
  16673. - auth
  16674. - path
  16675. - server
  16676. properties:
  16677. auth:
  16678. description: Auth configures how cert-manager authenticates with the Vault server.
  16679. type: object
  16680. properties:
  16681. appRole:
  16682. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  16683. type: object
  16684. required:
  16685. - path
  16686. - roleId
  16687. - secretRef
  16688. properties:
  16689. path:
  16690. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  16691. type: string
  16692. roleId:
  16693. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  16694. type: string
  16695. secretRef:
  16696. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  16697. type: object
  16698. required:
  16699. - name
  16700. properties:
  16701. key:
  16702. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16703. type: string
  16704. name:
  16705. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16706. type: string
  16707. kubernetes:
  16708. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  16709. type: object
  16710. required:
  16711. - role
  16712. - secretRef
  16713. properties:
  16714. mountPath:
  16715. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  16716. type: string
  16717. role:
  16718. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  16719. type: string
  16720. secretRef:
  16721. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  16722. type: object
  16723. required:
  16724. - name
  16725. properties:
  16726. key:
  16727. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16728. type: string
  16729. name:
  16730. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16731. type: string
  16732. tokenSecretRef:
  16733. description: TokenSecretRef authenticates with Vault by presenting a token.
  16734. type: object
  16735. required:
  16736. - name
  16737. properties:
  16738. key:
  16739. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16740. type: string
  16741. name:
  16742. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16743. type: string
  16744. caBundle:
  16745. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  16746. type: string
  16747. format: byte
  16748. namespace:
  16749. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  16750. type: string
  16751. path:
  16752. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  16753. type: string
  16754. server:
  16755. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  16756. type: string
  16757. venafi:
  16758. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  16759. type: object
  16760. required:
  16761. - zone
  16762. properties:
  16763. cloud:
  16764. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  16765. type: object
  16766. required:
  16767. - apiTokenSecretRef
  16768. properties:
  16769. apiTokenSecretRef:
  16770. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  16771. type: object
  16772. required:
  16773. - name
  16774. properties:
  16775. key:
  16776. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16777. type: string
  16778. name:
  16779. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16780. type: string
  16781. url:
  16782. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  16783. type: string
  16784. tpp:
  16785. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  16786. type: object
  16787. required:
  16788. - credentialsRef
  16789. - url
  16790. properties:
  16791. caBundle:
  16792. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  16793. type: string
  16794. format: byte
  16795. credentialsRef:
  16796. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  16797. type: object
  16798. required:
  16799. - name
  16800. properties:
  16801. name:
  16802. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16803. type: string
  16804. url:
  16805. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  16806. type: string
  16807. zone:
  16808. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  16809. type: string
  16810. status:
  16811. description: Status of the Issuer. This is set and managed automatically.
  16812. type: object
  16813. properties:
  16814. acme:
  16815. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  16816. type: object
  16817. properties:
  16818. lastRegisteredEmail:
  16819. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  16820. type: string
  16821. uri:
  16822. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  16823. type: string
  16824. conditions:
  16825. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  16826. type: array
  16827. items:
  16828. description: IssuerCondition contains condition information for an Issuer.
  16829. type: object
  16830. required:
  16831. - status
  16832. - type
  16833. properties:
  16834. lastTransitionTime:
  16835. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  16836. type: string
  16837. format: date-time
  16838. message:
  16839. description: Message is a human readable description of the details of the last transition, complementing reason.
  16840. type: string
  16841. observedGeneration:
  16842. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  16843. type: integer
  16844. format: int64
  16845. reason:
  16846. description: Reason is a brief machine readable explanation for the condition's last transition.
  16847. type: string
  16848. status:
  16849. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  16850. type: string
  16851. enum:
  16852. - "True"
  16853. - "False"
  16854. - Unknown
  16855. type:
  16856. description: Type of the condition, known values are (`Ready`).
  16857. type: string
  16858. served: true
  16859. storage: false
  16860. - name: v1
  16861. subresources:
  16862. status: {}
  16863. additionalPrinterColumns:
  16864. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  16865. name: Ready
  16866. type: string
  16867. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  16868. name: Status
  16869. priority: 1
  16870. type: string
  16871. - jsonPath: .metadata.creationTimestamp
  16872. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  16873. name: Age
  16874. type: date
  16875. schema:
  16876. openAPIV3Schema:
  16877. description: An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.
  16878. type: object
  16879. required:
  16880. - spec
  16881. properties:
  16882. apiVersion:
  16883. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  16884. type: string
  16885. kind:
  16886. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  16887. type: string
  16888. metadata:
  16889. type: object
  16890. spec:
  16891. description: Desired state of the Issuer resource.
  16892. type: object
  16893. properties:
  16894. acme:
  16895. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  16896. type: object
  16897. required:
  16898. - privateKeySecretRef
  16899. - server
  16900. properties:
  16901. disableAccountKeyGeneration:
  16902. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  16903. type: boolean
  16904. email:
  16905. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  16906. type: string
  16907. enableDurationFeature:
  16908. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  16909. type: boolean
  16910. externalAccountBinding:
  16911. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  16912. type: object
  16913. required:
  16914. - keyID
  16915. - keySecretRef
  16916. properties:
  16917. keyAlgorithm:
  16918. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  16919. type: string
  16920. enum:
  16921. - HS256
  16922. - HS384
  16923. - HS512
  16924. keyID:
  16925. description: keyID is the ID of the CA key that the External Account is bound to.
  16926. type: string
  16927. keySecretRef:
  16928. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  16929. type: object
  16930. required:
  16931. - name
  16932. properties:
  16933. key:
  16934. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16935. type: string
  16936. name:
  16937. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16938. type: string
  16939. preferredChain:
  16940. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  16941. type: string
  16942. maxLength: 64
  16943. privateKeySecretRef:
  16944. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  16945. type: object
  16946. required:
  16947. - name
  16948. properties:
  16949. key:
  16950. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16951. type: string
  16952. name:
  16953. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16954. type: string
  16955. server:
  16956. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  16957. type: string
  16958. skipTLSVerify:
  16959. description: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.
  16960. type: boolean
  16961. solvers:
  16962. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  16963. type: array
  16964. items:
  16965. description: An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of. A selector may be provided to use different solving strategies for different DNS names. Only one of HTTP01 or DNS01 must be provided.
  16966. type: object
  16967. properties:
  16968. dns01:
  16969. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  16970. type: object
  16971. properties:
  16972. acmeDNS:
  16973. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  16974. type: object
  16975. required:
  16976. - accountSecretRef
  16977. - host
  16978. properties:
  16979. accountSecretRef:
  16980. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  16981. type: object
  16982. required:
  16983. - name
  16984. properties:
  16985. key:
  16986. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  16987. type: string
  16988. name:
  16989. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  16990. type: string
  16991. host:
  16992. type: string
  16993. akamai:
  16994. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  16995. type: object
  16996. required:
  16997. - accessTokenSecretRef
  16998. - clientSecretSecretRef
  16999. - clientTokenSecretRef
  17000. - serviceConsumerDomain
  17001. properties:
  17002. accessTokenSecretRef:
  17003. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  17004. type: object
  17005. required:
  17006. - name
  17007. properties:
  17008. key:
  17009. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17010. type: string
  17011. name:
  17012. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17013. type: string
  17014. clientSecretSecretRef:
  17015. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  17016. type: object
  17017. required:
  17018. - name
  17019. properties:
  17020. key:
  17021. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17022. type: string
  17023. name:
  17024. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17025. type: string
  17026. clientTokenSecretRef:
  17027. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  17028. type: object
  17029. required:
  17030. - name
  17031. properties:
  17032. key:
  17033. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17034. type: string
  17035. name:
  17036. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17037. type: string
  17038. serviceConsumerDomain:
  17039. type: string
  17040. azureDNS:
  17041. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  17042. type: object
  17043. required:
  17044. - resourceGroupName
  17045. - subscriptionID
  17046. properties:
  17047. clientID:
  17048. description: if both this and ClientSecret are left unset MSI will be used
  17049. type: string
  17050. clientSecretSecretRef:
  17051. description: if both this and ClientID are left unset MSI will be used
  17052. type: object
  17053. required:
  17054. - name
  17055. properties:
  17056. key:
  17057. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17058. type: string
  17059. name:
  17060. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17061. type: string
  17062. environment:
  17063. type: string
  17064. enum:
  17065. - AzurePublicCloud
  17066. - AzureChinaCloud
  17067. - AzureGermanCloud
  17068. - AzureUSGovernmentCloud
  17069. hostedZoneName:
  17070. type: string
  17071. resourceGroupName:
  17072. type: string
  17073. subscriptionID:
  17074. type: string
  17075. tenantID:
  17076. description: when specifying ClientID and ClientSecret then this field is also needed
  17077. type: string
  17078. cloudDNS:
  17079. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  17080. type: object
  17081. required:
  17082. - project
  17083. properties:
  17084. hostedZoneName:
  17085. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  17086. type: string
  17087. project:
  17088. type: string
  17089. serviceAccountSecretRef:
  17090. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  17091. type: object
  17092. required:
  17093. - name
  17094. properties:
  17095. key:
  17096. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17097. type: string
  17098. name:
  17099. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17100. type: string
  17101. cloudflare:
  17102. description: Use the Cloudflare API to manage DNS01 challenge records.
  17103. type: object
  17104. properties:
  17105. apiKeySecretRef:
  17106. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  17107. type: object
  17108. required:
  17109. - name
  17110. properties:
  17111. key:
  17112. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17113. type: string
  17114. name:
  17115. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17116. type: string
  17117. apiTokenSecretRef:
  17118. description: API token used to authenticate with Cloudflare.
  17119. type: object
  17120. required:
  17121. - name
  17122. properties:
  17123. key:
  17124. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17125. type: string
  17126. name:
  17127. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17128. type: string
  17129. email:
  17130. description: Email of the account, only required when using API key based authentication.
  17131. type: string
  17132. cnameStrategy:
  17133. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  17134. type: string
  17135. enum:
  17136. - None
  17137. - Follow
  17138. digitalocean:
  17139. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  17140. type: object
  17141. required:
  17142. - tokenSecretRef
  17143. properties:
  17144. tokenSecretRef:
  17145. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  17146. type: object
  17147. required:
  17148. - name
  17149. properties:
  17150. key:
  17151. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17152. type: string
  17153. name:
  17154. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17155. type: string
  17156. rfc2136:
  17157. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  17158. type: object
  17159. required:
  17160. - nameserver
  17161. properties:
  17162. nameserver:
  17163. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  17164. type: string
  17165. tsigAlgorithm:
  17166. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  17167. type: string
  17168. tsigKeyName:
  17169. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  17170. type: string
  17171. tsigSecretSecretRef:
  17172. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  17173. type: object
  17174. required:
  17175. - name
  17176. properties:
  17177. key:
  17178. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17179. type: string
  17180. name:
  17181. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17182. type: string
  17183. route53:
  17184. description: Use the AWS Route53 API to manage DNS01 challenge records.
  17185. type: object
  17186. required:
  17187. - region
  17188. properties:
  17189. accessKeyID:
  17190. description: 'The AccessKeyID is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  17191. type: string
  17192. hostedZoneID:
  17193. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  17194. type: string
  17195. region:
  17196. description: Always set the region when using AccessKeyID and SecretAccessKey
  17197. type: string
  17198. role:
  17199. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  17200. type: string
  17201. secretAccessKeySecretRef:
  17202. description: The SecretAccessKey is used for authentication. If not set we fall-back to using env vars, shared credentials file or AWS Instance metadata https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
  17203. type: object
  17204. required:
  17205. - name
  17206. properties:
  17207. key:
  17208. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17209. type: string
  17210. name:
  17211. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17212. type: string
  17213. webhook:
  17214. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  17215. type: object
  17216. required:
  17217. - groupName
  17218. - solverName
  17219. properties:
  17220. config:
  17221. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  17222. x-kubernetes-preserve-unknown-fields: true
  17223. groupName:
  17224. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  17225. type: string
  17226. solverName:
  17227. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  17228. type: string
  17229. http01:
  17230. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  17231. type: object
  17232. properties:
  17233. gatewayHTTPRoute:
  17234. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  17235. type: object
  17236. properties:
  17237. labels:
  17238. description: The labels that cert-manager will use when creating the temporary HTTPRoute needed for solving the HTTP-01 challenge. These labels must match the label selector of at least one Gateway.
  17239. type: object
  17240. additionalProperties:
  17241. type: string
  17242. serviceType:
  17243. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  17244. type: string
  17245. ingress:
  17246. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  17247. type: object
  17248. properties:
  17249. class:
  17250. description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
  17251. type: string
  17252. ingressTemplate:
  17253. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  17254. type: object
  17255. properties:
  17256. metadata:
  17257. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  17258. type: object
  17259. properties:
  17260. annotations:
  17261. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  17262. type: object
  17263. additionalProperties:
  17264. type: string
  17265. labels:
  17266. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  17267. type: object
  17268. additionalProperties:
  17269. type: string
  17270. name:
  17271. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
  17272. type: string
  17273. podTemplate:
  17274. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  17275. type: object
  17276. properties:
  17277. metadata:
  17278. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  17279. type: object
  17280. properties:
  17281. annotations:
  17282. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  17283. type: object
  17284. additionalProperties:
  17285. type: string
  17286. labels:
  17287. description: Labels that should be added to the created ACME HTTP01 solver pods.
  17288. type: object
  17289. additionalProperties:
  17290. type: string
  17291. spec:
  17292. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Only the 'priorityClassName', 'nodeSelector', 'affinity', 'serviceAccountName' and 'tolerations' fields are supported currently. All other fields will be ignored.
  17293. type: object
  17294. properties:
  17295. affinity:
  17296. description: If specified, the pod's scheduling constraints
  17297. type: object
  17298. properties:
  17299. nodeAffinity:
  17300. description: Describes node affinity scheduling rules for the pod.
  17301. type: object
  17302. properties:
  17303. preferredDuringSchedulingIgnoredDuringExecution:
  17304. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  17305. type: array
  17306. items:
  17307. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  17308. type: object
  17309. required:
  17310. - preference
  17311. - weight
  17312. properties:
  17313. preference:
  17314. description: A node selector term, associated with the corresponding weight.
  17315. type: object
  17316. properties:
  17317. matchExpressions:
  17318. description: A list of node selector requirements by node's labels.
  17319. type: array
  17320. items:
  17321. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17322. type: object
  17323. required:
  17324. - key
  17325. - operator
  17326. properties:
  17327. key:
  17328. description: The label key that the selector applies to.
  17329. type: string
  17330. operator:
  17331. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  17332. type: string
  17333. values:
  17334. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  17335. type: array
  17336. items:
  17337. type: string
  17338. matchFields:
  17339. description: A list of node selector requirements by node's fields.
  17340. type: array
  17341. items:
  17342. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17343. type: object
  17344. required:
  17345. - key
  17346. - operator
  17347. properties:
  17348. key:
  17349. description: The label key that the selector applies to.
  17350. type: string
  17351. operator:
  17352. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  17353. type: string
  17354. values:
  17355. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  17356. type: array
  17357. items:
  17358. type: string
  17359. weight:
  17360. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  17361. type: integer
  17362. format: int32
  17363. requiredDuringSchedulingIgnoredDuringExecution:
  17364. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  17365. type: object
  17366. required:
  17367. - nodeSelectorTerms
  17368. properties:
  17369. nodeSelectorTerms:
  17370. description: Required. A list of node selector terms. The terms are ORed.
  17371. type: array
  17372. items:
  17373. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  17374. type: object
  17375. properties:
  17376. matchExpressions:
  17377. description: A list of node selector requirements by node's labels.
  17378. type: array
  17379. items:
  17380. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17381. type: object
  17382. required:
  17383. - key
  17384. - operator
  17385. properties:
  17386. key:
  17387. description: The label key that the selector applies to.
  17388. type: string
  17389. operator:
  17390. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  17391. type: string
  17392. values:
  17393. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  17394. type: array
  17395. items:
  17396. type: string
  17397. matchFields:
  17398. description: A list of node selector requirements by node's fields.
  17399. type: array
  17400. items:
  17401. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17402. type: object
  17403. required:
  17404. - key
  17405. - operator
  17406. properties:
  17407. key:
  17408. description: The label key that the selector applies to.
  17409. type: string
  17410. operator:
  17411. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  17412. type: string
  17413. values:
  17414. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  17415. type: array
  17416. items:
  17417. type: string
  17418. podAffinity:
  17419. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  17420. type: object
  17421. properties:
  17422. preferredDuringSchedulingIgnoredDuringExecution:
  17423. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  17424. type: array
  17425. items:
  17426. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  17427. type: object
  17428. required:
  17429. - podAffinityTerm
  17430. - weight
  17431. properties:
  17432. podAffinityTerm:
  17433. description: Required. A pod affinity term, associated with the corresponding weight.
  17434. type: object
  17435. required:
  17436. - topologyKey
  17437. properties:
  17438. labelSelector:
  17439. description: A label query over a set of resources, in this case pods.
  17440. type: object
  17441. properties:
  17442. matchExpressions:
  17443. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17444. type: array
  17445. items:
  17446. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17447. type: object
  17448. required:
  17449. - key
  17450. - operator
  17451. properties:
  17452. key:
  17453. description: key is the label key that the selector applies to.
  17454. type: string
  17455. operator:
  17456. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17457. type: string
  17458. values:
  17459. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17460. type: array
  17461. items:
  17462. type: string
  17463. matchLabels:
  17464. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17465. type: object
  17466. additionalProperties:
  17467. type: string
  17468. namespaceSelector:
  17469. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  17470. type: object
  17471. properties:
  17472. matchExpressions:
  17473. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17474. type: array
  17475. items:
  17476. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17477. type: object
  17478. required:
  17479. - key
  17480. - operator
  17481. properties:
  17482. key:
  17483. description: key is the label key that the selector applies to.
  17484. type: string
  17485. operator:
  17486. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17487. type: string
  17488. values:
  17489. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17490. type: array
  17491. items:
  17492. type: string
  17493. matchLabels:
  17494. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17495. type: object
  17496. additionalProperties:
  17497. type: string
  17498. namespaces:
  17499. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  17500. type: array
  17501. items:
  17502. type: string
  17503. topologyKey:
  17504. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  17505. type: string
  17506. weight:
  17507. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  17508. type: integer
  17509. format: int32
  17510. requiredDuringSchedulingIgnoredDuringExecution:
  17511. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  17512. type: array
  17513. items:
  17514. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  17515. type: object
  17516. required:
  17517. - topologyKey
  17518. properties:
  17519. labelSelector:
  17520. description: A label query over a set of resources, in this case pods.
  17521. type: object
  17522. properties:
  17523. matchExpressions:
  17524. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17525. type: array
  17526. items:
  17527. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17528. type: object
  17529. required:
  17530. - key
  17531. - operator
  17532. properties:
  17533. key:
  17534. description: key is the label key that the selector applies to.
  17535. type: string
  17536. operator:
  17537. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17538. type: string
  17539. values:
  17540. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17541. type: array
  17542. items:
  17543. type: string
  17544. matchLabels:
  17545. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17546. type: object
  17547. additionalProperties:
  17548. type: string
  17549. namespaceSelector:
  17550. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  17551. type: object
  17552. properties:
  17553. matchExpressions:
  17554. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17555. type: array
  17556. items:
  17557. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17558. type: object
  17559. required:
  17560. - key
  17561. - operator
  17562. properties:
  17563. key:
  17564. description: key is the label key that the selector applies to.
  17565. type: string
  17566. operator:
  17567. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17568. type: string
  17569. values:
  17570. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17571. type: array
  17572. items:
  17573. type: string
  17574. matchLabels:
  17575. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17576. type: object
  17577. additionalProperties:
  17578. type: string
  17579. namespaces:
  17580. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  17581. type: array
  17582. items:
  17583. type: string
  17584. topologyKey:
  17585. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  17586. type: string
  17587. podAntiAffinity:
  17588. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  17589. type: object
  17590. properties:
  17591. preferredDuringSchedulingIgnoredDuringExecution:
  17592. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  17593. type: array
  17594. items:
  17595. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  17596. type: object
  17597. required:
  17598. - podAffinityTerm
  17599. - weight
  17600. properties:
  17601. podAffinityTerm:
  17602. description: Required. A pod affinity term, associated with the corresponding weight.
  17603. type: object
  17604. required:
  17605. - topologyKey
  17606. properties:
  17607. labelSelector:
  17608. description: A label query over a set of resources, in this case pods.
  17609. type: object
  17610. properties:
  17611. matchExpressions:
  17612. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17613. type: array
  17614. items:
  17615. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17616. type: object
  17617. required:
  17618. - key
  17619. - operator
  17620. properties:
  17621. key:
  17622. description: key is the label key that the selector applies to.
  17623. type: string
  17624. operator:
  17625. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17626. type: string
  17627. values:
  17628. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17629. type: array
  17630. items:
  17631. type: string
  17632. matchLabels:
  17633. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17634. type: object
  17635. additionalProperties:
  17636. type: string
  17637. namespaceSelector:
  17638. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  17639. type: object
  17640. properties:
  17641. matchExpressions:
  17642. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17643. type: array
  17644. items:
  17645. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17646. type: object
  17647. required:
  17648. - key
  17649. - operator
  17650. properties:
  17651. key:
  17652. description: key is the label key that the selector applies to.
  17653. type: string
  17654. operator:
  17655. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17656. type: string
  17657. values:
  17658. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17659. type: array
  17660. items:
  17661. type: string
  17662. matchLabels:
  17663. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17664. type: object
  17665. additionalProperties:
  17666. type: string
  17667. namespaces:
  17668. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  17669. type: array
  17670. items:
  17671. type: string
  17672. topologyKey:
  17673. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  17674. type: string
  17675. weight:
  17676. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  17677. type: integer
  17678. format: int32
  17679. requiredDuringSchedulingIgnoredDuringExecution:
  17680. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  17681. type: array
  17682. items:
  17683. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  17684. type: object
  17685. required:
  17686. - topologyKey
  17687. properties:
  17688. labelSelector:
  17689. description: A label query over a set of resources, in this case pods.
  17690. type: object
  17691. properties:
  17692. matchExpressions:
  17693. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17694. type: array
  17695. items:
  17696. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17697. type: object
  17698. required:
  17699. - key
  17700. - operator
  17701. properties:
  17702. key:
  17703. description: key is the label key that the selector applies to.
  17704. type: string
  17705. operator:
  17706. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17707. type: string
  17708. values:
  17709. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17710. type: array
  17711. items:
  17712. type: string
  17713. matchLabels:
  17714. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17715. type: object
  17716. additionalProperties:
  17717. type: string
  17718. namespaceSelector:
  17719. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.
  17720. type: object
  17721. properties:
  17722. matchExpressions:
  17723. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  17724. type: array
  17725. items:
  17726. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  17727. type: object
  17728. required:
  17729. - key
  17730. - operator
  17731. properties:
  17732. key:
  17733. description: key is the label key that the selector applies to.
  17734. type: string
  17735. operator:
  17736. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  17737. type: string
  17738. values:
  17739. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  17740. type: array
  17741. items:
  17742. type: string
  17743. matchLabels:
  17744. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  17745. type: object
  17746. additionalProperties:
  17747. type: string
  17748. namespaces:
  17749. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace"
  17750. type: array
  17751. items:
  17752. type: string
  17753. topologyKey:
  17754. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  17755. type: string
  17756. nodeSelector:
  17757. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  17758. type: object
  17759. additionalProperties:
  17760. type: string
  17761. priorityClassName:
  17762. description: If specified, the pod's priorityClassName.
  17763. type: string
  17764. serviceAccountName:
  17765. description: If specified, the pod's service account
  17766. type: string
  17767. tolerations:
  17768. description: If specified, the pod's tolerations.
  17769. type: array
  17770. items:
  17771. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  17772. type: object
  17773. properties:
  17774. effect:
  17775. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  17776. type: string
  17777. key:
  17778. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  17779. type: string
  17780. operator:
  17781. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  17782. type: string
  17783. tolerationSeconds:
  17784. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  17785. type: integer
  17786. format: int64
  17787. value:
  17788. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  17789. type: string
  17790. serviceType:
  17791. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  17792. type: string
  17793. selector:
  17794. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  17795. type: object
  17796. properties:
  17797. dnsNames:
  17798. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  17799. type: array
  17800. items:
  17801. type: string
  17802. dnsZones:
  17803. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  17804. type: array
  17805. items:
  17806. type: string
  17807. matchLabels:
  17808. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  17809. type: object
  17810. additionalProperties:
  17811. type: string
  17812. ca:
  17813. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  17814. type: object
  17815. required:
  17816. - secretName
  17817. properties:
  17818. crlDistributionPoints:
  17819. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  17820. type: array
  17821. items:
  17822. type: string
  17823. ocspServers:
  17824. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  17825. type: array
  17826. items:
  17827. type: string
  17828. secretName:
  17829. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  17830. type: string
  17831. selfSigned:
  17832. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  17833. type: object
  17834. properties:
  17835. crlDistributionPoints:
  17836. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  17837. type: array
  17838. items:
  17839. type: string
  17840. vault:
  17841. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  17842. type: object
  17843. required:
  17844. - auth
  17845. - path
  17846. - server
  17847. properties:
  17848. auth:
  17849. description: Auth configures how cert-manager authenticates with the Vault server.
  17850. type: object
  17851. properties:
  17852. appRole:
  17853. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  17854. type: object
  17855. required:
  17856. - path
  17857. - roleId
  17858. - secretRef
  17859. properties:
  17860. path:
  17861. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  17862. type: string
  17863. roleId:
  17864. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  17865. type: string
  17866. secretRef:
  17867. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  17868. type: object
  17869. required:
  17870. - name
  17871. properties:
  17872. key:
  17873. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17874. type: string
  17875. name:
  17876. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17877. type: string
  17878. kubernetes:
  17879. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  17880. type: object
  17881. required:
  17882. - role
  17883. - secretRef
  17884. properties:
  17885. mountPath:
  17886. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  17887. type: string
  17888. role:
  17889. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  17890. type: string
  17891. secretRef:
  17892. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  17893. type: object
  17894. required:
  17895. - name
  17896. properties:
  17897. key:
  17898. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17899. type: string
  17900. name:
  17901. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17902. type: string
  17903. tokenSecretRef:
  17904. description: TokenSecretRef authenticates with Vault by presenting a token.
  17905. type: object
  17906. required:
  17907. - name
  17908. properties:
  17909. key:
  17910. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17911. type: string
  17912. name:
  17913. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17914. type: string
  17915. caBundle:
  17916. description: PEM-encoded CA bundle (base64-encoded) used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.
  17917. type: string
  17918. format: byte
  17919. namespace:
  17920. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  17921. type: string
  17922. path:
  17923. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  17924. type: string
  17925. server:
  17926. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  17927. type: string
  17928. venafi:
  17929. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  17930. type: object
  17931. required:
  17932. - zone
  17933. properties:
  17934. cloud:
  17935. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  17936. type: object
  17937. required:
  17938. - apiTokenSecretRef
  17939. properties:
  17940. apiTokenSecretRef:
  17941. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  17942. type: object
  17943. required:
  17944. - name
  17945. properties:
  17946. key:
  17947. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  17948. type: string
  17949. name:
  17950. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17951. type: string
  17952. url:
  17953. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  17954. type: string
  17955. tpp:
  17956. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  17957. type: object
  17958. required:
  17959. - credentialsRef
  17960. - url
  17961. properties:
  17962. caBundle:
  17963. description: CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.
  17964. type: string
  17965. format: byte
  17966. credentialsRef:
  17967. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  17968. type: object
  17969. required:
  17970. - name
  17971. properties:
  17972. name:
  17973. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  17974. type: string
  17975. url:
  17976. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  17977. type: string
  17978. zone:
  17979. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  17980. type: string
  17981. status:
  17982. description: Status of the Issuer. This is set and managed automatically.
  17983. type: object
  17984. properties:
  17985. acme:
  17986. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  17987. type: object
  17988. properties:
  17989. lastRegisteredEmail:
  17990. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  17991. type: string
  17992. uri:
  17993. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  17994. type: string
  17995. conditions:
  17996. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  17997. type: array
  17998. items:
  17999. description: IssuerCondition contains condition information for an Issuer.
  18000. type: object
  18001. required:
  18002. - status
  18003. - type
  18004. properties:
  18005. lastTransitionTime:
  18006. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  18007. type: string
  18008. format: date-time
  18009. message:
  18010. description: Message is a human readable description of the details of the last transition, complementing reason.
  18011. type: string
  18012. observedGeneration:
  18013. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  18014. type: integer
  18015. format: int64
  18016. reason:
  18017. description: Reason is a brief machine readable explanation for the condition's last transition.
  18018. type: string
  18019. status:
  18020. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  18021. type: string
  18022. enum:
  18023. - "True"
  18024. - "False"
  18025. - Unknown
  18026. type:
  18027. description: Type of the condition, known values are (`Ready`).
  18028. type: string
  18029. served: true
  18030. storage: true
  18031. ---
  18032. # Source: gitlab/charts/certmanager/templates/crds.yaml
  18033. apiVersion: apiextensions.k8s.io/v1
  18034. kind: CustomResourceDefinition
  18035. metadata:
  18036. name: orders.acme.cert-manager.io
  18037. annotations:
  18038. cert-manager.io/inject-ca-from-secret: 'default/gitlab-certmanager-webhook-ca'
  18039. labels:
  18040. app: 'certmanager'
  18041. app.kubernetes.io/name: 'certmanager'
  18042. app.kubernetes.io/instance: 'gitlab'
  18043. # Generated labels
  18044. app.kubernetes.io/version: "v1.5.4"
  18045. app.kubernetes.io/managed-by: Helm
  18046. helm.sh/chart: certmanager-v1.5.4
  18047. spec:
  18048. group: acme.cert-manager.io
  18049. names:
  18050. kind: Order
  18051. listKind: OrderList
  18052. plural: orders
  18053. singular: order
  18054. categories:
  18055. - cert-manager
  18056. - cert-manager-acme
  18057. scope: Namespaced
  18058. conversion:
  18059. # a Webhook strategy instruct API server to call an external webhook for any conversion between custom resources.
  18060. strategy: Webhook
  18061. # webhookClientConfig is required when strategy is `Webhook` and it configures the webhook endpoint to be called by API server.
  18062. webhook:
  18063. # We don't actually support `v1beta1` but is listed here as it is a
  18064. # required value for [Kubernetes v1.16](kubernetes/kubernetes#82023). The
  18065. # API server reads the supported versions in order, so _should always_
  18066. # attempt a `v1` request which is understood by the cert-manager webhook.
  18067. # Any `v1beta1` request will return an error and fail closed for that
  18068. # resource (the whole object request is rejected).
  18069. # When we no longer support v1.16 we can remove `v1beta1` from this list.
  18070. conversionReviewVersions: ["v1", "v1beta1"]
  18071. clientConfig:
  18072. #
  18073. service:
  18074. name: 'gitlab-certmanager-webhook'
  18075. namespace: "default"
  18076. path: /convert
  18077. #
  18078. versions:
  18079. - name: v1alpha2
  18080. subresources:
  18081. status: {}
  18082. additionalPrinterColumns:
  18083. - jsonPath: .status.state
  18084. name: State
  18085. type: string
  18086. - jsonPath: .spec.issuerRef.name
  18087. name: Issuer
  18088. priority: 1
  18089. type: string
  18090. - jsonPath: .status.reason
  18091. name: Reason
  18092. priority: 1
  18093. type: string
  18094. - jsonPath: .metadata.creationTimestamp
  18095. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  18096. name: Age
  18097. type: date
  18098. schema:
  18099. openAPIV3Schema:
  18100. description: Order is a type to represent an Order with an ACME server
  18101. type: object
  18102. required:
  18103. - metadata
  18104. properties:
  18105. apiVersion:
  18106. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  18107. type: string
  18108. kind:
  18109. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  18110. type: string
  18111. metadata:
  18112. type: object
  18113. spec:
  18114. type: object
  18115. required:
  18116. - csr
  18117. - issuerRef
  18118. properties:
  18119. commonName:
  18120. description: CommonName is the common name as specified on the DER encoded CSR. If specified, this value must also be present in `dnsNames` or `ipAddresses`. This field must match the corresponding field on the DER encoded CSR.
  18121. type: string
  18122. csr:
  18123. description: Certificate signing request bytes in DER encoding. This will be used when finalizing the order. This field must be set on the order.
  18124. type: string
  18125. format: byte
  18126. dnsNames:
  18127. description: DNSNames is a list of DNS names that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18128. type: array
  18129. items:
  18130. type: string
  18131. duration:
  18132. description: Duration is the duration for the not after date for the requested certificate. this is set on order creation as pe the ACME spec.
  18133. type: string
  18134. ipAddresses:
  18135. description: IPAddresses is a list of IP addresses that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18136. type: array
  18137. items:
  18138. type: string
  18139. issuerRef:
  18140. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Order. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Order will be marked as failed.
  18141. type: object
  18142. required:
  18143. - name
  18144. properties:
  18145. group:
  18146. description: Group of the resource being referred to.
  18147. type: string
  18148. kind:
  18149. description: Kind of the resource being referred to.
  18150. type: string
  18151. name:
  18152. description: Name of the resource being referred to.
  18153. type: string
  18154. status:
  18155. type: object
  18156. properties:
  18157. authorizations:
  18158. description: Authorizations contains data returned from the ACME server on what authorizations must be completed in order to validate the DNS names specified on the Order.
  18159. type: array
  18160. items:
  18161. description: ACMEAuthorization contains data returned from the ACME server on an authorization that must be completed in order validate a DNS name on an ACME Order resource.
  18162. type: object
  18163. required:
  18164. - url
  18165. properties:
  18166. challenges:
  18167. description: Challenges specifies the challenge types offered by the ACME server. One of these challenge types will be selected when validating the DNS name and an appropriate Challenge resource will be created to perform the ACME challenge process.
  18168. type: array
  18169. items:
  18170. description: Challenge specifies a challenge offered by the ACME server for an Order. An appropriate Challenge resource can be created to perform the ACME challenge process.
  18171. type: object
  18172. required:
  18173. - token
  18174. - type
  18175. - url
  18176. properties:
  18177. token:
  18178. description: Token is the token that must be presented for this challenge. This is used to compute the 'key' that must also be presented.
  18179. type: string
  18180. type:
  18181. description: Type is the type of challenge being offered, e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is the raw value retrieved from the ACME server. Only 'http-01' and 'dns-01' are supported by cert-manager, other values will be ignored.
  18182. type: string
  18183. url:
  18184. description: URL is the URL of this challenge. It can be used to retrieve additional metadata about the Challenge from the ACME server.
  18185. type: string
  18186. identifier:
  18187. description: Identifier is the DNS name to be validated as part of this authorization
  18188. type: string
  18189. initialState:
  18190. description: InitialState is the initial state of the ACME authorization when first fetched from the ACME server. If an Authorization is already 'valid', the Order controller will not create a Challenge resource for the authorization. This will occur when working with an ACME server that enables 'authz reuse' (such as Let's Encrypt's production endpoint). If not set and 'identifier' is set, the state is assumed to be pending and a Challenge will be created.
  18191. type: string
  18192. enum:
  18193. - valid
  18194. - ready
  18195. - pending
  18196. - processing
  18197. - invalid
  18198. - expired
  18199. - errored
  18200. url:
  18201. description: URL is the URL of the Authorization that must be completed
  18202. type: string
  18203. wildcard:
  18204. description: Wildcard will be true if this authorization is for a wildcard DNS name. If this is true, the identifier will be the *non-wildcard* version of the DNS name. For example, if '*.example.com' is the DNS name being validated, this field will be 'true' and the 'identifier' field will be 'example.com'.
  18205. type: boolean
  18206. certificate:
  18207. description: Certificate is a copy of the PEM encoded certificate for this Order. This field will be populated after the order has been successfully finalized with the ACME server, and the order has transitioned to the 'valid' state.
  18208. type: string
  18209. format: byte
  18210. failureTime:
  18211. description: FailureTime stores the time that this order failed. This is used to influence garbage collection and back-off.
  18212. type: string
  18213. format: date-time
  18214. finalizeURL:
  18215. description: FinalizeURL of the Order. This is used to obtain certificates for this order once it has been completed.
  18216. type: string
  18217. reason:
  18218. description: Reason optionally provides more information about a why the order is in the current state.
  18219. type: string
  18220. state:
  18221. description: State contains the current state of this Order resource. States 'success' and 'expired' are 'final'
  18222. type: string
  18223. enum:
  18224. - valid
  18225. - ready
  18226. - pending
  18227. - processing
  18228. - invalid
  18229. - expired
  18230. - errored
  18231. url:
  18232. description: URL of the Order. This will initially be empty when the resource is first created. The Order controller will populate this field when the Order is first processed. This field will be immutable after it is initially set.
  18233. type: string
  18234. served: true
  18235. storage: false
  18236. - name: v1alpha3
  18237. subresources:
  18238. status: {}
  18239. additionalPrinterColumns:
  18240. - jsonPath: .status.state
  18241. name: State
  18242. type: string
  18243. - jsonPath: .spec.issuerRef.name
  18244. name: Issuer
  18245. priority: 1
  18246. type: string
  18247. - jsonPath: .status.reason
  18248. name: Reason
  18249. priority: 1
  18250. type: string
  18251. - jsonPath: .metadata.creationTimestamp
  18252. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  18253. name: Age
  18254. type: date
  18255. schema:
  18256. openAPIV3Schema:
  18257. description: Order is a type to represent an Order with an ACME server
  18258. type: object
  18259. required:
  18260. - metadata
  18261. properties:
  18262. apiVersion:
  18263. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  18264. type: string
  18265. kind:
  18266. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  18267. type: string
  18268. metadata:
  18269. type: object
  18270. spec:
  18271. type: object
  18272. required:
  18273. - csr
  18274. - issuerRef
  18275. properties:
  18276. commonName:
  18277. description: CommonName is the common name as specified on the DER encoded CSR. If specified, this value must also be present in `dnsNames` or `ipAddresses`. This field must match the corresponding field on the DER encoded CSR.
  18278. type: string
  18279. csr:
  18280. description: Certificate signing request bytes in DER encoding. This will be used when finalizing the order. This field must be set on the order.
  18281. type: string
  18282. format: byte
  18283. dnsNames:
  18284. description: DNSNames is a list of DNS names that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18285. type: array
  18286. items:
  18287. type: string
  18288. duration:
  18289. description: Duration is the duration for the not after date for the requested certificate. this is set on order creation as pe the ACME spec.
  18290. type: string
  18291. ipAddresses:
  18292. description: IPAddresses is a list of IP addresses that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18293. type: array
  18294. items:
  18295. type: string
  18296. issuerRef:
  18297. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Order. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Order will be marked as failed.
  18298. type: object
  18299. required:
  18300. - name
  18301. properties:
  18302. group:
  18303. description: Group of the resource being referred to.
  18304. type: string
  18305. kind:
  18306. description: Kind of the resource being referred to.
  18307. type: string
  18308. name:
  18309. description: Name of the resource being referred to.
  18310. type: string
  18311. status:
  18312. type: object
  18313. properties:
  18314. authorizations:
  18315. description: Authorizations contains data returned from the ACME server on what authorizations must be completed in order to validate the DNS names specified on the Order.
  18316. type: array
  18317. items:
  18318. description: ACMEAuthorization contains data returned from the ACME server on an authorization that must be completed in order validate a DNS name on an ACME Order resource.
  18319. type: object
  18320. required:
  18321. - url
  18322. properties:
  18323. challenges:
  18324. description: Challenges specifies the challenge types offered by the ACME server. One of these challenge types will be selected when validating the DNS name and an appropriate Challenge resource will be created to perform the ACME challenge process.
  18325. type: array
  18326. items:
  18327. description: Challenge specifies a challenge offered by the ACME server for an Order. An appropriate Challenge resource can be created to perform the ACME challenge process.
  18328. type: object
  18329. required:
  18330. - token
  18331. - type
  18332. - url
  18333. properties:
  18334. token:
  18335. description: Token is the token that must be presented for this challenge. This is used to compute the 'key' that must also be presented.
  18336. type: string
  18337. type:
  18338. description: Type is the type of challenge being offered, e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is the raw value retrieved from the ACME server. Only 'http-01' and 'dns-01' are supported by cert-manager, other values will be ignored.
  18339. type: string
  18340. url:
  18341. description: URL is the URL of this challenge. It can be used to retrieve additional metadata about the Challenge from the ACME server.
  18342. type: string
  18343. identifier:
  18344. description: Identifier is the DNS name to be validated as part of this authorization
  18345. type: string
  18346. initialState:
  18347. description: InitialState is the initial state of the ACME authorization when first fetched from the ACME server. If an Authorization is already 'valid', the Order controller will not create a Challenge resource for the authorization. This will occur when working with an ACME server that enables 'authz reuse' (such as Let's Encrypt's production endpoint). If not set and 'identifier' is set, the state is assumed to be pending and a Challenge will be created.
  18348. type: string
  18349. enum:
  18350. - valid
  18351. - ready
  18352. - pending
  18353. - processing
  18354. - invalid
  18355. - expired
  18356. - errored
  18357. url:
  18358. description: URL is the URL of the Authorization that must be completed
  18359. type: string
  18360. wildcard:
  18361. description: Wildcard will be true if this authorization is for a wildcard DNS name. If this is true, the identifier will be the *non-wildcard* version of the DNS name. For example, if '*.example.com' is the DNS name being validated, this field will be 'true' and the 'identifier' field will be 'example.com'.
  18362. type: boolean
  18363. certificate:
  18364. description: Certificate is a copy of the PEM encoded certificate for this Order. This field will be populated after the order has been successfully finalized with the ACME server, and the order has transitioned to the 'valid' state.
  18365. type: string
  18366. format: byte
  18367. failureTime:
  18368. description: FailureTime stores the time that this order failed. This is used to influence garbage collection and back-off.
  18369. type: string
  18370. format: date-time
  18371. finalizeURL:
  18372. description: FinalizeURL of the Order. This is used to obtain certificates for this order once it has been completed.
  18373. type: string
  18374. reason:
  18375. description: Reason optionally provides more information about a why the order is in the current state.
  18376. type: string
  18377. state:
  18378. description: State contains the current state of this Order resource. States 'success' and 'expired' are 'final'
  18379. type: string
  18380. enum:
  18381. - valid
  18382. - ready
  18383. - pending
  18384. - processing
  18385. - invalid
  18386. - expired
  18387. - errored
  18388. url:
  18389. description: URL of the Order. This will initially be empty when the resource is first created. The Order controller will populate this field when the Order is first processed. This field will be immutable after it is initially set.
  18390. type: string
  18391. served: true
  18392. storage: false
  18393. - name: v1beta1
  18394. subresources:
  18395. status: {}
  18396. additionalPrinterColumns:
  18397. - jsonPath: .status.state
  18398. name: State
  18399. type: string
  18400. - jsonPath: .spec.issuerRef.name
  18401. name: Issuer
  18402. priority: 1
  18403. type: string
  18404. - jsonPath: .status.reason
  18405. name: Reason
  18406. priority: 1
  18407. type: string
  18408. - jsonPath: .metadata.creationTimestamp
  18409. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  18410. name: Age
  18411. type: date
  18412. schema:
  18413. openAPIV3Schema:
  18414. description: Order is a type to represent an Order with an ACME server
  18415. type: object
  18416. required:
  18417. - metadata
  18418. - spec
  18419. properties:
  18420. apiVersion:
  18421. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  18422. type: string
  18423. kind:
  18424. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  18425. type: string
  18426. metadata:
  18427. type: object
  18428. spec:
  18429. type: object
  18430. required:
  18431. - issuerRef
  18432. - request
  18433. properties:
  18434. commonName:
  18435. description: CommonName is the common name as specified on the DER encoded CSR. If specified, this value must also be present in `dnsNames` or `ipAddresses`. This field must match the corresponding field on the DER encoded CSR.
  18436. type: string
  18437. dnsNames:
  18438. description: DNSNames is a list of DNS names that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18439. type: array
  18440. items:
  18441. type: string
  18442. duration:
  18443. description: Duration is the duration for the not after date for the requested certificate. this is set on order creation as pe the ACME spec.
  18444. type: string
  18445. ipAddresses:
  18446. description: IPAddresses is a list of IP addresses that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18447. type: array
  18448. items:
  18449. type: string
  18450. issuerRef:
  18451. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Order. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Order will be marked as failed.
  18452. type: object
  18453. required:
  18454. - name
  18455. properties:
  18456. group:
  18457. description: Group of the resource being referred to.
  18458. type: string
  18459. kind:
  18460. description: Kind of the resource being referred to.
  18461. type: string
  18462. name:
  18463. description: Name of the resource being referred to.
  18464. type: string
  18465. request:
  18466. description: Certificate signing request bytes in DER encoding. This will be used when finalizing the order. This field must be set on the order.
  18467. type: string
  18468. format: byte
  18469. status:
  18470. type: object
  18471. properties:
  18472. authorizations:
  18473. description: Authorizations contains data returned from the ACME server on what authorizations must be completed in order to validate the DNS names specified on the Order.
  18474. type: array
  18475. items:
  18476. description: ACMEAuthorization contains data returned from the ACME server on an authorization that must be completed in order validate a DNS name on an ACME Order resource.
  18477. type: object
  18478. required:
  18479. - url
  18480. properties:
  18481. challenges:
  18482. description: Challenges specifies the challenge types offered by the ACME server. One of these challenge types will be selected when validating the DNS name and an appropriate Challenge resource will be created to perform the ACME challenge process.
  18483. type: array
  18484. items:
  18485. description: Challenge specifies a challenge offered by the ACME server for an Order. An appropriate Challenge resource can be created to perform the ACME challenge process.
  18486. type: object
  18487. required:
  18488. - token
  18489. - type
  18490. - url
  18491. properties:
  18492. token:
  18493. description: Token is the token that must be presented for this challenge. This is used to compute the 'key' that must also be presented.
  18494. type: string
  18495. type:
  18496. description: Type is the type of challenge being offered, e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is the raw value retrieved from the ACME server. Only 'http-01' and 'dns-01' are supported by cert-manager, other values will be ignored.
  18497. type: string
  18498. url:
  18499. description: URL is the URL of this challenge. It can be used to retrieve additional metadata about the Challenge from the ACME server.
  18500. type: string
  18501. identifier:
  18502. description: Identifier is the DNS name to be validated as part of this authorization
  18503. type: string
  18504. initialState:
  18505. description: InitialState is the initial state of the ACME authorization when first fetched from the ACME server. If an Authorization is already 'valid', the Order controller will not create a Challenge resource for the authorization. This will occur when working with an ACME server that enables 'authz reuse' (such as Let's Encrypt's production endpoint). If not set and 'identifier' is set, the state is assumed to be pending and a Challenge will be created.
  18506. type: string
  18507. enum:
  18508. - valid
  18509. - ready
  18510. - pending
  18511. - processing
  18512. - invalid
  18513. - expired
  18514. - errored
  18515. url:
  18516. description: URL is the URL of the Authorization that must be completed
  18517. type: string
  18518. wildcard:
  18519. description: Wildcard will be true if this authorization is for a wildcard DNS name. If this is true, the identifier will be the *non-wildcard* version of the DNS name. For example, if '*.example.com' is the DNS name being validated, this field will be 'true' and the 'identifier' field will be 'example.com'.
  18520. type: boolean
  18521. certificate:
  18522. description: Certificate is a copy of the PEM encoded certificate for this Order. This field will be populated after the order has been successfully finalized with the ACME server, and the order has transitioned to the 'valid' state.
  18523. type: string
  18524. format: byte
  18525. failureTime:
  18526. description: FailureTime stores the time that this order failed. This is used to influence garbage collection and back-off.
  18527. type: string
  18528. format: date-time
  18529. finalizeURL:
  18530. description: FinalizeURL of the Order. This is used to obtain certificates for this order once it has been completed.
  18531. type: string
  18532. reason:
  18533. description: Reason optionally provides more information about a why the order is in the current state.
  18534. type: string
  18535. state:
  18536. description: State contains the current state of this Order resource. States 'success' and 'expired' are 'final'
  18537. type: string
  18538. enum:
  18539. - valid
  18540. - ready
  18541. - pending
  18542. - processing
  18543. - invalid
  18544. - expired
  18545. - errored
  18546. url:
  18547. description: URL of the Order. This will initially be empty when the resource is first created. The Order controller will populate this field when the Order is first processed. This field will be immutable after it is initially set.
  18548. type: string
  18549. served: true
  18550. storage: false
  18551. - name: v1
  18552. subresources:
  18553. status: {}
  18554. additionalPrinterColumns:
  18555. - jsonPath: .status.state
  18556. name: State
  18557. type: string
  18558. - jsonPath: .spec.issuerRef.name
  18559. name: Issuer
  18560. priority: 1
  18561. type: string
  18562. - jsonPath: .status.reason
  18563. name: Reason
  18564. priority: 1
  18565. type: string
  18566. - jsonPath: .metadata.creationTimestamp
  18567. description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
  18568. name: Age
  18569. type: date
  18570. schema:
  18571. openAPIV3Schema:
  18572. description: Order is a type to represent an Order with an ACME server
  18573. type: object
  18574. required:
  18575. - metadata
  18576. - spec
  18577. properties:
  18578. apiVersion:
  18579. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  18580. type: string
  18581. kind:
  18582. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  18583. type: string
  18584. metadata:
  18585. type: object
  18586. spec:
  18587. type: object
  18588. required:
  18589. - issuerRef
  18590. - request
  18591. properties:
  18592. commonName:
  18593. description: CommonName is the common name as specified on the DER encoded CSR. If specified, this value must also be present in `dnsNames` or `ipAddresses`. This field must match the corresponding field on the DER encoded CSR.
  18594. type: string
  18595. dnsNames:
  18596. description: DNSNames is a list of DNS names that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18597. type: array
  18598. items:
  18599. type: string
  18600. duration:
  18601. description: Duration is the duration for the not after date for the requested certificate. this is set on order creation as pe the ACME spec.
  18602. type: string
  18603. ipAddresses:
  18604. description: IPAddresses is a list of IP addresses that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  18605. type: array
  18606. items:
  18607. type: string
  18608. issuerRef:
  18609. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Order. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Order will be marked as failed.
  18610. type: object
  18611. required:
  18612. - name
  18613. properties:
  18614. group:
  18615. description: Group of the resource being referred to.
  18616. type: string
  18617. kind:
  18618. description: Kind of the resource being referred to.
  18619. type: string
  18620. name:
  18621. description: Name of the resource being referred to.
  18622. type: string
  18623. request:
  18624. description: Certificate signing request bytes in DER encoding. This will be used when finalizing the order. This field must be set on the order.
  18625. type: string
  18626. format: byte
  18627. status:
  18628. type: object
  18629. properties:
  18630. authorizations:
  18631. description: Authorizations contains data returned from the ACME server on what authorizations must be completed in order to validate the DNS names specified on the Order.
  18632. type: array
  18633. items:
  18634. description: ACMEAuthorization contains data returned from the ACME server on an authorization that must be completed in order validate a DNS name on an ACME Order resource.
  18635. type: object
  18636. required:
  18637. - url
  18638. properties:
  18639. challenges:
  18640. description: Challenges specifies the challenge types offered by the ACME server. One of these challenge types will be selected when validating the DNS name and an appropriate Challenge resource will be created to perform the ACME challenge process.
  18641. type: array
  18642. items:
  18643. description: Challenge specifies a challenge offered by the ACME server for an Order. An appropriate Challenge resource can be created to perform the ACME challenge process.
  18644. type: object
  18645. required:
  18646. - token
  18647. - type
  18648. - url
  18649. properties:
  18650. token:
  18651. description: Token is the token that must be presented for this challenge. This is used to compute the 'key' that must also be presented.
  18652. type: string
  18653. type:
  18654. description: Type is the type of challenge being offered, e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is the raw value retrieved from the ACME server. Only 'http-01' and 'dns-01' are supported by cert-manager, other values will be ignored.
  18655. type: string
  18656. url:
  18657. description: URL is the URL of this challenge. It can be used to retrieve additional metadata about the Challenge from the ACME server.
  18658. type: string
  18659. identifier:
  18660. description: Identifier is the DNS name to be validated as part of this authorization
  18661. type: string
  18662. initialState:
  18663. description: InitialState is the initial state of the ACME authorization when first fetched from the ACME server. If an Authorization is already 'valid', the Order controller will not create a Challenge resource for the authorization. This will occur when working with an ACME server that enables 'authz reuse' (such as Let's Encrypt's production endpoint). If not set and 'identifier' is set, the state is assumed to be pending and a Challenge will be created.
  18664. type: string
  18665. enum:
  18666. - valid
  18667. - ready
  18668. - pending
  18669. - processing
  18670. - invalid
  18671. - expired
  18672. - errored
  18673. url:
  18674. description: URL is the URL of the Authorization that must be completed
  18675. type: string
  18676. wildcard:
  18677. description: Wildcard will be true if this authorization is for a wildcard DNS name. If this is true, the identifier will be the *non-wildcard* version of the DNS name. For example, if '*.example.com' is the DNS name being validated, this field will be 'true' and the 'identifier' field will be 'example.com'.
  18678. type: boolean
  18679. certificate:
  18680. description: Certificate is a copy of the PEM encoded certificate for this Order. This field will be populated after the order has been successfully finalized with the ACME server, and the order has transitioned to the 'valid' state.
  18681. type: string
  18682. format: byte
  18683. failureTime:
  18684. description: FailureTime stores the time that this order failed. This is used to influence garbage collection and back-off.
  18685. type: string
  18686. format: date-time
  18687. finalizeURL:
  18688. description: FinalizeURL of the Order. This is used to obtain certificates for this order once it has been completed.
  18689. type: string
  18690. reason:
  18691. description: Reason optionally provides more information about a why the order is in the current state.
  18692. type: string
  18693. state:
  18694. description: State contains the current state of this Order resource. States 'success' and 'expired' are 'final'
  18695. type: string
  18696. enum:
  18697. - valid
  18698. - ready
  18699. - pending
  18700. - processing
  18701. - invalid
  18702. - expired
  18703. - errored
  18704. url:
  18705. description: URL of the Order. This will initially be empty when the resource is first created. The Order controller will populate this field when the Order is first processed. This field will be immutable after it is initially set.
  18706. type: string
  18707. served: true
  18708. storage: true
  18709. ---
  18710. # Source: gitlab/charts/certmanager/templates/cainjector-rbac.yaml
  18711. apiVersion: rbac.authorization.k8s.io/v1
  18712. kind: ClusterRole
  18713. metadata:
  18714. name: gitlab-certmanager-cainjector
  18715. labels:
  18716. app: cainjector
  18717. app.kubernetes.io/name: cainjector
  18718. app.kubernetes.io/instance: gitlab
  18719. app.kubernetes.io/component: "cainjector"
  18720. app.kubernetes.io/version: "v1.5.4"
  18721. app.kubernetes.io/managed-by: Helm
  18722. helm.sh/chart: certmanager-v1.5.4
  18723. rules:
  18724. - apiGroups: ["cert-manager.io"]
  18725. resources: ["certificates"]
  18726. verbs: ["get", "list", "watch"]
  18727. - apiGroups: [""]
  18728. resources: ["secrets"]
  18729. verbs: ["get", "list", "watch"]
  18730. - apiGroups: [""]
  18731. resources: ["events"]
  18732. verbs: ["get", "create", "update", "patch"]
  18733. - apiGroups: ["admissionregistration.k8s.io"]
  18734. resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
  18735. verbs: ["get", "list", "watch", "update"]
  18736. - apiGroups: ["apiregistration.k8s.io"]
  18737. resources: ["apiservices"]
  18738. verbs: ["get", "list", "watch", "update"]
  18739. - apiGroups: ["apiextensions.k8s.io"]
  18740. resources: ["customresourcedefinitions"]
  18741. verbs: ["get", "list", "watch", "update"]
  18742. - apiGroups: ["auditregistration.k8s.io"]
  18743. resources: ["auditsinks"]
  18744. verbs: ["get", "list", "watch", "update"]
  18745. ---
  18746. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18747. # Issuer controller role
  18748. apiVersion: rbac.authorization.k8s.io/v1
  18749. kind: ClusterRole
  18750. metadata:
  18751. name: gitlab-certmanager-controller-issuers
  18752. labels:
  18753. app: certmanager
  18754. app.kubernetes.io/name: certmanager
  18755. app.kubernetes.io/instance: gitlab
  18756. app.kubernetes.io/component: "controller"
  18757. app.kubernetes.io/version: "v1.5.4"
  18758. app.kubernetes.io/managed-by: Helm
  18759. helm.sh/chart: certmanager-v1.5.4
  18760. rules:
  18761. - apiGroups: ["cert-manager.io"]
  18762. resources: ["issuers", "issuers/status"]
  18763. verbs: ["update"]
  18764. - apiGroups: ["cert-manager.io"]
  18765. resources: ["issuers"]
  18766. verbs: ["get", "list", "watch"]
  18767. - apiGroups: [""]
  18768. resources: ["secrets"]
  18769. verbs: ["get", "list", "watch", "create", "update", "delete"]
  18770. - apiGroups: [""]
  18771. resources: ["events"]
  18772. verbs: ["create", "patch"]
  18773. ---
  18774. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18775. # ClusterIssuer controller role
  18776. apiVersion: rbac.authorization.k8s.io/v1
  18777. kind: ClusterRole
  18778. metadata:
  18779. name: gitlab-certmanager-controller-clusterissuers
  18780. labels:
  18781. app: certmanager
  18782. app.kubernetes.io/name: certmanager
  18783. app.kubernetes.io/instance: gitlab
  18784. app.kubernetes.io/component: "controller"
  18785. app.kubernetes.io/version: "v1.5.4"
  18786. app.kubernetes.io/managed-by: Helm
  18787. helm.sh/chart: certmanager-v1.5.4
  18788. rules:
  18789. - apiGroups: ["cert-manager.io"]
  18790. resources: ["clusterissuers", "clusterissuers/status"]
  18791. verbs: ["update"]
  18792. - apiGroups: ["cert-manager.io"]
  18793. resources: ["clusterissuers"]
  18794. verbs: ["get", "list", "watch"]
  18795. - apiGroups: [""]
  18796. resources: ["secrets"]
  18797. verbs: ["get", "list", "watch", "create", "update", "delete"]
  18798. - apiGroups: [""]
  18799. resources: ["events"]
  18800. verbs: ["create", "patch"]
  18801. ---
  18802. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18803. # Certificates controller role
  18804. apiVersion: rbac.authorization.k8s.io/v1
  18805. kind: ClusterRole
  18806. metadata:
  18807. name: gitlab-certmanager-controller-certificates
  18808. labels:
  18809. app: certmanager
  18810. app.kubernetes.io/name: certmanager
  18811. app.kubernetes.io/instance: gitlab
  18812. app.kubernetes.io/component: "controller"
  18813. app.kubernetes.io/version: "v1.5.4"
  18814. app.kubernetes.io/managed-by: Helm
  18815. helm.sh/chart: certmanager-v1.5.4
  18816. rules:
  18817. - apiGroups: ["cert-manager.io"]
  18818. resources: ["certificates", "certificates/status", "certificaterequests", "certificaterequests/status"]
  18819. verbs: ["update"]
  18820. - apiGroups: ["cert-manager.io"]
  18821. resources: ["certificates", "certificaterequests", "clusterissuers", "issuers"]
  18822. verbs: ["get", "list", "watch"]
  18823. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  18824. # admission controller enabled:
  18825. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  18826. - apiGroups: ["cert-manager.io"]
  18827. resources: ["certificates/finalizers", "certificaterequests/finalizers"]
  18828. verbs: ["update"]
  18829. - apiGroups: ["acme.cert-manager.io"]
  18830. resources: ["orders"]
  18831. verbs: ["create", "delete", "get", "list", "watch"]
  18832. - apiGroups: [""]
  18833. resources: ["secrets"]
  18834. verbs: ["get", "list", "watch", "create", "update", "delete"]
  18835. - apiGroups: [""]
  18836. resources: ["events"]
  18837. verbs: ["create", "patch"]
  18838. ---
  18839. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18840. # Orders controller role
  18841. apiVersion: rbac.authorization.k8s.io/v1
  18842. kind: ClusterRole
  18843. metadata:
  18844. name: gitlab-certmanager-controller-orders
  18845. labels:
  18846. app: certmanager
  18847. app.kubernetes.io/name: certmanager
  18848. app.kubernetes.io/instance: gitlab
  18849. app.kubernetes.io/component: "controller"
  18850. app.kubernetes.io/version: "v1.5.4"
  18851. app.kubernetes.io/managed-by: Helm
  18852. helm.sh/chart: certmanager-v1.5.4
  18853. rules:
  18854. - apiGroups: ["acme.cert-manager.io"]
  18855. resources: ["orders", "orders/status"]
  18856. verbs: ["update"]
  18857. - apiGroups: ["acme.cert-manager.io"]
  18858. resources: ["orders", "challenges"]
  18859. verbs: ["get", "list", "watch"]
  18860. - apiGroups: ["cert-manager.io"]
  18861. resources: ["clusterissuers", "issuers"]
  18862. verbs: ["get", "list", "watch"]
  18863. - apiGroups: ["acme.cert-manager.io"]
  18864. resources: ["challenges"]
  18865. verbs: ["create", "delete"]
  18866. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  18867. # admission controller enabled:
  18868. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  18869. - apiGroups: ["acme.cert-manager.io"]
  18870. resources: ["orders/finalizers"]
  18871. verbs: ["update"]
  18872. - apiGroups: [""]
  18873. resources: ["secrets"]
  18874. verbs: ["get", "list", "watch"]
  18875. - apiGroups: [""]
  18876. resources: ["events"]
  18877. verbs: ["create", "patch"]
  18878. ---
  18879. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18880. # Challenges controller role
  18881. apiVersion: rbac.authorization.k8s.io/v1
  18882. kind: ClusterRole
  18883. metadata:
  18884. name: gitlab-certmanager-controller-challenges
  18885. labels:
  18886. app: certmanager
  18887. app.kubernetes.io/name: certmanager
  18888. app.kubernetes.io/instance: gitlab
  18889. app.kubernetes.io/component: "controller"
  18890. app.kubernetes.io/version: "v1.5.4"
  18891. app.kubernetes.io/managed-by: Helm
  18892. helm.sh/chart: certmanager-v1.5.4
  18893. rules:
  18894. # Use to update challenge resource status
  18895. - apiGroups: ["acme.cert-manager.io"]
  18896. resources: ["challenges", "challenges/status"]
  18897. verbs: ["update"]
  18898. # Used to watch challenge resources
  18899. - apiGroups: ["acme.cert-manager.io"]
  18900. resources: ["challenges"]
  18901. verbs: ["get", "list", "watch"]
  18902. # Used to watch challenges, issuer and clusterissuer resources
  18903. - apiGroups: ["cert-manager.io"]
  18904. resources: ["issuers", "clusterissuers"]
  18905. verbs: ["get", "list", "watch"]
  18906. # Need to be able to retrieve ACME account private key to complete challenges
  18907. - apiGroups: [""]
  18908. resources: ["secrets"]
  18909. verbs: ["get", "list", "watch"]
  18910. # Used to create events
  18911. - apiGroups: [""]
  18912. resources: ["events"]
  18913. verbs: ["create", "patch"]
  18914. # HTTP01 rules
  18915. - apiGroups: [""]
  18916. resources: ["pods", "services"]
  18917. verbs: ["get", "list", "watch", "create", "delete"]
  18918. - apiGroups: ["networking.k8s.io"]
  18919. resources: ["ingresses"]
  18920. verbs: ["get", "list", "watch", "create", "delete", "update"]
  18921. - apiGroups: [ "networking.x-k8s.io" ]
  18922. resources: [ "httproutes" ]
  18923. verbs: ["get", "list", "watch", "create", "delete", "update"]
  18924. # We require the ability to specify a custom hostname when we are creating
  18925. # new ingress resources.
  18926. # See: https://github.com/openshift/origin/blob/21f191775636f9acadb44fa42beeb4f75b255532/pkg/route/apiserver/admission/ingress_admission.go#L84-L148
  18927. - apiGroups: ["route.openshift.io"]
  18928. resources: ["routes/custom-host"]
  18929. verbs: ["create"]
  18930. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  18931. # admission controller enabled:
  18932. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  18933. - apiGroups: ["acme.cert-manager.io"]
  18934. resources: ["challenges/finalizers"]
  18935. verbs: ["update"]
  18936. # DNS01 rules (duplicated above)
  18937. - apiGroups: [""]
  18938. resources: ["secrets"]
  18939. verbs: ["get", "list", "watch"]
  18940. ---
  18941. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18942. # ingress-shim controller role
  18943. apiVersion: rbac.authorization.k8s.io/v1
  18944. kind: ClusterRole
  18945. metadata:
  18946. name: gitlab-certmanager-controller-ingress-shim
  18947. labels:
  18948. app: certmanager
  18949. app.kubernetes.io/name: certmanager
  18950. app.kubernetes.io/instance: gitlab
  18951. app.kubernetes.io/component: "controller"
  18952. app.kubernetes.io/version: "v1.5.4"
  18953. app.kubernetes.io/managed-by: Helm
  18954. helm.sh/chart: certmanager-v1.5.4
  18955. rules:
  18956. - apiGroups: ["cert-manager.io"]
  18957. resources: ["certificates", "certificaterequests"]
  18958. verbs: ["create", "update", "delete"]
  18959. - apiGroups: ["cert-manager.io"]
  18960. resources: ["certificates", "certificaterequests", "issuers", "clusterissuers"]
  18961. verbs: ["get", "list", "watch"]
  18962. - apiGroups: ["networking.k8s.io"]
  18963. resources: ["ingresses"]
  18964. verbs: ["get", "list", "watch"]
  18965. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  18966. # admission controller enabled:
  18967. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  18968. - apiGroups: ["networking.k8s.io"]
  18969. resources: ["ingresses/finalizers"]
  18970. verbs: ["update"]
  18971. - apiGroups: ["networking.x-k8s.io"]
  18972. resources: ["gateways", "httproutes"]
  18973. verbs: ["get", "list", "watch"]
  18974. - apiGroups: ["networking.x-k8s.io"]
  18975. resources: ["gateways/finalizers", "httproutes/finalizers"]
  18976. verbs: ["update"]
  18977. - apiGroups: [""]
  18978. resources: ["events"]
  18979. verbs: ["create", "patch"]
  18980. ---
  18981. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  18982. apiVersion: rbac.authorization.k8s.io/v1
  18983. kind: ClusterRole
  18984. metadata:
  18985. name: gitlab-certmanager-view
  18986. labels:
  18987. app: certmanager
  18988. app.kubernetes.io/name: certmanager
  18989. app.kubernetes.io/instance: gitlab
  18990. app.kubernetes.io/component: "controller"
  18991. app.kubernetes.io/version: "v1.5.4"
  18992. app.kubernetes.io/managed-by: Helm
  18993. helm.sh/chart: certmanager-v1.5.4
  18994. rbac.authorization.k8s.io/aggregate-to-view: "true"
  18995. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  18996. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  18997. rules:
  18998. - apiGroups: ["cert-manager.io"]
  18999. resources: ["certificates", "certificaterequests", "issuers"]
  19000. verbs: ["get", "list", "watch"]
  19001. - apiGroups: ["acme.cert-manager.io"]
  19002. resources: ["challenges", "orders"]
  19003. verbs: ["get", "list", "watch"]
  19004. ---
  19005. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19006. apiVersion: rbac.authorization.k8s.io/v1
  19007. kind: ClusterRole
  19008. metadata:
  19009. name: gitlab-certmanager-edit
  19010. labels:
  19011. app: certmanager
  19012. app.kubernetes.io/name: certmanager
  19013. app.kubernetes.io/instance: gitlab
  19014. app.kubernetes.io/component: "controller"
  19015. app.kubernetes.io/version: "v1.5.4"
  19016. app.kubernetes.io/managed-by: Helm
  19017. helm.sh/chart: certmanager-v1.5.4
  19018. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  19019. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  19020. rules:
  19021. - apiGroups: ["cert-manager.io"]
  19022. resources: ["certificates", "certificaterequests", "issuers"]
  19023. verbs: ["create", "delete", "deletecollection", "patch", "update"]
  19024. - apiGroups: ["acme.cert-manager.io"]
  19025. resources: ["challenges", "orders"]
  19026. verbs: ["create", "delete", "deletecollection", "patch", "update"]
  19027. ---
  19028. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19029. # Permission to approve CertificateRequests referencing cert-manager.io Issuers and ClusterIssuers
  19030. apiVersion: rbac.authorization.k8s.io/v1
  19031. kind: ClusterRole
  19032. metadata:
  19033. name: gitlab-certmanager-controller-approve:cert-manager-io
  19034. labels:
  19035. app: certmanager
  19036. app.kubernetes.io/name: certmanager
  19037. app.kubernetes.io/instance: gitlab
  19038. app.kubernetes.io/component: "cert-manager"
  19039. app.kubernetes.io/version: "v1.5.4"
  19040. app.kubernetes.io/managed-by: Helm
  19041. helm.sh/chart: certmanager-v1.5.4
  19042. rules:
  19043. - apiGroups: ["cert-manager.io"]
  19044. resources: ["signers"]
  19045. verbs: ["approve"]
  19046. resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
  19047. ---
  19048. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19049. # Permission to:
  19050. # - Update and sign CertificatSigningeRequests referencing cert-manager.io Issuers and ClusterIssuers
  19051. # - Perform SubjectAccessReviews to test whether users are able to reference Namespaced Issuers
  19052. apiVersion: rbac.authorization.k8s.io/v1
  19053. kind: ClusterRole
  19054. metadata:
  19055. name: gitlab-certmanager-controller-certificatesigningrequests
  19056. labels:
  19057. app: certmanager
  19058. app.kubernetes.io/name: certmanager
  19059. app.kubernetes.io/instance: gitlab
  19060. app.kubernetes.io/component: "cert-manager"
  19061. app.kubernetes.io/version: "v1.5.4"
  19062. app.kubernetes.io/managed-by: Helm
  19063. helm.sh/chart: certmanager-v1.5.4
  19064. rules:
  19065. - apiGroups: ["certificates.k8s.io"]
  19066. resources: ["certificatesigningrequests"]
  19067. verbs: ["get", "list", "watch", "update"]
  19068. - apiGroups: ["certificates.k8s.io"]
  19069. resources: ["certificatesigningrequests/status"]
  19070. verbs: ["update"]
  19071. - apiGroups: ["certificates.k8s.io"]
  19072. resources: ["signers"]
  19073. resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
  19074. verbs: ["sign"]
  19075. - apiGroups: ["authorization.k8s.io"]
  19076. resources: ["subjectaccessreviews"]
  19077. verbs: ["create"]
  19078. ---
  19079. # Source: gitlab/charts/certmanager/templates/webhook-rbac.yaml
  19080. apiVersion: rbac.authorization.k8s.io/v1
  19081. kind: ClusterRole
  19082. metadata:
  19083. name: gitlab-certmanager-webhook:subjectaccessreviews
  19084. labels:
  19085. app: webhook
  19086. app.kubernetes.io/name: webhook
  19087. app.kubernetes.io/instance: gitlab
  19088. app.kubernetes.io/component: "webhook"
  19089. app.kubernetes.io/version: "v1.5.4"
  19090. app.kubernetes.io/managed-by: Helm
  19091. helm.sh/chart: certmanager-v1.5.4
  19092. rules:
  19093. - apiGroups: ["authorization.k8s.io"]
  19094. resources: ["subjectaccessreviews"]
  19095. verbs: ["create"]
  19096. ---
  19097. # Source: gitlab/charts/nginx-ingress/templates/clusterrole.yaml
  19098. apiVersion: rbac.authorization.k8s.io/v1
  19099. kind: ClusterRole
  19100. metadata:
  19101. labels:
  19102. app: nginx-ingress
  19103. chart: nginx-ingress-4.0.6
  19104. release: gitlab
  19105. heritage: Helm
  19106. component: "controller"
  19107. helm.sh/chart: nginx-ingress-4.0.6
  19108. app.kubernetes.io/version: "1.0.4"
  19109. app.kubernetes.io/managed-by: Helm
  19110. name: gitlab-nginx-ingress
  19111. rules:
  19112. - apiGroups:
  19113. - ""
  19114. resources:
  19115. - configmaps
  19116. - endpoints
  19117. - nodes
  19118. - pods
  19119. - secrets
  19120. verbs:
  19121. - list
  19122. - watch
  19123. - apiGroups:
  19124. - ""
  19125. resources:
  19126. - nodes
  19127. verbs:
  19128. - get
  19129. - apiGroups:
  19130. - ""
  19131. resources:
  19132. - services
  19133. verbs:
  19134. - get
  19135. - list
  19136. - watch
  19137. - apiGroups:
  19138. - networking.k8s.io
  19139. resources:
  19140. - ingresses
  19141. verbs:
  19142. - get
  19143. - list
  19144. - watch
  19145. - apiGroups:
  19146. - ""
  19147. resources:
  19148. - events
  19149. verbs:
  19150. - create
  19151. - patch
  19152. - apiGroups:
  19153. - networking.k8s.io
  19154. resources:
  19155. - ingresses/status
  19156. verbs:
  19157. - update
  19158. - apiGroups:
  19159. - networking.k8s.io
  19160. resources:
  19161. - ingressclasses
  19162. verbs:
  19163. - get
  19164. - list
  19165. - watch
  19166. ---
  19167. # Source: gitlab/charts/prometheus/templates/server/clusterrole.yaml
  19168. apiVersion: rbac.authorization.k8s.io/v1
  19169. kind: ClusterRole
  19170. metadata:
  19171. labels:
  19172. component: "server"
  19173. app: prometheus
  19174. release: gitlab
  19175. chart: prometheus-15.0.4
  19176. heritage: Helm
  19177. name: gitlab-prometheus-server
  19178. rules:
  19179. - apiGroups:
  19180. - ""
  19181. resources:
  19182. - nodes
  19183. - nodes/proxy
  19184. - nodes/metrics
  19185. - services
  19186. - endpoints
  19187. - pods
  19188. - ingresses
  19189. - configmaps
  19190. verbs:
  19191. - get
  19192. - list
  19193. - watch
  19194. - apiGroups:
  19195. - "extensions"
  19196. - "networking.k8s.io"
  19197. resources:
  19198. - ingresses/status
  19199. - ingresses
  19200. verbs:
  19201. - get
  19202. - list
  19203. - watch
  19204. - nonResourceURLs:
  19205. - "/metrics"
  19206. verbs:
  19207. - get
  19208. ---
  19209. # Source: gitlab/charts/certmanager/templates/cainjector-rbac.yaml
  19210. apiVersion: rbac.authorization.k8s.io/v1
  19211. kind: ClusterRoleBinding
  19212. metadata:
  19213. name: gitlab-certmanager-cainjector
  19214. labels:
  19215. app: cainjector
  19216. app.kubernetes.io/name: cainjector
  19217. app.kubernetes.io/instance: gitlab
  19218. app.kubernetes.io/component: "cainjector"
  19219. app.kubernetes.io/version: "v1.5.4"
  19220. app.kubernetes.io/managed-by: Helm
  19221. helm.sh/chart: certmanager-v1.5.4
  19222. roleRef:
  19223. apiGroup: rbac.authorization.k8s.io
  19224. kind: ClusterRole
  19225. name: gitlab-certmanager-cainjector
  19226. subjects:
  19227. - name: gitlab-certmanager-cainjector
  19228. namespace: "default"
  19229. kind: ServiceAccount
  19230. ---
  19231. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19232. apiVersion: rbac.authorization.k8s.io/v1
  19233. kind: ClusterRoleBinding
  19234. metadata:
  19235. name: gitlab-certmanager-controller-issuers
  19236. labels:
  19237. app: certmanager
  19238. app.kubernetes.io/name: certmanager
  19239. app.kubernetes.io/instance: gitlab
  19240. app.kubernetes.io/component: "controller"
  19241. app.kubernetes.io/version: "v1.5.4"
  19242. app.kubernetes.io/managed-by: Helm
  19243. helm.sh/chart: certmanager-v1.5.4
  19244. roleRef:
  19245. apiGroup: rbac.authorization.k8s.io
  19246. kind: ClusterRole
  19247. name: gitlab-certmanager-controller-issuers
  19248. subjects:
  19249. - name: gitlab-certmanager
  19250. namespace: "default"
  19251. kind: ServiceAccount
  19252. ---
  19253. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19254. apiVersion: rbac.authorization.k8s.io/v1
  19255. kind: ClusterRoleBinding
  19256. metadata:
  19257. name: gitlab-certmanager-controller-clusterissuers
  19258. labels:
  19259. app: certmanager
  19260. app.kubernetes.io/name: certmanager
  19261. app.kubernetes.io/instance: gitlab
  19262. app.kubernetes.io/component: "controller"
  19263. app.kubernetes.io/version: "v1.5.4"
  19264. app.kubernetes.io/managed-by: Helm
  19265. helm.sh/chart: certmanager-v1.5.4
  19266. roleRef:
  19267. apiGroup: rbac.authorization.k8s.io
  19268. kind: ClusterRole
  19269. name: gitlab-certmanager-controller-clusterissuers
  19270. subjects:
  19271. - name: gitlab-certmanager
  19272. namespace: "default"
  19273. kind: ServiceAccount
  19274. ---
  19275. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19276. apiVersion: rbac.authorization.k8s.io/v1
  19277. kind: ClusterRoleBinding
  19278. metadata:
  19279. name: gitlab-certmanager-controller-certificates
  19280. labels:
  19281. app: certmanager
  19282. app.kubernetes.io/name: certmanager
  19283. app.kubernetes.io/instance: gitlab
  19284. app.kubernetes.io/component: "controller"
  19285. app.kubernetes.io/version: "v1.5.4"
  19286. app.kubernetes.io/managed-by: Helm
  19287. helm.sh/chart: certmanager-v1.5.4
  19288. roleRef:
  19289. apiGroup: rbac.authorization.k8s.io
  19290. kind: ClusterRole
  19291. name: gitlab-certmanager-controller-certificates
  19292. subjects:
  19293. - name: gitlab-certmanager
  19294. namespace: "default"
  19295. kind: ServiceAccount
  19296. ---
  19297. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19298. apiVersion: rbac.authorization.k8s.io/v1
  19299. kind: ClusterRoleBinding
  19300. metadata:
  19301. name: gitlab-certmanager-controller-orders
  19302. labels:
  19303. app: certmanager
  19304. app.kubernetes.io/name: certmanager
  19305. app.kubernetes.io/instance: gitlab
  19306. app.kubernetes.io/component: "controller"
  19307. app.kubernetes.io/version: "v1.5.4"
  19308. app.kubernetes.io/managed-by: Helm
  19309. helm.sh/chart: certmanager-v1.5.4
  19310. roleRef:
  19311. apiGroup: rbac.authorization.k8s.io
  19312. kind: ClusterRole
  19313. name: gitlab-certmanager-controller-orders
  19314. subjects:
  19315. - name: gitlab-certmanager
  19316. namespace: "default"
  19317. kind: ServiceAccount
  19318. ---
  19319. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19320. apiVersion: rbac.authorization.k8s.io/v1
  19321. kind: ClusterRoleBinding
  19322. metadata:
  19323. name: gitlab-certmanager-controller-challenges
  19324. labels:
  19325. app: certmanager
  19326. app.kubernetes.io/name: certmanager
  19327. app.kubernetes.io/instance: gitlab
  19328. app.kubernetes.io/component: "controller"
  19329. app.kubernetes.io/version: "v1.5.4"
  19330. app.kubernetes.io/managed-by: Helm
  19331. helm.sh/chart: certmanager-v1.5.4
  19332. roleRef:
  19333. apiGroup: rbac.authorization.k8s.io
  19334. kind: ClusterRole
  19335. name: gitlab-certmanager-controller-challenges
  19336. subjects:
  19337. - name: gitlab-certmanager
  19338. namespace: "default"
  19339. kind: ServiceAccount
  19340. ---
  19341. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19342. apiVersion: rbac.authorization.k8s.io/v1
  19343. kind: ClusterRoleBinding
  19344. metadata:
  19345. name: gitlab-certmanager-controller-ingress-shim
  19346. labels:
  19347. app: certmanager
  19348. app.kubernetes.io/name: certmanager
  19349. app.kubernetes.io/instance: gitlab
  19350. app.kubernetes.io/component: "controller"
  19351. app.kubernetes.io/version: "v1.5.4"
  19352. app.kubernetes.io/managed-by: Helm
  19353. helm.sh/chart: certmanager-v1.5.4
  19354. roleRef:
  19355. apiGroup: rbac.authorization.k8s.io
  19356. kind: ClusterRole
  19357. name: gitlab-certmanager-controller-ingress-shim
  19358. subjects:
  19359. - name: gitlab-certmanager
  19360. namespace: "default"
  19361. kind: ServiceAccount
  19362. ---
  19363. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19364. apiVersion: rbac.authorization.k8s.io/v1
  19365. kind: ClusterRoleBinding
  19366. metadata:
  19367. name: gitlab-certmanager-controller-approve:cert-manager-io
  19368. labels:
  19369. app: certmanager
  19370. app.kubernetes.io/name: certmanager
  19371. app.kubernetes.io/instance: gitlab
  19372. app.kubernetes.io/component: "cert-manager"
  19373. app.kubernetes.io/version: "v1.5.4"
  19374. app.kubernetes.io/managed-by: Helm
  19375. helm.sh/chart: certmanager-v1.5.4
  19376. roleRef:
  19377. apiGroup: rbac.authorization.k8s.io
  19378. kind: ClusterRole
  19379. name: gitlab-certmanager-controller-approve:cert-manager-io
  19380. subjects:
  19381. - name: gitlab-certmanager
  19382. namespace: "default"
  19383. kind: ServiceAccount
  19384. ---
  19385. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19386. apiVersion: rbac.authorization.k8s.io/v1
  19387. kind: ClusterRoleBinding
  19388. metadata:
  19389. name: gitlab-certmanager-controller-certificatesigningrequests
  19390. labels:
  19391. app: certmanager
  19392. app.kubernetes.io/name: certmanager
  19393. app.kubernetes.io/instance: gitlab
  19394. app.kubernetes.io/component: "cert-manager"
  19395. app.kubernetes.io/version: "v1.5.4"
  19396. app.kubernetes.io/managed-by: Helm
  19397. helm.sh/chart: certmanager-v1.5.4
  19398. roleRef:
  19399. apiGroup: rbac.authorization.k8s.io
  19400. kind: ClusterRole
  19401. name: gitlab-certmanager-controller-certificatesigningrequests
  19402. subjects:
  19403. - name: gitlab-certmanager
  19404. namespace: "default"
  19405. kind: ServiceAccount
  19406. ---
  19407. # Source: gitlab/charts/certmanager/templates/webhook-rbac.yaml
  19408. apiVersion: rbac.authorization.k8s.io/v1
  19409. kind: ClusterRoleBinding
  19410. metadata:
  19411. name: gitlab-certmanager-webhook:subjectaccessreviews
  19412. labels:
  19413. app: webhook
  19414. app.kubernetes.io/name: webhook
  19415. app.kubernetes.io/instance: gitlab
  19416. app.kubernetes.io/component: "webhook"
  19417. app.kubernetes.io/version: "v1.5.4"
  19418. app.kubernetes.io/managed-by: Helm
  19419. helm.sh/chart: certmanager-v1.5.4
  19420. roleRef:
  19421. apiGroup: rbac.authorization.k8s.io
  19422. kind: ClusterRole
  19423. name: gitlab-certmanager-webhook:subjectaccessreviews
  19424. subjects:
  19425. - apiGroup: ""
  19426. kind: ServiceAccount
  19427. name: gitlab-certmanager-webhook
  19428. namespace: default
  19429. ---
  19430. # Source: gitlab/charts/nginx-ingress/templates/clusterrolebinding.yaml
  19431. apiVersion: rbac.authorization.k8s.io/v1
  19432. kind: ClusterRoleBinding
  19433. metadata:
  19434. labels:
  19435. app: nginx-ingress
  19436. chart: nginx-ingress-4.0.6
  19437. release: gitlab
  19438. heritage: Helm
  19439. component: "controller"
  19440. helm.sh/chart: nginx-ingress-4.0.6
  19441. app.kubernetes.io/version: "1.0.4"
  19442. app.kubernetes.io/managed-by: Helm
  19443. name: gitlab-nginx-ingress
  19444. roleRef:
  19445. apiGroup: rbac.authorization.k8s.io
  19446. kind: ClusterRole
  19447. name: gitlab-nginx-ingress
  19448. subjects:
  19449. - kind: ServiceAccount
  19450. name: gitlab-nginx-ingress
  19451. namespace: "default"
  19452. ---
  19453. # Source: gitlab/charts/prometheus/templates/server/clusterrolebinding.yaml
  19454. apiVersion: rbac.authorization.k8s.io/v1
  19455. kind: ClusterRoleBinding
  19456. metadata:
  19457. labels:
  19458. component: "server"
  19459. app: prometheus
  19460. release: gitlab
  19461. chart: prometheus-15.0.4
  19462. heritage: Helm
  19463. name: gitlab-prometheus-server
  19464. subjects:
  19465. - kind: ServiceAccount
  19466. name: gitlab-prometheus-server
  19467. namespace: default
  19468. roleRef:
  19469. apiGroup: rbac.authorization.k8s.io
  19470. kind: ClusterRole
  19471. name: gitlab-prometheus-server
  19472. ---
  19473. # Source: gitlab/charts/certmanager-issuer/templates/rbac-config.yaml
  19474. kind: Role
  19475. apiVersion: rbac.authorization.k8s.io/v1
  19476. metadata:
  19477. name: gitlab-certmanager-issuer
  19478. namespace: default
  19479. rules:
  19480. - apiGroups: ["cert-manager.io"]
  19481. resources: ["issuers"]
  19482. verbs: ["get", "list", "update", "create", "patch"]
  19483. ---
  19484. # Source: gitlab/charts/certmanager/templates/cainjector-rbac.yaml
  19485. # leader election rules
  19486. apiVersion: rbac.authorization.k8s.io/v1
  19487. kind: Role
  19488. metadata:
  19489. name: gitlab-certmanager-cainjector:leaderelection
  19490. namespace: kube-system
  19491. labels:
  19492. app: cainjector
  19493. app.kubernetes.io/name: cainjector
  19494. app.kubernetes.io/instance: gitlab
  19495. app.kubernetes.io/component: "cainjector"
  19496. app.kubernetes.io/version: "v1.5.4"
  19497. app.kubernetes.io/managed-by: Helm
  19498. helm.sh/chart: certmanager-v1.5.4
  19499. rules:
  19500. # Used for leader election by the controller
  19501. # cert-manager-cainjector-leader-election is used by the CertificateBased injector controller
  19502. # see cmd/cainjector/start.go#L113
  19503. # cert-manager-cainjector-leader-election-core is used by the SecretBased injector controller
  19504. # see cmd/cainjector/start.go#L137
  19505. # See also: https://github.com/kubernetes-sigs/controller-runtime/pull/1144#discussion_r480173688
  19506. - apiGroups: [""]
  19507. resources: ["configmaps"]
  19508. resourceNames: ["cert-manager-cainjector-leader-election", "cert-manager-cainjector-leader-election-core"]
  19509. verbs: ["get", "update", "patch"]
  19510. - apiGroups: [""]
  19511. resources: ["configmaps"]
  19512. verbs: ["create"]
  19513. - apiGroups: ["coordination.k8s.io"]
  19514. resources: ["leases"]
  19515. resourceNames: ["cert-manager-cainjector-leader-election", "cert-manager-cainjector-leader-election-core"]
  19516. verbs: ["get", "update", "patch"]
  19517. - apiGroups: ["coordination.k8s.io"]
  19518. resources: ["leases"]
  19519. verbs: ["create"]
  19520. ---
  19521. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19522. apiVersion: rbac.authorization.k8s.io/v1
  19523. kind: Role
  19524. metadata:
  19525. name: gitlab-certmanager:leaderelection
  19526. namespace: kube-system
  19527. labels:
  19528. app: certmanager
  19529. app.kubernetes.io/name: certmanager
  19530. app.kubernetes.io/instance: gitlab
  19531. app.kubernetes.io/component: "controller"
  19532. app.kubernetes.io/version: "v1.5.4"
  19533. app.kubernetes.io/managed-by: Helm
  19534. helm.sh/chart: certmanager-v1.5.4
  19535. rules:
  19536. # Used for leader election by the controller
  19537. # See also: https://github.com/kubernetes-sigs/controller-runtime/pull/1144#discussion_r480173688
  19538. - apiGroups: [""]
  19539. resources: ["configmaps"]
  19540. resourceNames: ["cert-manager-controller"]
  19541. verbs: ["get", "update", "patch"]
  19542. - apiGroups: [""]
  19543. resources: ["configmaps"]
  19544. verbs: ["create"]
  19545. - apiGroups: ["coordination.k8s.io"]
  19546. resources: ["leases"]
  19547. resourceNames: ["cert-manager-controller"]
  19548. verbs: ["get", "update", "patch"]
  19549. - apiGroups: ["coordination.k8s.io"]
  19550. resources: ["leases"]
  19551. verbs: ["create"]
  19552. ---
  19553. # Source: gitlab/charts/certmanager/templates/webhook-rbac.yaml
  19554. apiVersion: rbac.authorization.k8s.io/v1
  19555. kind: Role
  19556. metadata:
  19557. name: gitlab-certmanager-webhook:dynamic-serving
  19558. namespace: "default"
  19559. labels:
  19560. app: webhook
  19561. app.kubernetes.io/name: webhook
  19562. app.kubernetes.io/instance: gitlab
  19563. app.kubernetes.io/component: "webhook"
  19564. app.kubernetes.io/version: "v1.5.4"
  19565. app.kubernetes.io/managed-by: Helm
  19566. helm.sh/chart: certmanager-v1.5.4
  19567. rules:
  19568. - apiGroups: [""]
  19569. resources: ["secrets"]
  19570. resourceNames:
  19571. - 'gitlab-certmanager-webhook-ca'
  19572. verbs: ["get", "list", "watch", "update"]
  19573. # It's not possible to grant CREATE permission on a single resourceName.
  19574. - apiGroups: [""]
  19575. resources: ["secrets"]
  19576. verbs: ["create"]
  19577. ---
  19578. # Source: gitlab/charts/gitlab-runner/templates/role.yaml
  19579. apiVersion: rbac.authorization.k8s.io/v1
  19580. kind: "Role"
  19581. metadata:
  19582. name: gitlab-gitlab-runner
  19583. labels:
  19584. app: gitlab-gitlab-runner
  19585. chart: gitlab-runner-0.48.1
  19586. release: "gitlab"
  19587. heritage: "Helm"
  19588. namespace: "default"
  19589. rules:
  19590. - apiGroups: [""]
  19591. resources: ["*"]
  19592. verbs: ["*"]
  19593. ---
  19594. # Source: gitlab/charts/nginx-ingress/templates/controller-role.yaml
  19595. apiVersion: rbac.authorization.k8s.io/v1
  19596. kind: Role
  19597. metadata:
  19598. labels:
  19599. app: nginx-ingress
  19600. chart: nginx-ingress-4.0.6
  19601. release: gitlab
  19602. heritage: Helm
  19603. component: "controller"
  19604. helm.sh/chart: nginx-ingress-4.0.6
  19605. app.kubernetes.io/version: "1.0.4"
  19606. app.kubernetes.io/managed-by: Helm
  19607. app.kubernetes.io/component: controller
  19608. name: gitlab-nginx-ingress
  19609. namespace: default
  19610. rules:
  19611. - apiGroups:
  19612. - ""
  19613. resources:
  19614. - namespaces
  19615. verbs:
  19616. - get
  19617. - apiGroups:
  19618. - ""
  19619. resources:
  19620. - configmaps
  19621. - pods
  19622. - secrets
  19623. - endpoints
  19624. verbs:
  19625. - get
  19626. - list
  19627. - watch
  19628. - apiGroups:
  19629. - ""
  19630. resources:
  19631. - services
  19632. verbs:
  19633. - get
  19634. - list
  19635. - watch
  19636. - apiGroups:
  19637. - networking.k8s.io
  19638. resources:
  19639. - ingresses
  19640. verbs:
  19641. - get
  19642. - list
  19643. - watch
  19644. - apiGroups:
  19645. - networking.k8s.io
  19646. resources:
  19647. - ingresses/status
  19648. verbs:
  19649. - update
  19650. - apiGroups:
  19651. - networking.k8s.io
  19652. resources:
  19653. - ingressclasses
  19654. verbs:
  19655. - get
  19656. - list
  19657. - watch
  19658. - apiGroups:
  19659. - ""
  19660. resources:
  19661. - configmaps
  19662. resourceNames:
  19663. - ingress-controller-leader
  19664. verbs:
  19665. - get
  19666. - update
  19667. - apiGroups:
  19668. - ""
  19669. resources:
  19670. - configmaps
  19671. verbs:
  19672. - create
  19673. - apiGroups:
  19674. - ""
  19675. resources:
  19676. - events
  19677. verbs:
  19678. - create
  19679. - patch
  19680. ---
  19681. # Source: gitlab/charts/certmanager-issuer/templates/rbac-config.yaml
  19682. apiVersion: rbac.authorization.k8s.io/v1
  19683. kind: RoleBinding
  19684. metadata:
  19685. name: gitlab-certmanager-issuer
  19686. namespace: default
  19687. labels:
  19688. app: certmanager-issuer
  19689. chart: certmanager-issuer-0.1.0
  19690. release: gitlab
  19691. heritage: Helm
  19692. roleRef:
  19693. apiGroup: rbac.authorization.k8s.io
  19694. kind: Role
  19695. name: gitlab-certmanager-issuer
  19696. subjects:
  19697. - kind: ServiceAccount
  19698. name: gitlab-certmanager-issuer
  19699. namespace: default
  19700. ---
  19701. # Source: gitlab/charts/certmanager/templates/cainjector-rbac.yaml
  19702. # grant cert-manager permission to manage the leaderelection configmap in the
  19703. # leader election namespace
  19704. apiVersion: rbac.authorization.k8s.io/v1
  19705. kind: RoleBinding
  19706. metadata:
  19707. name: gitlab-certmanager-cainjector:leaderelection
  19708. namespace: kube-system
  19709. labels:
  19710. app: cainjector
  19711. app.kubernetes.io/name: cainjector
  19712. app.kubernetes.io/instance: gitlab
  19713. app.kubernetes.io/component: "cainjector"
  19714. app.kubernetes.io/version: "v1.5.4"
  19715. app.kubernetes.io/managed-by: Helm
  19716. helm.sh/chart: certmanager-v1.5.4
  19717. roleRef:
  19718. apiGroup: rbac.authorization.k8s.io
  19719. kind: Role
  19720. name: gitlab-certmanager-cainjector:leaderelection
  19721. subjects:
  19722. - kind: ServiceAccount
  19723. name: gitlab-certmanager-cainjector
  19724. namespace: default
  19725. ---
  19726. # Source: gitlab/charts/certmanager/templates/rbac.yaml
  19727. # grant cert-manager permission to manage the leaderelection configmap in the
  19728. # leader election namespace
  19729. apiVersion: rbac.authorization.k8s.io/v1
  19730. kind: RoleBinding
  19731. metadata:
  19732. name: gitlab-certmanager:leaderelection
  19733. namespace: kube-system
  19734. labels:
  19735. app: certmanager
  19736. app.kubernetes.io/name: certmanager
  19737. app.kubernetes.io/instance: gitlab
  19738. app.kubernetes.io/component: "controller"
  19739. app.kubernetes.io/version: "v1.5.4"
  19740. app.kubernetes.io/managed-by: Helm
  19741. helm.sh/chart: certmanager-v1.5.4
  19742. roleRef:
  19743. apiGroup: rbac.authorization.k8s.io
  19744. kind: Role
  19745. name: gitlab-certmanager:leaderelection
  19746. subjects:
  19747. - apiGroup: ""
  19748. kind: ServiceAccount
  19749. name: gitlab-certmanager
  19750. namespace: default
  19751. ---
  19752. # Source: gitlab/charts/certmanager/templates/webhook-rbac.yaml
  19753. apiVersion: rbac.authorization.k8s.io/v1
  19754. kind: RoleBinding
  19755. metadata:
  19756. name: gitlab-certmanager-webhook:dynamic-serving
  19757. namespace: "default"
  19758. labels:
  19759. app: webhook
  19760. app.kubernetes.io/name: webhook
  19761. app.kubernetes.io/instance: gitlab
  19762. app.kubernetes.io/component: "webhook"
  19763. app.kubernetes.io/version: "v1.5.4"
  19764. app.kubernetes.io/managed-by: Helm
  19765. helm.sh/chart: certmanager-v1.5.4
  19766. roleRef:
  19767. apiGroup: rbac.authorization.k8s.io
  19768. kind: Role
  19769. name: gitlab-certmanager-webhook:dynamic-serving
  19770. subjects:
  19771. - apiGroup: ""
  19772. kind: ServiceAccount
  19773. name: gitlab-certmanager-webhook
  19774. namespace: default
  19775. ---
  19776. # Source: gitlab/charts/gitlab-runner/templates/role-binding.yaml
  19777. apiVersion: rbac.authorization.k8s.io/v1
  19778. kind: "RoleBinding"
  19779. metadata:
  19780. name: gitlab-gitlab-runner
  19781. labels:
  19782. app: gitlab-gitlab-runner
  19783. chart: gitlab-runner-0.48.1
  19784. release: "gitlab"
  19785. heritage: "Helm"
  19786. namespace: "default"
  19787. roleRef:
  19788. apiGroup: rbac.authorization.k8s.io
  19789. kind: "Role"
  19790. name: gitlab-gitlab-runner
  19791. subjects:
  19792. - kind: ServiceAccount
  19793. name: gitlab-gitlab-runner
  19794. namespace: "default"
  19795. ---
  19796. # Source: gitlab/charts/nginx-ingress/templates/controller-rolebinding.yaml
  19797. apiVersion: rbac.authorization.k8s.io/v1
  19798. kind: RoleBinding
  19799. metadata:
  19800. labels:
  19801. app: nginx-ingress
  19802. chart: nginx-ingress-4.0.6
  19803. release: gitlab
  19804. heritage: Helm
  19805. component: "controller"
  19806. helm.sh/chart: nginx-ingress-4.0.6
  19807. app.kubernetes.io/version: "1.0.4"
  19808. app.kubernetes.io/managed-by: Helm
  19809. app.kubernetes.io/component: controller
  19810. name: gitlab-nginx-ingress
  19811. namespace: default
  19812. roleRef:
  19813. apiGroup: rbac.authorization.k8s.io
  19814. kind: Role
  19815. name: gitlab-nginx-ingress
  19816. subjects:
  19817. - kind: ServiceAccount
  19818. name: gitlab-nginx-ingress
  19819. namespace: "default"
  19820. ---
  19821. # Source: gitlab/charts/certmanager/templates/service.yaml
  19822. apiVersion: v1
  19823. kind: Service
  19824. metadata:
  19825. name: gitlab-certmanager
  19826. namespace: "default"
  19827. labels:
  19828. app: certmanager
  19829. app.kubernetes.io/name: certmanager
  19830. app.kubernetes.io/instance: gitlab
  19831. app.kubernetes.io/component: "controller"
  19832. app.kubernetes.io/version: "v1.5.4"
  19833. app.kubernetes.io/managed-by: Helm
  19834. helm.sh/chart: certmanager-v1.5.4
  19835. spec:
  19836. type: ClusterIP
  19837. ports:
  19838. - protocol: TCP
  19839. port: 9402
  19840. name: tcp-prometheus-servicemonitor
  19841. targetPort: 9402
  19842. selector:
  19843. app.kubernetes.io/name: certmanager
  19844. app.kubernetes.io/instance: gitlab
  19845. app.kubernetes.io/component: "controller"
  19846. ---
  19847. # Source: gitlab/charts/certmanager/templates/webhook-service.yaml
  19848. apiVersion: v1
  19849. kind: Service
  19850. metadata:
  19851. name: gitlab-certmanager-webhook
  19852. namespace: "default"
  19853. labels:
  19854. app: webhook
  19855. app.kubernetes.io/name: webhook
  19856. app.kubernetes.io/instance: gitlab
  19857. app.kubernetes.io/component: "webhook"
  19858. app.kubernetes.io/version: "v1.5.4"
  19859. app.kubernetes.io/managed-by: Helm
  19860. helm.sh/chart: certmanager-v1.5.4
  19861. spec:
  19862. type: ClusterIP
  19863. ports:
  19864. - name: https
  19865. port: 443
  19866. protocol: TCP
  19867. targetPort: 10250
  19868. selector:
  19869. app.kubernetes.io/name: webhook
  19870. app.kubernetes.io/instance: gitlab
  19871. app.kubernetes.io/component: "webhook"
  19872. ---
  19873. # Source: gitlab/charts/gitlab/charts/gitaly/templates/service.yaml
  19874. apiVersion: v1
  19875. kind: Service
  19876. metadata:
  19877. name: gitlab-gitaly
  19878. namespace: default
  19879. labels:
  19880. app: gitaly
  19881. chart: gitaly-6.8.0
  19882. release: gitlab
  19883. heritage: Helm
  19884. annotations:
  19885. spec:
  19886. type: ClusterIP
  19887. clusterIP: "None"
  19888. ports:
  19889. - port: 8075
  19890. # This port is NOT prefixed with `grpc` due to
  19891. # https://gitlab.com/gitlab-org/charts/gitlab/-/issues/3822
  19892. name: tcp-gitaly
  19893. targetPort: grpc-gitaly
  19894. - port: 9236
  19895. name: http-metrics
  19896. targetPort: http-metrics
  19897. selector:
  19898. app: gitaly
  19899. release: gitlab
  19900. ---
  19901. # Source: gitlab/charts/gitlab/charts/gitlab-exporter/templates/service.yaml
  19902. apiVersion: v1
  19903. kind: Service
  19904. metadata:
  19905. name: gitlab-gitlab-exporter
  19906. namespace: default
  19907. labels:
  19908. app: gitlab-exporter
  19909. chart: gitlab-exporter-6.8.0
  19910. release: gitlab
  19911. heritage: Helm
  19912. annotations:
  19913. spec:
  19914. type: ClusterIP
  19915. ports:
  19916. - port: 9168
  19917. targetPort: http-metrics
  19918. protocol: TCP
  19919. name: http-metrics
  19920. selector:
  19921. app: gitlab-exporter
  19922. release: gitlab
  19923. ---
  19924. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/service.yaml
  19925. apiVersion: v1
  19926. kind: Service
  19927. metadata:
  19928. name: gitlab-gitlab-shell
  19929. namespace: default
  19930. labels:
  19931. app: gitlab-shell
  19932. chart: gitlab-shell-6.8.0
  19933. release: gitlab
  19934. heritage: Helm
  19935. annotations:
  19936. spec:
  19937. type: ClusterIP
  19938. ports:
  19939. - port: 22
  19940. targetPort: 2222
  19941. protocol: TCP
  19942. name: ssh
  19943. selector:
  19944. app: gitlab-shell
  19945. release: gitlab
  19946. ---
  19947. # Source: gitlab/charts/gitlab/charts/kas/templates/service.yaml
  19948. apiVersion: v1
  19949. kind: Service
  19950. metadata:
  19951. name: gitlab-kas
  19952. namespace: default
  19953. labels:
  19954. app: kas
  19955. chart: kas-6.8.0
  19956. release: gitlab
  19957. heritage: Helm
  19958. annotations:
  19959. spec:
  19960. type: "ClusterIP"
  19961. ports:
  19962. - port: 8150
  19963. targetPort: 8150
  19964. protocol: TCP
  19965. name: grpc-kas-external-api
  19966. - port: 8153
  19967. targetPort: 8153
  19968. protocol: TCP
  19969. name: grpc-kas-internal-api
  19970. - port: 8154
  19971. targetPort: 8154
  19972. protocol: TCP
  19973. name: grpc-kas-k8s-api
  19974. - port: 8151
  19975. targetPort: http-metrics
  19976. protocol: TCP
  19977. name: http-metrics
  19978. selector:
  19979. app: kas
  19980. release: gitlab
  19981. ---
  19982. # Source: gitlab/charts/gitlab/charts/webservice/templates/service.yaml
  19983. apiVersion: v1
  19984. kind: Service
  19985. metadata:
  19986. name: gitlab-webservice-default
  19987. namespace: default
  19988. labels:
  19989. app: webservice
  19990. chart: webservice-6.8.0
  19991. release: gitlab
  19992. heritage: Helm
  19993. gitlab.com/webservice-name: default
  19994. annotations:
  19995. spec:
  19996. type: ClusterIP
  19997. ports:
  19998. - port: 8080
  19999. targetPort: http-webservice
  20000. protocol: TCP
  20001. name: http-webservice
  20002. - port: 8181
  20003. targetPort: http-workhorse
  20004. protocol: TCP
  20005. name: http-workhorse
  20006. - port: 8083
  20007. targetPort: http-metrics-ws
  20008. protocol: TCP
  20009. name: http-metrics-ws
  20010. selector:
  20011. app: webservice
  20012. release: gitlab
  20013. gitlab.com/webservice-name: default
  20014. ---
  20015. # Source: gitlab/charts/minio/templates/minio_svc.yaml
  20016. kind: Service
  20017. apiVersion: v1
  20018. metadata:
  20019. name: gitlab-minio-svc
  20020. namespace: default
  20021. labels:
  20022. app: minio
  20023. chart: minio-0.4.3
  20024. release: gitlab
  20025. heritage: Helm
  20026. annotations:
  20027. spec:
  20028. type: ClusterIP
  20029. selector:
  20030. app: minio
  20031. release: gitlab
  20032. component: app
  20033. ports:
  20034. - name: http
  20035. port: 9000
  20036. targetPort: 9000
  20037. protocol: TCP
  20038. ---
  20039. # Source: gitlab/charts/nginx-ingress/templates/controller-service-metrics.yaml
  20040. apiVersion: v1
  20041. kind: Service
  20042. metadata:
  20043. annotations:
  20044. gitlab.com/prometheus_port: "10254"
  20045. gitlab.com/prometheus_scrape: "true"
  20046. prometheus.io/port: "10254"
  20047. prometheus.io/scrape: "true"
  20048. labels:
  20049. app: nginx-ingress
  20050. chart: nginx-ingress-4.0.6
  20051. release: gitlab
  20052. heritage: Helm
  20053. component: "controller"
  20054. helm.sh/chart: nginx-ingress-4.0.6
  20055. app.kubernetes.io/version: "1.0.4"
  20056. app.kubernetes.io/managed-by: Helm
  20057. app.kubernetes.io/component: controller
  20058. name: gitlab-nginx-ingress-controller-metrics
  20059. namespace: default
  20060. spec:
  20061. type: ClusterIP
  20062. ports:
  20063. - name: metrics
  20064. port: 10254
  20065. protocol: TCP
  20066. targetPort: metrics
  20067. selector:
  20068. app: nginx-ingress
  20069. release: gitlab
  20070. component: "controller"
  20071. ---
  20072. # Source: gitlab/charts/nginx-ingress/templates/controller-service.yaml
  20073. apiVersion: v1
  20074. kind: Service
  20075. metadata:
  20076. annotations:
  20077. labels:
  20078. app: nginx-ingress
  20079. chart: nginx-ingress-4.0.6
  20080. release: gitlab
  20081. heritage: Helm
  20082. component: "controller"
  20083. helm.sh/chart: nginx-ingress-4.0.6
  20084. app.kubernetes.io/version: "1.0.4"
  20085. app.kubernetes.io/managed-by: Helm
  20086. app.kubernetes.io/component: controller
  20087. name: gitlab-nginx-ingress-controller
  20088. namespace: default
  20089. spec:
  20090. type: LoadBalancer
  20091. externalTrafficPolicy: Local
  20092. ipFamilyPolicy: SingleStack
  20093. ipFamilies:
  20094. - IPv4
  20095. ports:
  20096. - name: http
  20097. port: 80
  20098. protocol: TCP
  20099. targetPort: http
  20100. - name: https
  20101. port: 443
  20102. protocol: TCP
  20103. targetPort: https
  20104. - name: gitlab-shell
  20105. port: 22
  20106. protocol: TCP
  20107. targetPort: gitlab-shell
  20108. selector:
  20109. app: nginx-ingress
  20110. release: gitlab
  20111. component: "controller"
  20112. ---
  20113. # Source: gitlab/charts/postgresql/templates/metrics-svc.yaml
  20114. apiVersion: v1
  20115. kind: Service
  20116. metadata:
  20117. name: gitlab-postgresql-metrics
  20118. labels:
  20119. app: postgresql
  20120. chart: postgresql-8.9.4
  20121. release: "gitlab"
  20122. heritage: "Helm"
  20123. annotations:
  20124. prometheus.io/port: "9187"
  20125. prometheus.io/scrape: "true"
  20126. spec:
  20127. type: ClusterIP
  20128. ports:
  20129. - name: http-metrics
  20130. port: 9187
  20131. targetPort: http-metrics
  20132. selector:
  20133. app: postgresql
  20134. release: gitlab
  20135. role: master
  20136. ---
  20137. # Source: gitlab/charts/postgresql/templates/svc-headless.yaml
  20138. apiVersion: v1
  20139. kind: Service
  20140. metadata:
  20141. name: gitlab-postgresql-headless
  20142. labels:
  20143. app: postgresql
  20144. chart: postgresql-8.9.4
  20145. release: "gitlab"
  20146. heritage: "Helm"
  20147. spec:
  20148. type: ClusterIP
  20149. clusterIP: None
  20150. ports:
  20151. - name: tcp-postgresql
  20152. port: 5432
  20153. targetPort: tcp-postgresql
  20154. selector:
  20155. app: postgresql
  20156. release: "gitlab"
  20157. ---
  20158. # Source: gitlab/charts/postgresql/templates/svc.yaml
  20159. apiVersion: v1
  20160. kind: Service
  20161. metadata:
  20162. name: gitlab-postgresql
  20163. labels:
  20164. app: postgresql
  20165. chart: postgresql-8.9.4
  20166. release: "gitlab"
  20167. heritage: "Helm"
  20168. annotations:
  20169. spec:
  20170. type: ClusterIP
  20171. ports:
  20172. - name: tcp-postgresql
  20173. port: 5432
  20174. targetPort: tcp-postgresql
  20175. selector:
  20176. app: postgresql
  20177. release: "gitlab"
  20178. role: master
  20179. ---
  20180. # Source: gitlab/charts/prometheus/templates/server/service.yaml
  20181. apiVersion: v1
  20182. kind: Service
  20183. metadata:
  20184. labels:
  20185. component: "server"
  20186. app: prometheus
  20187. release: gitlab
  20188. chart: prometheus-15.0.4
  20189. heritage: Helm
  20190. name: gitlab-prometheus-server
  20191. namespace: default
  20192. spec:
  20193. ports:
  20194. - name: http
  20195. port: 80
  20196. protocol: TCP
  20197. targetPort: 9090
  20198. selector:
  20199. component: "server"
  20200. app: prometheus
  20201. release: gitlab
  20202. sessionAffinity: None
  20203. type: "ClusterIP"
  20204. ---
  20205. # Source: gitlab/charts/redis/templates/headless-svc.yaml
  20206. apiVersion: v1
  20207. kind: Service
  20208. metadata:
  20209. name: gitlab-redis-headless
  20210. namespace: "default"
  20211. labels:
  20212. app: redis
  20213. chart: redis-11.3.4
  20214. release: gitlab
  20215. heritage: Helm
  20216. spec:
  20217. type: ClusterIP
  20218. clusterIP: None
  20219. ports:
  20220. - name: redis
  20221. port: 6379
  20222. targetPort: redis
  20223. selector:
  20224. app: redis
  20225. release: gitlab
  20226. ---
  20227. # Source: gitlab/charts/redis/templates/metrics-svc.yaml
  20228. apiVersion: v1
  20229. kind: Service
  20230. metadata:
  20231. name: gitlab-redis-metrics
  20232. namespace: "default"
  20233. labels:
  20234. app: redis
  20235. chart: redis-11.3.4
  20236. release: gitlab
  20237. heritage: Helm
  20238. app.kubernetes.io/component: "metrics"
  20239. spec:
  20240. type: ClusterIP
  20241. ports:
  20242. - name: metrics
  20243. port: 9121
  20244. targetPort: metrics
  20245. selector:
  20246. app: redis
  20247. release: gitlab
  20248. ---
  20249. # Source: gitlab/charts/redis/templates/redis-master-svc.yaml
  20250. apiVersion: v1
  20251. kind: Service
  20252. metadata:
  20253. name: gitlab-redis-master
  20254. namespace: "default"
  20255. labels:
  20256. app: redis
  20257. chart: redis-11.3.4
  20258. release: gitlab
  20259. heritage: Helm
  20260. spec:
  20261. type: ClusterIP
  20262. ports:
  20263. - name: redis
  20264. port: 6379
  20265. targetPort: redis
  20266. selector:
  20267. app: redis
  20268. release: gitlab
  20269. role: master
  20270. ---
  20271. # Source: gitlab/charts/registry/templates/service.yaml
  20272. apiVersion: v1
  20273. kind: Service
  20274. metadata:
  20275. name: gitlab-registry
  20276. namespace: default
  20277. labels:
  20278. app: registry
  20279. chart: registry-0.7.0
  20280. release: gitlab
  20281. heritage: Helm
  20282. annotations:
  20283. spec:
  20284. type: ClusterIP
  20285. ports:
  20286. - port: 5000
  20287. targetPort: http
  20288. protocol: TCP
  20289. name: http-registry
  20290. selector:
  20291. app: registry
  20292. release: gitlab
  20293. ---
  20294. # Source: gitlab/charts/certmanager/templates/cainjector-deployment.yaml
  20295. apiVersion: apps/v1
  20296. kind: Deployment
  20297. metadata:
  20298. name: gitlab-certmanager-cainjector
  20299. namespace: "default"
  20300. labels:
  20301. app: cainjector
  20302. app.kubernetes.io/name: cainjector
  20303. app.kubernetes.io/instance: gitlab
  20304. app.kubernetes.io/component: "cainjector"
  20305. app.kubernetes.io/version: "v1.5.4"
  20306. app.kubernetes.io/managed-by: Helm
  20307. helm.sh/chart: certmanager-v1.5.4
  20308. spec:
  20309. replicas: 1
  20310. selector:
  20311. matchLabels:
  20312. app.kubernetes.io/name: cainjector
  20313. app.kubernetes.io/instance: gitlab
  20314. app.kubernetes.io/component: "cainjector"
  20315. template:
  20316. metadata:
  20317. labels:
  20318. app: cainjector
  20319. app.kubernetes.io/name: cainjector
  20320. app.kubernetes.io/instance: gitlab
  20321. app.kubernetes.io/component: "cainjector"
  20322. app.kubernetes.io/version: "v1.5.4"
  20323. app.kubernetes.io/managed-by: Helm
  20324. helm.sh/chart: certmanager-v1.5.4
  20325. spec:
  20326. serviceAccountName: gitlab-certmanager-cainjector
  20327. securityContext:
  20328. runAsNonRoot: true
  20329. containers:
  20330. - name: certmanager
  20331. image: "quay.io/jetstack/cert-manager-cainjector:v1.5.4"
  20332. imagePullPolicy: IfNotPresent
  20333. args:
  20334. - --v=2
  20335. - --leader-election-namespace=kube-system
  20336. env:
  20337. - name: POD_NAMESPACE
  20338. valueFrom:
  20339. fieldRef:
  20340. fieldPath: metadata.namespace
  20341. resources:
  20342. {}
  20343. ---
  20344. # Source: gitlab/charts/certmanager/templates/deployment.yaml
  20345. apiVersion: apps/v1
  20346. kind: Deployment
  20347. metadata:
  20348. name: gitlab-certmanager
  20349. namespace: "default"
  20350. labels:
  20351. app: certmanager
  20352. app.kubernetes.io/name: certmanager
  20353. app.kubernetes.io/instance: gitlab
  20354. app.kubernetes.io/component: "controller"
  20355. app.kubernetes.io/version: "v1.5.4"
  20356. app.kubernetes.io/managed-by: Helm
  20357. helm.sh/chart: certmanager-v1.5.4
  20358. spec:
  20359. replicas: 1
  20360. selector:
  20361. matchLabels:
  20362. app.kubernetes.io/name: certmanager
  20363. app.kubernetes.io/instance: gitlab
  20364. app.kubernetes.io/component: "controller"
  20365. template:
  20366. metadata:
  20367. labels:
  20368. app: certmanager
  20369. app.kubernetes.io/name: certmanager
  20370. app.kubernetes.io/instance: gitlab
  20371. app.kubernetes.io/component: "controller"
  20372. app.kubernetes.io/version: "v1.5.4"
  20373. app.kubernetes.io/managed-by: Helm
  20374. helm.sh/chart: certmanager-v1.5.4
  20375. annotations:
  20376. prometheus.io/path: "/metrics"
  20377. prometheus.io/scrape: 'true'
  20378. prometheus.io/port: '9402'
  20379. spec:
  20380. serviceAccountName: gitlab-certmanager
  20381. securityContext:
  20382. runAsNonRoot: true
  20383. containers:
  20384. - name: certmanager
  20385. image: "quay.io/jetstack/cert-manager-controller:v1.5.4"
  20386. imagePullPolicy: IfNotPresent
  20387. args:
  20388. - --v=2
  20389. - --cluster-resource-namespace=$(POD_NAMESPACE)
  20390. - --leader-election-namespace=kube-system
  20391. ports:
  20392. - containerPort: 9402
  20393. protocol: TCP
  20394. env:
  20395. - name: POD_NAMESPACE
  20396. valueFrom:
  20397. fieldRef:
  20398. fieldPath: metadata.namespace
  20399. resources:
  20400. {}
  20401. ---
  20402. # Source: gitlab/charts/certmanager/templates/webhook-deployment.yaml
  20403. apiVersion: apps/v1
  20404. kind: Deployment
  20405. metadata:
  20406. name: gitlab-certmanager-webhook
  20407. namespace: "default"
  20408. labels:
  20409. app: webhook
  20410. app.kubernetes.io/name: webhook
  20411. app.kubernetes.io/instance: gitlab
  20412. app.kubernetes.io/component: "webhook"
  20413. app.kubernetes.io/version: "v1.5.4"
  20414. app.kubernetes.io/managed-by: Helm
  20415. helm.sh/chart: certmanager-v1.5.4
  20416. spec:
  20417. replicas: 1
  20418. selector:
  20419. matchLabels:
  20420. app.kubernetes.io/name: webhook
  20421. app.kubernetes.io/instance: gitlab
  20422. app.kubernetes.io/component: "webhook"
  20423. template:
  20424. metadata:
  20425. labels:
  20426. app: webhook
  20427. app.kubernetes.io/name: webhook
  20428. app.kubernetes.io/instance: gitlab
  20429. app.kubernetes.io/component: "webhook"
  20430. app.kubernetes.io/version: "v1.5.4"
  20431. app.kubernetes.io/managed-by: Helm
  20432. helm.sh/chart: certmanager-v1.5.4
  20433. spec:
  20434. serviceAccountName: gitlab-certmanager-webhook
  20435. securityContext:
  20436. runAsNonRoot: true
  20437. containers:
  20438. - name: certmanager
  20439. image: "quay.io/jetstack/cert-manager-webhook:v1.5.4"
  20440. imagePullPolicy: IfNotPresent
  20441. args:
  20442. - --v=2
  20443. - --secure-port=10250
  20444. - --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
  20445. - --dynamic-serving-ca-secret-name=gitlab-certmanager-webhook-ca
  20446. - --dynamic-serving-dns-names=gitlab-certmanager-webhook,gitlab-certmanager-webhook.default,gitlab-certmanager-webhook.default.svc
  20447. ports:
  20448. - name: https
  20449. protocol: TCP
  20450. containerPort: 10250
  20451. livenessProbe:
  20452. httpGet:
  20453. path: /livez
  20454. port: 6080
  20455. scheme: HTTP
  20456. initialDelaySeconds: 60
  20457. periodSeconds: 10
  20458. timeoutSeconds: 1
  20459. successThreshold: 1
  20460. failureThreshold: 3
  20461. readinessProbe:
  20462. httpGet:
  20463. path: /healthz
  20464. port: 6080
  20465. scheme: HTTP
  20466. initialDelaySeconds: 5
  20467. periodSeconds: 5
  20468. timeoutSeconds: 1
  20469. successThreshold: 1
  20470. failureThreshold: 3
  20471. env:
  20472. - name: POD_NAMESPACE
  20473. valueFrom:
  20474. fieldRef:
  20475. fieldPath: metadata.namespace
  20476. resources:
  20477. {}
  20478. ---
  20479. # Source: gitlab/charts/gitlab-runner/templates/deployment.yaml
  20480. apiVersion: apps/v1
  20481. kind: Deployment
  20482. metadata:
  20483. name: gitlab-gitlab-runner
  20484. namespace: "default"
  20485. labels:
  20486. app: gitlab-gitlab-runner
  20487. chart: gitlab-runner-0.48.1
  20488. release: "gitlab"
  20489. heritage: "Helm"
  20490. spec:
  20491. replicas: 1
  20492. revisionHistoryLimit: 10
  20493. selector:
  20494. matchLabels:
  20495. app: gitlab-gitlab-runner
  20496. template:
  20497. metadata:
  20498. labels:
  20499. app: gitlab-gitlab-runner
  20500. chart: gitlab-runner-0.48.1
  20501. release: "gitlab"
  20502. heritage: "Helm"
  20503. annotations:
  20504. checksum/configmap: 4995a81a2d657ddccfe4281c1ef1169c5d458d48f07f6d32124d57018491b8bb
  20505. checksum/secrets: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  20506. gitlab.com/prometheus_port: "9252"
  20507. gitlab.com/prometheus_scrape: "true"
  20508. spec:
  20509. securityContext:
  20510. fsGroup: 65533
  20511. runAsUser: 100
  20512. terminationGracePeriodSeconds: 3600
  20513. serviceAccountName: gitlab-gitlab-runner
  20514. containers:
  20515. - name: gitlab-gitlab-runner
  20516. image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine-v15.7.2
  20517. imagePullPolicy: "IfNotPresent"
  20518. securityContext:
  20519. allowPrivilegeEscalation: false
  20520. capabilities:
  20521. drop:
  20522. - ALL
  20523. privileged: false
  20524. readOnlyRootFilesystem: false
  20525. runAsNonRoot: true
  20526. command: ["/usr/bin/dumb-init", "--", "/bin/bash", "/configmaps/entrypoint"]
  20527. env:
  20528. - name: CI_SERVER_URL
  20529. value: https://gitlab.git.dezendorf.net
  20530. - name: CLONE_URL
  20531. value: ""
  20532. - name: RUNNER_EXECUTOR
  20533. value: "kubernetes"
  20534. - name: REGISTER_LOCKED
  20535. value: "false"
  20536. - name: RUNNER_TAG_LIST
  20537. value: ""
  20538. - name: KUBERNETES_NAMESPACE
  20539. value: "default"
  20540. livenessProbe:
  20541. exec:
  20542. command: ["/bin/bash", "/configmaps/check-live"]
  20543. initialDelaySeconds: 60
  20544. timeoutSeconds: 1
  20545. periodSeconds: 10
  20546. successThreshold: 1
  20547. failureThreshold: 3
  20548. readinessProbe:
  20549. exec:
  20550. command: ["/usr/bin/pgrep","gitlab.*runner"]
  20551. initialDelaySeconds: 10
  20552. timeoutSeconds: 1
  20553. periodSeconds: 10
  20554. successThreshold: 1
  20555. failureThreshold: 3
  20556. ports:
  20557. - name: "metrics"
  20558. containerPort: 9252
  20559. volumeMounts:
  20560. - name: projected-secrets
  20561. mountPath: /secrets
  20562. - name: etc-gitlab-runner
  20563. mountPath: /home/gitlab-runner/.gitlab-runner
  20564. - name: configmaps
  20565. mountPath: /configmaps
  20566. resources:
  20567. {}
  20568. volumes:
  20569. - name: runner-secrets
  20570. emptyDir:
  20571. medium: "Memory"
  20572. - name: etc-gitlab-runner
  20573. emptyDir:
  20574. medium: "Memory"
  20575. - name: projected-secrets
  20576. projected:
  20577. sources:
  20578. - secret:
  20579. name: "gitlab-minio-secret"
  20580. - secret:
  20581. name: "gitlab-gitlab-runner-secret"
  20582. items:
  20583. - key: runner-registration-token
  20584. path: runner-registration-token
  20585. - key: runner-token
  20586. path: runner-token
  20587. - name: configmaps
  20588. configMap:
  20589. name: gitlab-gitlab-runner
  20590. ---
  20591. # Source: gitlab/charts/gitlab/charts/gitlab-exporter/templates/deployment.yaml
  20592. apiVersion: apps/v1
  20593. kind: Deployment
  20594. metadata:
  20595. name: gitlab-gitlab-exporter
  20596. namespace: default
  20597. labels:
  20598. app: gitlab-exporter
  20599. chart: gitlab-exporter-6.8.0
  20600. release: gitlab
  20601. heritage: Helm
  20602. annotations:
  20603. spec:
  20604. replicas: 1
  20605. selector:
  20606. matchLabels:
  20607. app: gitlab-exporter
  20608. release: gitlab
  20609. template:
  20610. metadata:
  20611. labels:
  20612. app: gitlab-exporter
  20613. chart: gitlab-exporter-6.8.0
  20614. release: gitlab
  20615. heritage: Helm
  20616. annotations:
  20617. checksum/config: 88ebf8122f2a026987387c2f8f0a7e0dd8fe1848a5fd16f4132eda678082e85e
  20618. gitlab.com/prometheus_scrape: "true"
  20619. gitlab.com/prometheus_port: "9168"
  20620. gitlab.com/prometheus_path: /metrics
  20621. prometheus.io/scrape: "true"
  20622. prometheus.io/port: "9168"
  20623. prometheus.io/path: /metrics
  20624. spec:
  20625. securityContext:
  20626. runAsUser: 1000
  20627. fsGroup: 1000
  20628. affinity:
  20629. podAntiAffinity:
  20630. preferredDuringSchedulingIgnoredDuringExecution:
  20631. - weight: 1
  20632. podAffinityTerm:
  20633. topologyKey: "kubernetes.io/hostname"
  20634. labelSelector:
  20635. matchLabels:
  20636. app: gitlab-exporter
  20637. release: gitlab
  20638. automountServiceAccountToken: false
  20639. initContainers:
  20640. - name: certificates
  20641. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  20642. env:
  20643. - name: MALLOC_CONF
  20644. value: "dirty_decay_ms:0,muzzy_decay_ms:0"
  20645. - name: RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO
  20646. value: "0.111"
  20647. - name: RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO
  20648. value: "0.055"
  20649. - name: RUBY_GC_HEAP_INIT_SLOTS
  20650. value: "80000"
  20651. volumeMounts:
  20652. - name: etc-ssl-certs
  20653. mountPath: /etc/ssl/certs
  20654. readOnly: false
  20655. - name: etc-pki-ca-trust-extracted-pem
  20656. mountPath: /etc/pki/ca-trust/extracted/pem
  20657. readOnly: false
  20658. resources:
  20659. requests:
  20660. cpu: 50m
  20661. - name: configure
  20662. command: ['sh', '/config/configure']
  20663. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  20664. env:
  20665. - name: MALLOC_CONF
  20666. value: "dirty_decay_ms:0,muzzy_decay_ms:0"
  20667. - name: RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO
  20668. value: "0.111"
  20669. - name: RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO
  20670. value: "0.055"
  20671. - name: RUBY_GC_HEAP_INIT_SLOTS
  20672. value: "80000"
  20673. volumeMounts:
  20674. - name: gitlab-exporter-config
  20675. mountPath: /config
  20676. readOnly: true
  20677. - name: init-gitlab-exporter-secrets
  20678. mountPath: /init-config
  20679. readOnly: true
  20680. - name: gitlab-exporter-secrets
  20681. mountPath: /init-secrets
  20682. readOnly: false
  20683. resources:
  20684. requests:
  20685. cpu: 50m
  20686. containers:
  20687. - name: gitlab-exporter
  20688. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-exporter:12.1.0"
  20689. env:
  20690. - name: CONFIG_TEMPLATE_DIRECTORY
  20691. value: '/var/opt/gitlab-exporter/templates'
  20692. - name: CONFIG_DIRECTORY
  20693. value: '/etc/gitlab-exporter'
  20694. - name: MALLOC_CONF
  20695. value: "dirty_decay_ms:0,muzzy_decay_ms:0"
  20696. - name: RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO
  20697. value: "0.111"
  20698. - name: RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO
  20699. value: "0.055"
  20700. - name: RUBY_GC_HEAP_INIT_SLOTS
  20701. value: "80000"
  20702. ports:
  20703. - containerPort: 9168
  20704. name: http-metrics
  20705. volumeMounts:
  20706. - name: gitlab-exporter-config
  20707. mountPath: /var/opt/gitlab-exporter/templates/gitlab-exporter.yml.erb
  20708. subPath: gitlab-exporter.yml.erb
  20709. - name: gitlab-exporter-secrets
  20710. mountPath: '/etc/gitlab'
  20711. readOnly: true
  20712. - name: etc-ssl-certs
  20713. mountPath: /etc/ssl/certs/
  20714. readOnly: true
  20715. - name: etc-pki-ca-trust-extracted-pem
  20716. mountPath: /etc/pki/ca-trust/extracted/pem
  20717. readOnly: true
  20718. livenessProbe:
  20719. exec:
  20720. command:
  20721. - pgrep
  20722. - -f
  20723. - gitlab-exporter
  20724. readinessProbe:
  20725. exec:
  20726. command:
  20727. - pgrep
  20728. - -f
  20729. - gitlab-exporter
  20730. lifecycle:
  20731. preStop:
  20732. exec:
  20733. command: ["/bin/bash", "-c", "pkill -f 'gitlab-exporter'"]
  20734. resources:
  20735. requests:
  20736. cpu: 75m
  20737. memory: 100M
  20738. volumes:
  20739. - name: gitlab-exporter-config
  20740. configMap:
  20741. name: gitlab-gitlab-exporter
  20742. - name: init-gitlab-exporter-secrets
  20743. projected:
  20744. defaultMode: 0400
  20745. sources:
  20746. - secret:
  20747. name: "gitlab-postgresql-password"
  20748. items:
  20749. - key: "postgresql-password"
  20750. path: postgres/psql-password-main
  20751. - secret:
  20752. name: "gitlab-redis-secret"
  20753. items:
  20754. - key: "secret"
  20755. path: redis/redis-password
  20756. - name: gitlab-exporter-secrets
  20757. emptyDir:
  20758. medium: "Memory"
  20759. - name: etc-ssl-certs
  20760. emptyDir:
  20761. medium: "Memory"
  20762. - name: etc-pki-ca-trust-extracted-pem
  20763. emptyDir:
  20764. medium: "Memory"
  20765. ---
  20766. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/deployment.yaml
  20767. apiVersion: apps/v1
  20768. kind: Deployment
  20769. metadata:
  20770. name: gitlab-gitlab-shell
  20771. namespace: default
  20772. labels:
  20773. app: gitlab-shell
  20774. chart: gitlab-shell-6.8.0
  20775. release: gitlab
  20776. heritage: Helm
  20777. annotations:
  20778. spec:
  20779. selector:
  20780. matchLabels:
  20781. app: gitlab-shell
  20782. release: gitlab
  20783. template:
  20784. metadata:
  20785. labels:
  20786. app: gitlab-shell
  20787. chart: gitlab-shell-6.8.0
  20788. release: gitlab
  20789. heritage: Helm
  20790. annotations:
  20791. checksum/config: 05ee556b92b2aefdea9e129a57409dc14b426ea3275f6b19e77101392054c8d5
  20792. checksum/config-sshd: 9f01c713f8b801206d1b23841f91ffa5775c0a957695b736b46ae000ca6969ef
  20793. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  20794. spec:
  20795. initContainers:
  20796. - name: certificates
  20797. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  20798. env:
  20799. volumeMounts:
  20800. - name: etc-ssl-certs
  20801. mountPath: /etc/ssl/certs
  20802. readOnly: false
  20803. - name: etc-pki-ca-trust-extracted-pem
  20804. mountPath: /etc/pki/ca-trust/extracted/pem
  20805. readOnly: false
  20806. resources:
  20807. requests:
  20808. cpu: 50m
  20809. - name: configure
  20810. command: ['sh', '/config/configure']
  20811. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  20812. env:
  20813. volumeMounts:
  20814. - name: shell-config
  20815. mountPath: /config
  20816. readOnly: true
  20817. - name: shell-init-secrets
  20818. mountPath: /init-config
  20819. readOnly: true
  20820. - name: shell-secrets
  20821. mountPath: /init-secrets
  20822. readOnly: false
  20823. resources:
  20824. requests:
  20825. cpu: 50m
  20826. securityContext:
  20827. runAsUser: 1000
  20828. fsGroup: 1000
  20829. affinity:
  20830. podAntiAffinity:
  20831. preferredDuringSchedulingIgnoredDuringExecution:
  20832. - weight: 1
  20833. podAffinityTerm:
  20834. topologyKey: "kubernetes.io/hostname"
  20835. labelSelector:
  20836. matchLabels:
  20837. app: gitlab-shell
  20838. release: gitlab
  20839. automountServiceAccountToken: false
  20840. containers:
  20841. - name: gitlab-shell
  20842. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-shell:v14.15.0"
  20843. ports:
  20844. - containerPort: 2222
  20845. name: ssh
  20846. env:
  20847. - name: GITALY_FEATURE_DEFAULT_ON
  20848. value: "1"
  20849. - name: CONFIG_TEMPLATE_DIRECTORY
  20850. value: '/etc/gitlab-shell'
  20851. - name: CONFIG_DIRECTORY
  20852. value: '/srv/gitlab-shell'
  20853. - name: KEYS_DIRECTORY
  20854. value: '/etc/gitlab-secrets/ssh'
  20855. - name: SSH_DAEMON
  20856. value: "openssh"
  20857. volumeMounts:
  20858. - name: shell-config
  20859. mountPath: '/etc/gitlab-shell'
  20860. - name: shell-secrets
  20861. mountPath: '/etc/gitlab-secrets'
  20862. readOnly: true
  20863. - name: sshd-config
  20864. mountPath: /etc/ssh/sshd_config
  20865. subPath: sshd_config
  20866. readOnly: true
  20867. - name: etc-ssl-certs
  20868. mountPath: /etc/ssl/certs/
  20869. readOnly: true
  20870. - name: etc-pki-ca-trust-extracted-pem
  20871. mountPath: /etc/pki/ca-trust/extracted/pem
  20872. readOnly: true
  20873. livenessProbe:
  20874. exec:
  20875. command:
  20876. - /scripts/healthcheck
  20877. initialDelaySeconds: 10
  20878. periodSeconds: 10
  20879. timeoutSeconds: 3
  20880. successThreshold: 1
  20881. failureThreshold: 3
  20882. readinessProbe:
  20883. tcpSocket:
  20884. port: 2222
  20885. initialDelaySeconds: 10
  20886. periodSeconds: 5
  20887. timeoutSeconds: 3
  20888. successThreshold: 1
  20889. failureThreshold: 2
  20890. resources:
  20891. requests:
  20892. cpu: 0
  20893. memory: 6M
  20894. terminationGracePeriodSeconds: 30
  20895. volumes:
  20896. - name: shell-config
  20897. configMap:
  20898. name: gitlab-gitlab-shell
  20899. - name: sshd-config
  20900. configMap:
  20901. name: gitlab-gitlab-shell-sshd
  20902. - name: shell-init-secrets
  20903. projected:
  20904. defaultMode: 0440
  20905. sources:
  20906. - secret:
  20907. name: "gitlab-gitlab-shell-host-keys"
  20908. - secret:
  20909. name: "gitlab-gitlab-shell-secret"
  20910. items:
  20911. - key: "secret"
  20912. path: shell/.gitlab_shell_secret
  20913. # Actual config dirs that will be used in the container
  20914. - name: shell-secrets
  20915. emptyDir:
  20916. medium: "Memory"
  20917. - name: etc-ssl-certs
  20918. emptyDir:
  20919. medium: "Memory"
  20920. - name: etc-pki-ca-trust-extracted-pem
  20921. emptyDir:
  20922. medium: "Memory"
  20923. ---
  20924. # Source: gitlab/charts/gitlab/charts/kas/templates/deployment.yaml
  20925. apiVersion: apps/v1
  20926. kind: Deployment
  20927. metadata:
  20928. name: gitlab-kas
  20929. namespace: default
  20930. labels:
  20931. app: kas
  20932. chart: kas-6.8.0
  20933. release: gitlab
  20934. heritage: Helm
  20935. annotations:
  20936. spec:
  20937. selector:
  20938. matchLabels:
  20939. app: kas
  20940. release: gitlab
  20941. template:
  20942. metadata:
  20943. labels:
  20944. app: kas
  20945. chart: kas-6.8.0
  20946. release: gitlab
  20947. heritage: Helm
  20948. annotations:
  20949. checksum/config: 13a2804b03ee049685188e3f0ca451e99deadffde9f15b5009702cdca9ae1f10
  20950. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  20951. gitlab.com/prometheus_scrape: "true"
  20952. gitlab.com/prometheus_port: "8151"
  20953. gitlab.com/prometheus_path: /metrics
  20954. prometheus.io/scrape: "true"
  20955. prometheus.io/port: "8151"
  20956. prometheus.io/path: /metrics
  20957. spec:
  20958. automountServiceAccountToken: false
  20959. affinity:
  20960. podAntiAffinity:
  20961. preferredDuringSchedulingIgnoredDuringExecution:
  20962. - weight: 1
  20963. podAffinityTerm:
  20964. topologyKey: "kubernetes.io/hostname"
  20965. labelSelector:
  20966. matchLabels:
  20967. app: kas
  20968. release: gitlab
  20969. securityContext:
  20970. runAsUser: 65532
  20971. runAsGroup: 65532
  20972. fsGroup: 65532
  20973. initContainers:
  20974. - name: certificates
  20975. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  20976. env:
  20977. volumeMounts:
  20978. - name: etc-ssl-certs
  20979. mountPath: /etc/ssl/certs
  20980. readOnly: false
  20981. - name: etc-pki-ca-trust-extracted-pem
  20982. mountPath: /etc/pki/ca-trust/extracted/pem
  20983. readOnly: false
  20984. resources:
  20985. requests:
  20986. cpu: 50m
  20987. containers:
  20988. - name: kas
  20989. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-kas:v15.8.0"
  20990. args:
  20991. - "--configuration-file=/etc/kas/config.yaml"
  20992. env:
  20993. - name: OWN_PRIVATE_API_HOST
  20994. value: gitlab-kas.default.svc
  20995. - name: POD_IP
  20996. valueFrom:
  20997. fieldRef:
  20998. fieldPath: status.podIP
  20999. - name: OWN_PRIVATE_API_URL
  21000. value: "grpc://$(POD_IP):8155"
  21001. ports:
  21002. - containerPort: 8150
  21003. name: kas
  21004. - containerPort: 8154
  21005. name: kas-k8s-api
  21006. - containerPort: 8155
  21007. name: kas-private-api
  21008. - containerPort: 8151
  21009. name: http-metrics
  21010. readinessProbe:
  21011. httpGet:
  21012. path: /readiness
  21013. port: 8151
  21014. initialDelaySeconds: 5
  21015. periodSeconds: 10
  21016. livenessProbe:
  21017. httpGet:
  21018. path: /liveness
  21019. port: 8151
  21020. initialDelaySeconds: 15
  21021. periodSeconds: 20
  21022. resources:
  21023. requests:
  21024. cpu: 100m
  21025. memory: 100M
  21026. volumeMounts:
  21027. - name: init-etc-kas
  21028. mountPath: /etc/kas
  21029. readOnly: true
  21030. - name: etc-ssl-certs
  21031. mountPath: /etc/ssl/certs/
  21032. readOnly: true
  21033. - name: etc-pki-ca-trust-extracted-pem
  21034. mountPath: /etc/pki/ca-trust/extracted/pem
  21035. readOnly: true
  21036. terminationGracePeriodSeconds: 300
  21037. volumes:
  21038. - name: etc-ssl-certs
  21039. emptyDir:
  21040. medium: "Memory"
  21041. - name: etc-pki-ca-trust-extracted-pem
  21042. emptyDir:
  21043. medium: "Memory"
  21044. - name: init-etc-kas
  21045. projected:
  21046. defaultMode: 0440
  21047. sources:
  21048. - configMap:
  21049. name: gitlab-kas
  21050. - secret:
  21051. name: "gitlab-gitlab-kas-secret"
  21052. items:
  21053. - key: "kas_shared_secret"
  21054. path: .gitlab_kas_secret
  21055. - secret:
  21056. name: "gitlab-kas-private-api"
  21057. items:
  21058. - key: "kas_private_api_secret"
  21059. path: .gitlab_kas_private_api_secret
  21060. - secret:
  21061. name: "gitlab-redis-secret"
  21062. items:
  21063. - key: "secret"
  21064. path: redis/redis-password
  21065. ---
  21066. # Source: gitlab/charts/gitlab/charts/sidekiq/templates/deployment.yaml
  21067. apiVersion: apps/v1
  21068. kind: Deployment
  21069. metadata:
  21070. name: gitlab-sidekiq-all-in-1-v2
  21071. namespace: default
  21072. labels:
  21073. app: sidekiq
  21074. chart: sidekiq-6.8.0
  21075. release: gitlab
  21076. heritage: Helm
  21077. queue-pod-name: all-in-1
  21078. annotations:
  21079. spec:
  21080. selector:
  21081. matchLabels:
  21082. app: sidekiq
  21083. release: gitlab
  21084. queue-pod-name: all-in-1
  21085. template:
  21086. metadata:
  21087. labels:
  21088. app: sidekiq
  21089. chart: sidekiq-6.8.0
  21090. release: gitlab
  21091. heritage: Helm
  21092. queue-pod-name: all-in-1
  21093. annotations:
  21094. checksum/configmap: 8dfcd9a75f081a241ea6c017e9e6d3d482b8ccfb8d201f0f741aea52b164443a
  21095. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  21096. gitlab.com/prometheus_scrape: "true"
  21097. gitlab.com/prometheus_port: "3807"
  21098. gitlab.com/prometheus_path: /metrics
  21099. prometheus.io/scrape: "true"
  21100. prometheus.io/port: "3807"
  21101. prometheus.io/path: /metrics
  21102. spec:
  21103. securityContext:
  21104. runAsUser: 1000
  21105. fsGroup: 1000
  21106. affinity:
  21107. podAntiAffinity:
  21108. preferredDuringSchedulingIgnoredDuringExecution:
  21109. - weight: 1
  21110. podAffinityTerm:
  21111. topologyKey: "kubernetes.io/hostname"
  21112. labelSelector:
  21113. matchLabels:
  21114. app: sidekiq
  21115. release: gitlab
  21116. automountServiceAccountToken: false
  21117. terminationGracePeriodSeconds: 30
  21118. initContainers:
  21119. - name: certificates
  21120. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  21121. env:
  21122. volumeMounts:
  21123. - name: etc-ssl-certs
  21124. mountPath: /etc/ssl/certs
  21125. readOnly: false
  21126. - name: etc-pki-ca-trust-extracted-pem
  21127. mountPath: /etc/pki/ca-trust/extracted/pem
  21128. readOnly: false
  21129. resources:
  21130. requests:
  21131. cpu: 50m
  21132. - name: configure
  21133. command: ['sh', '/config/configure']
  21134. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  21135. env:
  21136. volumeMounts:
  21137. - name: sidekiq-config
  21138. mountPath: /config
  21139. readOnly: true
  21140. - name: init-sidekiq-secrets
  21141. mountPath: /init-config
  21142. readOnly: true
  21143. - name: sidekiq-secrets
  21144. mountPath: /init-secrets
  21145. readOnly: false
  21146. resources:
  21147. requests:
  21148. cpu: 50m
  21149. - name: dependencies
  21150. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-sidekiq-ee:v15.8.0"
  21151. args:
  21152. - /scripts/wait-for-deps
  21153. env:
  21154. - name: GITALY_FEATURE_DEFAULT_ON
  21155. value: "1"
  21156. - name: CONFIG_TEMPLATE_DIRECTORY
  21157. value: '/var/opt/gitlab/templates'
  21158. - name: CONFIG_DIRECTORY
  21159. value: '/srv/gitlab/config'
  21160. - name: SIDEKIQ_CONCURRENCY
  21161. value: "20"
  21162. - name: SIDEKIQ_TIMEOUT
  21163. value: "25"
  21164. - name: ENABLE_BOOTSNAP
  21165. value: "1"
  21166. volumeMounts:
  21167. - name: etc-ssl-certs
  21168. mountPath: /etc/ssl/certs/
  21169. readOnly: true
  21170. - name: etc-pki-ca-trust-extracted-pem
  21171. mountPath: /etc/pki/ca-trust/extracted/pem
  21172. readOnly: true
  21173. - name: sidekiq-config
  21174. mountPath: '/var/opt/gitlab/templates'
  21175. readOnly: true
  21176. - name: sidekiq-secrets
  21177. mountPath: '/etc/gitlab'
  21178. readOnly: true
  21179. - name: sidekiq-secrets
  21180. mountPath: /srv/gitlab/config/secrets.yml
  21181. subPath: rails-secrets/secrets.yml
  21182. readOnly: true
  21183. resources:
  21184. requests:
  21185. cpu: 50m
  21186. containers:
  21187. - name: sidekiq
  21188. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-sidekiq-ee:v15.8.0"
  21189. env:
  21190. - name: prometheus_multiproc_dir
  21191. value: /metrics
  21192. - name: GITALY_FEATURE_DEFAULT_ON
  21193. value: "1"
  21194. - name: CONFIG_TEMPLATE_DIRECTORY
  21195. value: '/var/opt/gitlab/templates'
  21196. - name: CONFIG_DIRECTORY
  21197. value: '/srv/gitlab/config'
  21198. - name: SIDEKIQ_QUEUE_SELECTOR
  21199. value: ""
  21200. - name: SIDEKIQ_CONCURRENCY
  21201. value: "20"
  21202. - name: SIDEKIQ_TIMEOUT
  21203. value: "25"
  21204. - name: SIDEKIQ_QUEUES
  21205. value:
  21206. - name: SIDEKIQ_NEGATE_QUEUES
  21207. value:
  21208. - name: SIDEKIQ_DAEMON_MEMORY_KILLER
  21209. value: "1"
  21210. - name: SIDEKIQ_MEMORY_KILLER_CHECK_INTERVAL
  21211. value: "3"
  21212. - name: SIDEKIQ_MEMORY_KILLER_MAX_RSS
  21213. value: "2000000"
  21214. - name: SIDEKIQ_MEMORY_KILLER_GRACE_TIME
  21215. value: "900"
  21216. - name: SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT
  21217. value: "30"
  21218. - name: ENABLE_BOOTSNAP
  21219. value: "1"
  21220. ports:
  21221. - containerPort: 3807
  21222. name: http-metrics
  21223. volumeMounts:
  21224. - name: sidekiq-metrics
  21225. mountPath: '/metrics'
  21226. - name: sidekiq-config
  21227. mountPath: '/var/opt/gitlab/templates'
  21228. readOnly: true
  21229. - name: sidekiq-secrets
  21230. mountPath: '/etc/gitlab'
  21231. readOnly: true
  21232. - name: sidekiq-secrets
  21233. mountPath: /srv/gitlab/config/secrets.yml
  21234. subPath: rails-secrets/secrets.yml
  21235. - name: sidekiq-config
  21236. mountPath: '/etc/krb5.conf'
  21237. subPath: krb5.conf
  21238. - name: sidekiq-config
  21239. mountPath: '/srv/gitlab/config/initializers/smtp_settings.rb'
  21240. subPath: smtp_settings.rb
  21241. - name: sidekiq-config
  21242. mountPath: '/srv/gitlab/INSTALLATION_TYPE'
  21243. subPath: installation_type
  21244. - name: etc-ssl-certs
  21245. mountPath: /etc/ssl/certs/
  21246. readOnly: true
  21247. - name: etc-pki-ca-trust-extracted-pem
  21248. mountPath: /etc/pki/ca-trust/extracted/pem
  21249. readOnly: true
  21250. livenessProbe:
  21251. httpGet:
  21252. path: /liveness
  21253. port: 3808
  21254. initialDelaySeconds: 20
  21255. periodSeconds: 60
  21256. timeoutSeconds: 30
  21257. successThreshold: 1
  21258. failureThreshold: 3
  21259. readinessProbe:
  21260. httpGet:
  21261. path: /readiness
  21262. port: 3808
  21263. initialDelaySeconds: 0
  21264. periodSeconds: 10
  21265. timeoutSeconds: 2
  21266. successThreshold: 1
  21267. failureThreshold: 3
  21268. lifecycle:
  21269. preStop:
  21270. exec:
  21271. command: ["/bin/bash", "-c", "pkill -f 'sidekiq'"]
  21272. resources:
  21273. requests:
  21274. cpu: 900m
  21275. memory: 2G
  21276. volumes:
  21277. - name: sidekiq-metrics
  21278. emptyDir:
  21279. medium: "Memory"
  21280. - name: sidekiq-config
  21281. projected:
  21282. sources:
  21283. - configMap:
  21284. name: gitlab-sidekiq
  21285. - name: init-sidekiq-secrets
  21286. projected:
  21287. defaultMode: 0400
  21288. sources:
  21289. - secret:
  21290. name: "gitlab-rails-secret"
  21291. items:
  21292. - key: secrets.yml
  21293. path: rails-secrets/secrets.yml
  21294. - secret:
  21295. name: "gitlab-gitaly-secret"
  21296. items:
  21297. - key: "token"
  21298. path: gitaly/gitaly_token
  21299. - secret:
  21300. name: "gitlab-redis-secret"
  21301. items:
  21302. - key: "secret"
  21303. path: redis/redis-password
  21304. - secret:
  21305. name: "gitlab-postgresql-password"
  21306. items:
  21307. - key: "postgresql-password"
  21308. path: postgres/psql-password-main
  21309. - secret:
  21310. name: "gitlab-registry-secret"
  21311. items:
  21312. - key: registry-auth.key
  21313. path: registry/gitlab-registry.key
  21314. - secret:
  21315. name: "gitlab-registry-notification"
  21316. items:
  21317. - key: "secret"
  21318. path: registry/notificationSecret
  21319. # mount secret for kas
  21320. - secret:
  21321. name: "gitlab-gitlab-kas-secret"
  21322. items:
  21323. - key: "kas_shared_secret"
  21324. path: kas/.gitlab_kas_secret
  21325. # mount secret for suggested reviewers
  21326. - secret:
  21327. name: "gitlab-gitlab-suggested-reviewers"
  21328. items:
  21329. - key: "suggested_reviewers_secret"
  21330. path: suggested_reviewers/.gitlab_suggested_reviewers_secret
  21331. # mount secret for minio
  21332. - secret:
  21333. name: "gitlab-minio-secret"
  21334. items:
  21335. - key: accesskey
  21336. path: minio/accesskey
  21337. - key: secretkey
  21338. path: minio/secretkey
  21339. # mount secret for object_store
  21340. # mount secret for lfs
  21341. # mount secret for artifacts
  21342. # mount secret for uploads
  21343. # mount secret for packages
  21344. # mount secret for external_diffs
  21345. # mount secret for terraform_state
  21346. # mount secret for ci_secure_files
  21347. # mount secret for dependency_proxy
  21348. # mount secret for pages
  21349. # mount secrets for LDAP
  21350. - name: sidekiq-secrets
  21351. emptyDir:
  21352. medium: "Memory"
  21353. - name: etc-ssl-certs
  21354. emptyDir:
  21355. medium: "Memory"
  21356. - name: etc-pki-ca-trust-extracted-pem
  21357. emptyDir:
  21358. medium: "Memory"
  21359. ---
  21360. # Source: gitlab/charts/gitlab/charts/toolbox/templates/deployment.yaml
  21361. apiVersion: apps/v1
  21362. kind: Deployment
  21363. metadata:
  21364. name: gitlab-toolbox
  21365. namespace: default
  21366. labels:
  21367. app: toolbox
  21368. chart: toolbox-6.8.0
  21369. release: gitlab
  21370. heritage: Helm
  21371. annotations:
  21372. spec:
  21373. replicas: 1
  21374. selector:
  21375. matchLabels:
  21376. app: toolbox
  21377. release: gitlab
  21378. strategy:
  21379. type: Recreate
  21380. template:
  21381. metadata:
  21382. labels:
  21383. app: toolbox
  21384. chart: toolbox-6.8.0
  21385. release: gitlab
  21386. heritage: Helm
  21387. annotations:
  21388. checksum/config: 875b88329a6bbf2ab02482d3c48ce388f135bb4c79bab18a8150542ba3d9c3e2
  21389. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  21390. spec:
  21391. securityContext:
  21392. runAsUser: 1000
  21393. fsGroup: 1000
  21394. automountServiceAccountToken: false
  21395. initContainers:
  21396. - name: certificates
  21397. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  21398. env:
  21399. volumeMounts:
  21400. - name: etc-ssl-certs
  21401. mountPath: /etc/ssl/certs
  21402. readOnly: false
  21403. - name: etc-pki-ca-trust-extracted-pem
  21404. mountPath: /etc/pki/ca-trust/extracted/pem
  21405. readOnly: false
  21406. resources:
  21407. requests:
  21408. cpu: 50m
  21409. - name: configure
  21410. command: ['sh', '/config/configure']
  21411. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  21412. env:
  21413. volumeMounts:
  21414. - name: toolbox-config
  21415. mountPath: /config
  21416. readOnly: true
  21417. - name: init-toolbox-secrets
  21418. mountPath: /init-config
  21419. readOnly: true
  21420. - name: toolbox-secrets
  21421. mountPath: /init-secrets
  21422. readOnly: false
  21423. resources:
  21424. requests:
  21425. cpu: 50m
  21426. affinity:
  21427. podAntiAffinity:
  21428. preferredDuringSchedulingIgnoredDuringExecution:
  21429. - weight: 1
  21430. podAffinityTerm:
  21431. topologyKey: "kubernetes.io/hostname"
  21432. labelSelector:
  21433. matchLabels:
  21434. app: gitaly
  21435. release: gitlab
  21436. containers:
  21437. - name: toolbox
  21438. args:
  21439. - /bin/bash
  21440. - -c
  21441. - cp -v -r -L /etc/gitlab/.s3cfg $HOME/.s3cfg && while sleep 3600; do :; done # alpine sleep has no infinity
  21442. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-toolbox-ee:v15.8.0"
  21443. env:
  21444. - name: ARTIFACTS_BUCKET_NAME
  21445. value: gitlab-artifacts
  21446. - name: REGISTRY_BUCKET_NAME
  21447. value: registry
  21448. - name: LFS_BUCKET_NAME
  21449. value: git-lfs
  21450. - name: UPLOADS_BUCKET_NAME
  21451. value: gitlab-uploads
  21452. - name: PACKAGES_BUCKET_NAME
  21453. value: gitlab-packages
  21454. - name: EXTERNAL_DIFFS_BUCKET_NAME
  21455. value: gitlab-mr-diffs
  21456. - name: TERRAFORM_STATE_BUCKET_NAME
  21457. value: gitlab-terraform-state
  21458. - name: CI_SECURE_FILES_BUCKET_NAME
  21459. value: gitlab-ci-secure-files
  21460. - name: BACKUP_BUCKET_NAME
  21461. value: gitlab-backups
  21462. - name: BACKUP_BACKEND
  21463. value: s3
  21464. - name: TMP_BUCKET_NAME
  21465. value: tmp
  21466. - name: PAGES_BUCKET_NAME
  21467. value: gitlab-pages
  21468. - name: GITALY_FEATURE_DEFAULT_ON
  21469. value: "1"
  21470. - name: ENABLE_BOOTSNAP
  21471. value: "1"
  21472. - name: CONFIG_TEMPLATE_DIRECTORY
  21473. value: '/var/opt/gitlab/templates'
  21474. - name: CONFIG_DIRECTORY
  21475. value: '/srv/gitlab/config'
  21476. volumeMounts:
  21477. - name: toolbox-config
  21478. mountPath: '/var/opt/gitlab/templates'
  21479. - name: toolbox-config
  21480. mountPath: '/etc/krb5.conf'
  21481. subPath: krb5.conf
  21482. - name: toolbox-config
  21483. mountPath: '/srv/gitlab/config/initializers/smtp_settings.rb'
  21484. subPath: smtp_settings.rb
  21485. - name: toolbox-secrets
  21486. mountPath: '/etc/gitlab'
  21487. readOnly: true
  21488. - name: toolbox-secrets
  21489. mountPath: /srv/gitlab/config/secrets.yml
  21490. subPath: rails-secrets/secrets.yml
  21491. - name: toolbox-tmp
  21492. mountPath: '/srv/gitlab/tmp'
  21493. readOnly: false
  21494. - name: etc-ssl-certs
  21495. mountPath: /etc/ssl/certs/
  21496. readOnly: true
  21497. - name: etc-pki-ca-trust-extracted-pem
  21498. mountPath: /etc/pki/ca-trust/extracted/pem
  21499. readOnly: true
  21500. resources:
  21501. requests:
  21502. cpu: 50m
  21503. memory: 350M
  21504. volumes:
  21505. - name: toolbox-config
  21506. projected:
  21507. sources:
  21508. - configMap:
  21509. name: gitlab-toolbox
  21510. - name: toolbox-tmp
  21511. emptyDir: {}
  21512. - name: init-toolbox-secrets
  21513. projected:
  21514. defaultMode: 0400
  21515. sources:
  21516. - secret:
  21517. name: "gitlab-rails-secret"
  21518. items:
  21519. - key: secrets.yml
  21520. path: rails-secrets/secrets.yml
  21521. - secret:
  21522. name: "gitlab-gitlab-shell-secret"
  21523. items:
  21524. - key: "secret"
  21525. path: shell/.gitlab_shell_secret
  21526. - secret:
  21527. name: "gitlab-gitaly-secret"
  21528. items:
  21529. - key: "token"
  21530. path: gitaly/gitaly_token
  21531. - secret:
  21532. name: "gitlab-redis-secret"
  21533. items:
  21534. - key: "secret"
  21535. path: redis/redis-password
  21536. - secret:
  21537. name: "gitlab-postgresql-password"
  21538. items:
  21539. - key: "postgresql-password"
  21540. path: postgres/psql-password-main
  21541. - secret:
  21542. name: "gitlab-registry-secret"
  21543. items:
  21544. - key: registry-auth.key
  21545. path: registry/gitlab-registry.key
  21546. - secret:
  21547. name: "gitlab-registry-notification"
  21548. items:
  21549. - key: "secret"
  21550. path: registry/notificationSecret
  21551. # mount secret for kas
  21552. - secret:
  21553. name: "gitlab-gitlab-kas-secret"
  21554. items:
  21555. - key: "kas_shared_secret"
  21556. path: kas/.gitlab_kas_secret
  21557. # mount secret for suggested reviewers
  21558. - secret:
  21559. name: "gitlab-gitlab-suggested-reviewers"
  21560. items:
  21561. - key: "suggested_reviewers_secret"
  21562. path: suggested_reviewers/.gitlab_suggested_reviewers_secret
  21563. # mount secret for minio
  21564. - secret:
  21565. name: "gitlab-minio-secret"
  21566. items:
  21567. - key: accesskey
  21568. path: minio/accesskey
  21569. - key: secretkey
  21570. path: minio/secretkey
  21571. # mount secret for object_store
  21572. # mount secret for artifacts
  21573. # mount secret for lfs
  21574. # mount secret for uploads
  21575. # mount secret for packages
  21576. # mount secret for external_diffs
  21577. # mount secret for terraform_state
  21578. # mount secret for ci_secure_files
  21579. # mount secret for dependency_proxy
  21580. # mount secret for pages
  21581. # mount secrets for LDAP
  21582. - name: toolbox-secrets
  21583. emptyDir:
  21584. medium: "Memory"
  21585. - name: etc-ssl-certs
  21586. emptyDir:
  21587. medium: "Memory"
  21588. - name: etc-pki-ca-trust-extracted-pem
  21589. emptyDir:
  21590. medium: "Memory"
  21591. ---
  21592. # Source: gitlab/charts/gitlab/charts/webservice/templates/deployment.yaml
  21593. apiVersion: apps/v1
  21594. kind: Deployment
  21595. metadata:
  21596. name: gitlab-webservice-default
  21597. namespace: default
  21598. labels:
  21599. app: webservice
  21600. chart: webservice-6.8.0
  21601. release: gitlab
  21602. heritage: Helm
  21603. gitlab.com/webservice-name: default
  21604. annotations:
  21605. spec:
  21606. # Don't provide replicas when HPA are present
  21607. # replicas: 2
  21608. selector:
  21609. matchLabels:
  21610. app: webservice
  21611. release: gitlab
  21612. gitlab.com/webservice-name: default
  21613. template:
  21614. metadata:
  21615. labels:
  21616. app: webservice
  21617. chart: webservice-6.8.0
  21618. release: gitlab
  21619. heritage: Helm
  21620. gitlab.com/webservice-name: default
  21621. annotations:
  21622. checksum/config: d73640aa108f5222d4c6545e6455b61e4943205ef8486835f19beb5a61507f11
  21623. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  21624. gitlab.com/prometheus_scrape: "true"
  21625. gitlab.com/prometheus_port: "8083"
  21626. gitlab.com/prometheus_path: /metrics
  21627. prometheus.io/scrape: "true"
  21628. prometheus.io/port: "8083"
  21629. prometheus.io/path: /metrics
  21630. spec:
  21631. securityContext:
  21632. runAsUser: 1000
  21633. fsGroup: 1000
  21634. affinity:
  21635. podAntiAffinity:
  21636. preferredDuringSchedulingIgnoredDuringExecution:
  21637. - weight: 1
  21638. podAffinityTerm:
  21639. topologyKey: "kubernetes.io/hostname"
  21640. labelSelector:
  21641. matchLabels:
  21642. app: webservice
  21643. release: gitlab
  21644. gitlab.com/webservice-name: default
  21645. automountServiceAccountToken: false
  21646. initContainers:
  21647. - name: certificates
  21648. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  21649. env:
  21650. volumeMounts:
  21651. - name: etc-ssl-certs
  21652. mountPath: /etc/ssl/certs
  21653. readOnly: false
  21654. - name: etc-pki-ca-trust-extracted-pem
  21655. mountPath: /etc/pki/ca-trust/extracted/pem
  21656. readOnly: false
  21657. resources:
  21658. requests:
  21659. cpu: 50m
  21660. - name: configure
  21661. command: ['sh']
  21662. args: [ '-c', 'sh -x /config-webservice/configure ; sh -x /config-workhorse/configure ; mkdir -p -m 3770 /tmp/gitlab']
  21663. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  21664. env:
  21665. volumeMounts:
  21666. - name: webservice-config
  21667. mountPath: /config-webservice
  21668. readOnly: true
  21669. - name: workhorse-config
  21670. mountPath: /config-workhorse
  21671. readOnly: true
  21672. - name: init-webservice-secrets
  21673. mountPath: /init-config
  21674. readOnly: true
  21675. - name: webservice-secrets
  21676. mountPath: /init-secrets
  21677. readOnly: false
  21678. - name: workhorse-secrets
  21679. mountPath: /init-secrets-workhorse
  21680. readOnly: false
  21681. - name: shared-tmp
  21682. mountPath: /tmp
  21683. readOnly: false
  21684. resources:
  21685. requests:
  21686. cpu: 50m
  21687. - name: dependencies
  21688. image: registry.gitlab.com/gitlab-org/build/cng/gitlab-webservice-ee:v15.8.0
  21689. args:
  21690. - /scripts/wait-for-deps
  21691. env:
  21692. - name: GITALY_FEATURE_DEFAULT_ON
  21693. value: "1"
  21694. - name: CONFIG_TEMPLATE_DIRECTORY
  21695. value: '/var/opt/gitlab/templates'
  21696. - name: CONFIG_DIRECTORY
  21697. value: '/srv/gitlab/config'
  21698. - name: WORKHORSE_ARCHIVE_CACHE_DISABLED
  21699. value: "1"
  21700. - name: ENABLE_BOOTSNAP
  21701. value: "1"
  21702. volumeMounts:
  21703. - name: etc-ssl-certs
  21704. mountPath: /etc/ssl/certs/
  21705. readOnly: true
  21706. - name: etc-pki-ca-trust-extracted-pem
  21707. mountPath: /etc/pki/ca-trust/extracted/pem
  21708. readOnly: true
  21709. - name: webservice-config
  21710. mountPath: '/var/opt/gitlab/templates'
  21711. - name: webservice-secrets
  21712. mountPath: '/etc/gitlab'
  21713. readOnly: true
  21714. - name: webservice-secrets
  21715. mountPath: /srv/gitlab/config/secrets.yml
  21716. subPath: rails-secrets/secrets.yml
  21717. readOnly: true
  21718. resources:
  21719. requests:
  21720. cpu: 50m
  21721. containers:
  21722. - name: webservice
  21723. image: registry.gitlab.com/gitlab-org/build/cng/gitlab-webservice-ee:v15.8.0
  21724. ports:
  21725. - containerPort: 8080
  21726. name: http-webservice
  21727. - containerPort: 8083
  21728. name: http-metrics-ws
  21729. env:
  21730. - name: GITLAB_WEBSERVER
  21731. value: puma
  21732. - name: TMPDIR
  21733. value: "/tmp/gitlab"
  21734. - name: GITALY_FEATURE_DEFAULT_ON
  21735. value: "1"
  21736. - name: CONFIG_TEMPLATE_DIRECTORY
  21737. value: '/var/opt/gitlab/templates'
  21738. - name: CONFIG_DIRECTORY
  21739. value: '/srv/gitlab/config'
  21740. - name: prometheus_multiproc_dir
  21741. value: /metrics
  21742. - name: ENABLE_BOOTSNAP
  21743. value: "1"
  21744. - name: WORKER_PROCESSES
  21745. value: "2"
  21746. - name: WORKER_TIMEOUT
  21747. value: "60"
  21748. - name: INTERNAL_PORT
  21749. value: "8080"
  21750. - name: PUMA_THREADS_MIN
  21751. value: "4"
  21752. - name: PUMA_THREADS_MAX
  21753. value: "4"
  21754. - name: PUMA_WORKER_MAX_MEMORY
  21755. value: ""
  21756. - name: DISABLE_PUMA_WORKER_KILLER
  21757. value: "true"
  21758. - name: SHUTDOWN_BLACKOUT_SECONDS
  21759. value: "10"
  21760. - name: WORKHORSE_ARCHIVE_CACHE_DISABLED
  21761. value: "true"
  21762. volumeMounts:
  21763. - name: webservice-metrics
  21764. mountPath: '/metrics'
  21765. - name: webservice-config
  21766. mountPath: '/var/opt/gitlab/templates'
  21767. - name: webservice-secrets
  21768. mountPath: '/etc/gitlab'
  21769. readOnly: true
  21770. - name: webservice-secrets
  21771. mountPath: /srv/gitlab/config/secrets.yml
  21772. subPath: rails-secrets/secrets.yml
  21773. - name: webservice-config
  21774. mountPath: '/etc/krb5.conf'
  21775. subPath: krb5.conf
  21776. - name: webservice-config
  21777. mountPath: '/srv/gitlab/config/initializers/smtp_settings.rb'
  21778. subPath: smtp_settings.rb
  21779. - name: webservice-config
  21780. mountPath: '/srv/gitlab/INSTALLATION_TYPE'
  21781. subPath: installation_type
  21782. - name: shared-upload-directory
  21783. mountPath: /srv/gitlab/public/uploads/tmp
  21784. readOnly: false
  21785. - name: shared-tmp
  21786. mountPath: '/tmp'
  21787. readOnly: false
  21788. - name: etc-ssl-certs
  21789. mountPath: /etc/ssl/certs/
  21790. readOnly: true
  21791. - name: etc-pki-ca-trust-extracted-pem
  21792. mountPath: /etc/pki/ca-trust/extracted/pem
  21793. readOnly: true
  21794. livenessProbe:
  21795. httpGet:
  21796. path: /-/liveness
  21797. port: 8080
  21798. initialDelaySeconds: 20
  21799. periodSeconds: 60
  21800. timeoutSeconds: 30
  21801. successThreshold: 1
  21802. failureThreshold: 3
  21803. readinessProbe:
  21804. httpGet:
  21805. path: /-/readiness
  21806. port: 8080
  21807. initialDelaySeconds: 0
  21808. periodSeconds: 5
  21809. timeoutSeconds: 2
  21810. successThreshold: 1
  21811. failureThreshold: 2
  21812. lifecycle:
  21813. preStop:
  21814. exec:
  21815. command: ["/bin/bash", "-c", "pkill -SIGINT -o ruby"]
  21816. resources:
  21817. requests:
  21818. cpu: 300m
  21819. memory: 2.5G
  21820. - name: gitlab-workhorse
  21821. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ee:v15.8.0"
  21822. ports:
  21823. - containerPort: 8181
  21824. name: http-workhorse
  21825. env:
  21826. - name: TMPDIR
  21827. value: "/tmp/gitlab"
  21828. - name: GITLAB_WORKHORSE_AUTH_BACKEND
  21829. value: "http://localhost:8080"
  21830. - name: GITLAB_WORKHORSE_EXTRA_ARGS
  21831. value: ""
  21832. - name: GITLAB_WORKHORSE_LISTEN_PORT
  21833. value: "8181"
  21834. - name: GITLAB_WORKHORSE_LOG_FORMAT
  21835. value: "json"
  21836. - name: CONFIG_TEMPLATE_DIRECTORY
  21837. value: '/var/opt/gitlab/templates'
  21838. - name: CONFIG_DIRECTORY
  21839. value: '/srv/gitlab/config'
  21840. volumeMounts:
  21841. - name: workhorse-config
  21842. mountPath: '/var/opt/gitlab/templates'
  21843. - name: workhorse-secrets
  21844. mountPath: '/etc/gitlab'
  21845. readOnly: true
  21846. - name: shared-upload-directory
  21847. mountPath: /srv/gitlab/public/uploads/tmp
  21848. readOnly: false
  21849. - name: shared-tmp
  21850. mountPath: '/tmp'
  21851. readOnly: false
  21852. - name: etc-ssl-certs
  21853. mountPath: /etc/ssl/certs/
  21854. readOnly: true
  21855. - name: etc-pki-ca-trust-extracted-pem
  21856. mountPath: /etc/pki/ca-trust/extracted/pem
  21857. readOnly: true
  21858. livenessProbe:
  21859. exec:
  21860. command:
  21861. - /scripts/healthcheck
  21862. initialDelaySeconds: 20
  21863. periodSeconds: 60
  21864. timeoutSeconds: 30
  21865. successThreshold: 1
  21866. failureThreshold: 3
  21867. readinessProbe:
  21868. exec:
  21869. command:
  21870. - /scripts/healthcheck
  21871. initialDelaySeconds: 0
  21872. periodSeconds: 10
  21873. timeoutSeconds: 2
  21874. successThreshold: 1
  21875. failureThreshold: 3
  21876. resources:
  21877. requests:
  21878. cpu: 100m
  21879. memory: 100M
  21880. volumes:
  21881. - name: shared-tmp
  21882. emptyDir: {}
  21883. - name: webservice-metrics
  21884. emptyDir:
  21885. medium: "Memory"
  21886. - name: webservice-config
  21887. configMap:
  21888. name: gitlab-webservice
  21889. - name: workhorse-config
  21890. configMap:
  21891. name: gitlab-workhorse-default
  21892. - name: init-webservice-secrets
  21893. projected:
  21894. defaultMode: 0400
  21895. sources:
  21896. - secret:
  21897. name: "gitlab-rails-secret"
  21898. items:
  21899. - key: secrets.yml
  21900. path: rails-secrets/secrets.yml
  21901. - secret:
  21902. name: "gitlab-gitlab-shell-secret"
  21903. items:
  21904. - key: "secret"
  21905. path: shell/.gitlab_shell_secret
  21906. # mount secrets for incomingEmail
  21907. # mount secrets for serviceDeskEmail
  21908. - secret:
  21909. name: "gitlab-gitaly-secret"
  21910. items:
  21911. - key: "token"
  21912. path: gitaly/gitaly_token
  21913. - secret:
  21914. name: "gitlab-redis-secret"
  21915. items:
  21916. - key: "secret"
  21917. path: redis/redis-password
  21918. - secret:
  21919. name: "gitlab-postgresql-password"
  21920. items:
  21921. - key: "postgresql-password"
  21922. path: postgres/psql-password-main
  21923. - secret:
  21924. name: "gitlab-registry-secret"
  21925. items:
  21926. - key: registry-auth.key
  21927. path: registry/gitlab-registry.key
  21928. - secret:
  21929. name: "gitlab-registry-notification"
  21930. items:
  21931. - key: "secret"
  21932. path: registry/notificationSecret
  21933. - secret:
  21934. name: "gitlab-gitlab-workhorse-secret"
  21935. items:
  21936. - key: "shared_secret"
  21937. path: gitlab-workhorse/secret
  21938. # mount secret for kas
  21939. - secret:
  21940. name: "gitlab-gitlab-kas-secret"
  21941. items:
  21942. - key: "kas_shared_secret"
  21943. path: kas/.gitlab_kas_secret
  21944. # mount secret for suggested reviewers
  21945. - secret:
  21946. name: "gitlab-gitlab-suggested-reviewers"
  21947. items:
  21948. - key: "suggested_reviewers_secret"
  21949. path: suggested_reviewers/.gitlab_suggested_reviewers_secret
  21950. # mount secret for minio
  21951. - secret:
  21952. name: "gitlab-minio-secret"
  21953. items:
  21954. - key: accesskey
  21955. path: minio/accesskey
  21956. - key: secretkey
  21957. path: minio/secretkey
  21958. # mount secret for object_store
  21959. # mount secret for artifacts
  21960. # mount secret for lfs
  21961. # mount secret for uploads
  21962. # mount secret for packages
  21963. # mount secret for external_diffs
  21964. # mount secret for terraform_state
  21965. # mount secret for ci_secure_files
  21966. # mount secret for dependency_proxy
  21967. # mount secret for pages
  21968. # mount secrets for LDAP
  21969. - name: webservice-secrets
  21970. emptyDir:
  21971. medium: "Memory"
  21972. - name: workhorse-secrets
  21973. emptyDir:
  21974. medium: "Memory"
  21975. - name: shared-upload-directory
  21976. emptyDir: {}
  21977. - name: etc-ssl-certs
  21978. emptyDir:
  21979. medium: "Memory"
  21980. - name: etc-pki-ca-trust-extracted-pem
  21981. emptyDir:
  21982. medium: "Memory"
  21983. ---
  21984. # Source: gitlab/charts/minio/templates/minio_deployment.yaml
  21985. apiVersion: apps/v1
  21986. kind: Deployment
  21987. metadata:
  21988. name: gitlab-minio
  21989. namespace: default
  21990. labels:
  21991. app: minio
  21992. chart: minio-0.4.3
  21993. release: gitlab
  21994. heritage: Helm
  21995. annotations:
  21996. spec:
  21997. selector:
  21998. matchLabels:
  21999. app: minio
  22000. release: "gitlab"
  22001. component: app
  22002. strategy:
  22003. type: Recreate
  22004. template:
  22005. metadata:
  22006. name: gitlab-minio
  22007. labels:
  22008. component: app
  22009. app: minio
  22010. chart: minio-0.4.3
  22011. release: gitlab
  22012. heritage: Helm
  22013. annotations:
  22014. spec:
  22015. automountServiceAccountToken: false
  22016. securityContext:
  22017. runAsUser: 1000
  22018. fsGroup: 1000
  22019. volumes:
  22020. - name: podinfo
  22021. downwardAPI:
  22022. items:
  22023. - path: "labels"
  22024. fieldRef:
  22025. fieldPath: metadata.labels
  22026. - name: export
  22027. persistentVolumeClaim:
  22028. claimName: gitlab-minio
  22029. - name: minio-configuration
  22030. projected:
  22031. sources:
  22032. - configMap:
  22033. name: gitlab-minio-config-cm
  22034. - secret:
  22035. name: "gitlab-minio-secret"
  22036. - name: minio-server-config
  22037. emptyDir:
  22038. medium: "Memory"
  22039. initContainers:
  22040. - name: configure
  22041. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  22042. command: ["sh", "/config/configure"]
  22043. volumeMounts:
  22044. - name: minio-configuration
  22045. mountPath: /config
  22046. - name: minio-server-config
  22047. mountPath: /minio
  22048. resources:
  22049. requests:
  22050. cpu: 50m
  22051. containers:
  22052. - name: minio
  22053. image: minio/minio:RELEASE.2017-12-28T01-21-00Z
  22054. args: ["-C", "/tmp/.minio", "--quiet", "server", "/export"]
  22055. volumeMounts:
  22056. - name: export
  22057. mountPath: /export
  22058. - name: minio-server-config
  22059. # this path altered from upstream, for use with `securityContext`/UID 1000
  22060. mountPath: "/tmp/.minio"
  22061. - name: podinfo
  22062. mountPath: /podinfo
  22063. readOnly: false
  22064. ports:
  22065. - name: service
  22066. containerPort: 9000
  22067. livenessProbe:
  22068. tcpSocket:
  22069. port: 9000
  22070. timeoutSeconds: 1
  22071. resources:
  22072. requests:
  22073. cpu: 100m
  22074. memory: 128Mi
  22075. ---
  22076. # Source: gitlab/charts/nginx-ingress/templates/controller-deployment.yaml
  22077. apiVersion: apps/v1
  22078. kind: Deployment
  22079. metadata:
  22080. labels:
  22081. app: nginx-ingress
  22082. chart: nginx-ingress-4.0.6
  22083. release: gitlab
  22084. heritage: Helm
  22085. component: "controller"
  22086. helm.sh/chart: nginx-ingress-4.0.6
  22087. app.kubernetes.io/version: "1.0.4"
  22088. app.kubernetes.io/managed-by: Helm
  22089. app.kubernetes.io/component: controller
  22090. name: gitlab-nginx-ingress-controller
  22091. namespace: default
  22092. annotations:
  22093. spec:
  22094. selector:
  22095. matchLabels:
  22096. app: nginx-ingress
  22097. release: gitlab
  22098. component: "controller"
  22099. replicas: 2
  22100. revisionHistoryLimit: 10
  22101. minReadySeconds: 0
  22102. template:
  22103. metadata:
  22104. labels:
  22105. app: nginx-ingress
  22106. release: gitlab
  22107. component: "controller"
  22108. spec:
  22109. dnsPolicy: ClusterFirst
  22110. containers:
  22111. - name: controller
  22112. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/ingress-nginx/controller:v1.2.1@sha256:5516d103a9c2ecc4f026efbd4b40662ce22dc1f824fb129ed121460aaa5c47f8"
  22113. imagePullPolicy: IfNotPresent
  22114. lifecycle:
  22115. preStop:
  22116. exec:
  22117. command:
  22118. - /wait-shutdown
  22119. args:
  22120. - /nginx-ingress-controller
  22121. - --publish-service=$(POD_NAMESPACE)/gitlab-nginx-ingress-controller
  22122. - --election-id=ingress-controller-leader
  22123. - --controller-class=k8s.io/ingress-nginx
  22124. - --configmap=$(POD_NAMESPACE)/gitlab-nginx-ingress-controller
  22125. - --tcp-services-configmap=default/gitlab-nginx-ingress-tcp
  22126. - --watch-namespace=$(POD_NAMESPACE)
  22127. securityContext:
  22128. capabilities:
  22129. drop:
  22130. - ALL
  22131. add:
  22132. - NET_BIND_SERVICE
  22133. runAsUser: 101
  22134. allowPrivilegeEscalation: true
  22135. env:
  22136. - name: POD_NAME
  22137. valueFrom:
  22138. fieldRef:
  22139. fieldPath: metadata.name
  22140. - name: POD_NAMESPACE
  22141. valueFrom:
  22142. fieldRef:
  22143. fieldPath: metadata.namespace
  22144. - name: LD_PRELOAD
  22145. value: /usr/local/lib/libmimalloc.so
  22146. livenessProbe:
  22147. failureThreshold: 5
  22148. httpGet:
  22149. path: /healthz
  22150. port: 10254
  22151. scheme: HTTP
  22152. initialDelaySeconds: 10
  22153. periodSeconds: 10
  22154. successThreshold: 1
  22155. timeoutSeconds: 1
  22156. readinessProbe:
  22157. failureThreshold: 3
  22158. httpGet:
  22159. path: /healthz
  22160. port: 10254
  22161. scheme: HTTP
  22162. initialDelaySeconds: 10
  22163. periodSeconds: 10
  22164. successThreshold: 1
  22165. timeoutSeconds: 1
  22166. ports:
  22167. - name: http
  22168. containerPort: 80
  22169. protocol: TCP
  22170. - name: https
  22171. containerPort: 443
  22172. protocol: TCP
  22173. - name: metrics
  22174. containerPort: 10254
  22175. protocol: TCP
  22176. - name: gitlab-shell
  22177. containerPort: 22
  22178. protocol: TCP
  22179. resources:
  22180. requests:
  22181. cpu: 100m
  22182. memory: 100Mi
  22183. serviceAccountName: gitlab-nginx-ingress
  22184. terminationGracePeriodSeconds: 300
  22185. ---
  22186. # Source: gitlab/charts/prometheus/templates/server/deploy.yaml
  22187. apiVersion: apps/v1
  22188. kind: Deployment
  22189. metadata:
  22190. labels:
  22191. component: "server"
  22192. app: prometheus
  22193. release: gitlab
  22194. chart: prometheus-15.0.4
  22195. heritage: Helm
  22196. name: gitlab-prometheus-server
  22197. namespace: default
  22198. spec:
  22199. selector:
  22200. matchLabels:
  22201. component: "server"
  22202. app: prometheus
  22203. release: gitlab
  22204. replicas: 1
  22205. strategy:
  22206. type: Recreate
  22207. rollingUpdate: null
  22208. template:
  22209. metadata:
  22210. labels:
  22211. component: "server"
  22212. app: prometheus
  22213. release: gitlab
  22214. chart: prometheus-15.0.4
  22215. heritage: Helm
  22216. spec:
  22217. enableServiceLinks: true
  22218. serviceAccountName: gitlab-prometheus-server
  22219. containers:
  22220. - name: prometheus-server-configmap-reload
  22221. image: "jimmidyson/configmap-reload:v0.5.0"
  22222. imagePullPolicy: "IfNotPresent"
  22223. args:
  22224. - --volume-dir=/etc/config
  22225. - --webhook-url=http://127.0.0.1:9090/-/reload
  22226. resources:
  22227. {}
  22228. volumeMounts:
  22229. - name: config-volume
  22230. mountPath: /etc/config
  22231. readOnly: true
  22232. - name: prometheus-server
  22233. image: "quay.io/prometheus/prometheus:v2.31.1"
  22234. imagePullPolicy: "IfNotPresent"
  22235. args:
  22236. - --storage.tsdb.retention.time=15d
  22237. - --config.file=/etc/config/prometheus.yml
  22238. - --storage.tsdb.path=/data
  22239. - --web.console.libraries=/etc/prometheus/console_libraries
  22240. - --web.console.templates=/etc/prometheus/consoles
  22241. - --web.enable-lifecycle
  22242. ports:
  22243. - containerPort: 9090
  22244. readinessProbe:
  22245. httpGet:
  22246. path: /-/ready
  22247. port: 9090
  22248. scheme: HTTP
  22249. initialDelaySeconds: 30
  22250. periodSeconds: 5
  22251. timeoutSeconds: 4
  22252. failureThreshold: 3
  22253. successThreshold: 1
  22254. livenessProbe:
  22255. httpGet:
  22256. path: /-/healthy
  22257. port: 9090
  22258. scheme: HTTP
  22259. initialDelaySeconds: 30
  22260. periodSeconds: 15
  22261. timeoutSeconds: 10
  22262. failureThreshold: 3
  22263. successThreshold: 1
  22264. resources:
  22265. {}
  22266. volumeMounts:
  22267. - name: config-volume
  22268. mountPath: /etc/config
  22269. - name: storage-volume
  22270. mountPath: /data
  22271. subPath: ""
  22272. hostNetwork: false
  22273. dnsPolicy: ClusterFirst
  22274. securityContext:
  22275. fsGroup: 65534
  22276. runAsGroup: 65534
  22277. runAsNonRoot: true
  22278. runAsUser: 65534
  22279. terminationGracePeriodSeconds: 300
  22280. volumes:
  22281. - name: config-volume
  22282. configMap:
  22283. name: gitlab-prometheus-server
  22284. - name: storage-volume
  22285. persistentVolumeClaim:
  22286. claimName: gitlab-prometheus-server
  22287. ---
  22288. # Source: gitlab/charts/registry/templates/deployment.yaml
  22289. apiVersion: apps/v1
  22290. kind: Deployment
  22291. metadata:
  22292. name: gitlab-registry
  22293. namespace: default
  22294. labels:
  22295. app: registry
  22296. chart: registry-0.7.0
  22297. release: gitlab
  22298. heritage: Helm
  22299. annotations:
  22300. spec:
  22301. # Don't provide replicas when HPA are present
  22302. # replicas: 2
  22303. selector:
  22304. matchLabels:
  22305. app: registry
  22306. release: gitlab
  22307. template:
  22308. metadata:
  22309. labels:
  22310. app: registry
  22311. chart: registry-0.7.0
  22312. release: gitlab
  22313. heritage: Helm
  22314. annotations:
  22315. checksum/configmap: d0e247f04a11f1dbccc0de3bc6497d85fd1a784b19342076ad5bb46fabfd100c
  22316. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  22317. spec:
  22318. securityContext:
  22319. runAsUser: 1000
  22320. fsGroup: 1000
  22321. affinity:
  22322. podAntiAffinity:
  22323. preferredDuringSchedulingIgnoredDuringExecution:
  22324. - weight: 1
  22325. podAffinityTerm:
  22326. topologyKey: "kubernetes.io/hostname"
  22327. labelSelector:
  22328. matchLabels:
  22329. app: registry
  22330. release: gitlab
  22331. automountServiceAccountToken: false
  22332. initContainers:
  22333. - name: certificates
  22334. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  22335. env:
  22336. volumeMounts:
  22337. - name: etc-ssl-certs
  22338. mountPath: /etc/ssl/certs
  22339. readOnly: false
  22340. - name: etc-pki-ca-trust-extracted-pem
  22341. mountPath: /etc/pki/ca-trust/extracted/pem
  22342. readOnly: false
  22343. resources:
  22344. requests:
  22345. cpu: 50m
  22346. - name: configure
  22347. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  22348. command: ["sh", "/config/configure"]
  22349. volumeMounts:
  22350. - name: registry-secrets
  22351. mountPath: /config
  22352. - name: registry-server-config
  22353. mountPath: /registry
  22354. resources:
  22355. requests:
  22356. cpu: 50m
  22357. env:
  22358. containers:
  22359. - name: registry
  22360. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-container-registry:v3.65.0-gitlab"
  22361. env:
  22362. volumeMounts:
  22363. - name: registry-server-config
  22364. mountPath: /etc/docker/registry/
  22365. readOnly: true
  22366. - name: etc-ssl-certs
  22367. mountPath: /etc/ssl/certs/
  22368. readOnly: true
  22369. - name: etc-pki-ca-trust-extracted-pem
  22370. mountPath: /etc/pki/ca-trust/extracted/pem
  22371. readOnly: true
  22372. ports:
  22373. - containerPort: 5000
  22374. name: http
  22375. - containerPort: 5001
  22376. name: debug
  22377. livenessProbe:
  22378. httpGet:
  22379. path: /debug/health
  22380. port: debug
  22381. scheme: HTTP
  22382. initialDelaySeconds: 5
  22383. periodSeconds: 10
  22384. timeoutSeconds: 1
  22385. successThreshold: 1
  22386. failureThreshold: 3
  22387. readinessProbe:
  22388. httpGet:
  22389. path: /debug/health
  22390. port: debug
  22391. scheme: HTTP
  22392. initialDelaySeconds: 5
  22393. periodSeconds: 5
  22394. timeoutSeconds: 1
  22395. successThreshold: 1
  22396. failureThreshold: 3
  22397. resources:
  22398. requests:
  22399. cpu: 50m
  22400. memory: 32Mi
  22401. lifecycle:
  22402. preStop:
  22403. exec:
  22404. command: ["/bin/bash", "-c", "sleep 5"]
  22405. terminationGracePeriodSeconds: 30
  22406. volumes:
  22407. - name: registry-server-config
  22408. emptyDir:
  22409. medium: "Memory"
  22410. - name: registry-secrets
  22411. projected:
  22412. sources:
  22413. - configMap:
  22414. name: gitlab-registry
  22415. - secret:
  22416. name: "gitlab-registry-secret"
  22417. items:
  22418. - key: registry-auth.crt
  22419. path: certificate.crt
  22420. - secret:
  22421. name: "gitlab-registry-httpsecret"
  22422. items:
  22423. - key: "secret"
  22424. path: httpSecret
  22425. - secret:
  22426. name: "gitlab-minio-secret"
  22427. - name: etc-ssl-certs
  22428. emptyDir:
  22429. medium: "Memory"
  22430. - name: etc-pki-ca-trust-extracted-pem
  22431. emptyDir:
  22432. medium: "Memory"
  22433. ---
  22434. # Source: gitlab/charts/gitlab/charts/gitlab-shell/templates/hpa.yaml
  22435. apiVersion: autoscaling/v2beta1
  22436. kind: HorizontalPodAutoscaler
  22437. metadata:
  22438. name: gitlab-gitlab-shell
  22439. namespace: default
  22440. labels:
  22441. app: gitlab-shell
  22442. chart: gitlab-shell-6.8.0
  22443. release: gitlab
  22444. heritage: Helm
  22445. spec:
  22446. scaleTargetRef:
  22447. apiVersion: apps/v1
  22448. kind: Deployment
  22449. name: gitlab-gitlab-shell
  22450. minReplicas: 2
  22451. maxReplicas: 10
  22452. metrics:
  22453. - type: Resource
  22454. resource:
  22455. name: cpu
  22456. targetAverageValue: 100m
  22457. ---
  22458. # Source: gitlab/charts/gitlab/charts/kas/templates/hpa.yaml
  22459. apiVersion: autoscaling/v2beta1
  22460. kind: HorizontalPodAutoscaler
  22461. metadata:
  22462. name: gitlab-kas
  22463. namespace: default
  22464. labels:
  22465. app: kas
  22466. chart: kas-6.8.0
  22467. release: gitlab
  22468. heritage: Helm
  22469. spec:
  22470. scaleTargetRef:
  22471. apiVersion: apps/v1
  22472. kind: Deployment
  22473. name: gitlab-kas
  22474. minReplicas: 2
  22475. maxReplicas: 10
  22476. metrics:
  22477. - type: Resource
  22478. resource:
  22479. name: cpu
  22480. targetAverageValue: 100m
  22481. ---
  22482. # Source: gitlab/charts/gitlab/charts/sidekiq/templates/hpa.yaml
  22483. apiVersion: autoscaling/v2beta1
  22484. kind: HorizontalPodAutoscaler
  22485. metadata:
  22486. name: gitlab-sidekiq-all-in-1-v2
  22487. namespace: default
  22488. labels:
  22489. app: sidekiq
  22490. chart: sidekiq-6.8.0
  22491. release: gitlab
  22492. heritage: Helm
  22493. spec:
  22494. scaleTargetRef:
  22495. apiVersion: apps/v1
  22496. kind: Deployment
  22497. name: gitlab-sidekiq-all-in-1-v2
  22498. minReplicas: 1
  22499. maxReplicas: 10
  22500. metrics:
  22501. - type: Resource
  22502. resource:
  22503. name: cpu
  22504. targetAverageValue: 350m
  22505. ---
  22506. # Source: gitlab/charts/gitlab/charts/webservice/templates/hpa.yaml
  22507. apiVersion: autoscaling/v2beta1
  22508. kind: HorizontalPodAutoscaler
  22509. metadata:
  22510. name: gitlab-webservice-default
  22511. namespace: default
  22512. labels:
  22513. app: webservice
  22514. chart: webservice-6.8.0
  22515. release: gitlab
  22516. heritage: Helm
  22517. gitlab.com/webservice-name: default
  22518. spec:
  22519. scaleTargetRef:
  22520. apiVersion: apps/v1
  22521. kind: Deployment
  22522. name: gitlab-webservice-default
  22523. minReplicas: 2
  22524. maxReplicas: 10
  22525. metrics:
  22526. - type: Resource
  22527. resource:
  22528. name: cpu
  22529. targetAverageValue: 1
  22530. ---
  22531. # Source: gitlab/charts/registry/templates/hpa.yaml
  22532. apiVersion: autoscaling/v2beta1
  22533. kind: HorizontalPodAutoscaler
  22534. metadata:
  22535. name: gitlab-registry
  22536. namespace: default
  22537. labels:
  22538. app: registry
  22539. chart: registry-0.7.0
  22540. release: gitlab
  22541. heritage: Helm
  22542. spec:
  22543. scaleTargetRef:
  22544. apiVersion: apps/v1
  22545. kind: Deployment
  22546. name: gitlab-registry
  22547. minReplicas: 2
  22548. maxReplicas: 10
  22549. metrics:
  22550. - type: Resource
  22551. resource:
  22552. name: cpu
  22553. targetAverageUtilization: 75
  22554. ---
  22555. # Source: gitlab/charts/gitlab/charts/gitaly/templates/statefulset.yml
  22556. apiVersion: apps/v1
  22557. kind: StatefulSet
  22558. metadata:
  22559. name: gitlab-gitaly
  22560. namespace: default
  22561. labels:
  22562. app: gitaly
  22563. chart: gitaly-6.8.0
  22564. release: gitlab
  22565. heritage: Helm
  22566. spec:
  22567. selector:
  22568. matchLabels:
  22569. app: gitaly
  22570. release: gitlab
  22571. serviceName: gitlab-gitaly
  22572. replicas: 1
  22573. podManagementPolicy: Parallel
  22574. template:
  22575. metadata:
  22576. labels:
  22577. app: gitaly
  22578. chart: gitaly-6.8.0
  22579. release: gitlab
  22580. heritage: Helm
  22581. annotations:
  22582. checksum/config: 098aaeebf0eef4c54f1f14ebeb26ee586450f28afcbc80657a487a011dc21c10
  22583. gitlab.com/prometheus_scrape: "true"
  22584. gitlab.com/prometheus_port: "9236"
  22585. gitlab.com/prometheus_path: /metrics
  22586. prometheus.io/scrape: "true"
  22587. prometheus.io/port: "9236"
  22588. prometheus.io/path: /metrics
  22589. spec:
  22590. terminationGracePeriodSeconds: 30
  22591. initContainers:
  22592. - name: certificates
  22593. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  22594. env:
  22595. volumeMounts:
  22596. - name: etc-ssl-certs
  22597. mountPath: /etc/ssl/certs
  22598. readOnly: false
  22599. - name: etc-pki-ca-trust-extracted-pem
  22600. mountPath: /etc/pki/ca-trust/extracted/pem
  22601. readOnly: false
  22602. resources:
  22603. requests:
  22604. cpu: 50m
  22605. - name: configure
  22606. command: ['sh', '/config/configure']
  22607. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  22608. env:
  22609. volumeMounts:
  22610. - name: gitaly-config
  22611. mountPath: /config
  22612. readOnly: true
  22613. - name: init-gitaly-secrets
  22614. mountPath: /init-config
  22615. readOnly: true
  22616. - name: gitaly-secrets
  22617. mountPath: /init-secrets
  22618. readOnly: false
  22619. resources:
  22620. requests:
  22621. cpu: 50m
  22622. securityContext:
  22623. runAsUser: 1000
  22624. fsGroup: 1000
  22625. affinity:
  22626. podAntiAffinity:
  22627. preferredDuringSchedulingIgnoredDuringExecution:
  22628. - weight: 1
  22629. podAffinityTerm:
  22630. topologyKey: "kubernetes.io/hostname"
  22631. labelSelector:
  22632. matchLabels:
  22633. app: gitaly
  22634. release: gitlab
  22635. automountServiceAccountToken: false
  22636. containers:
  22637. - name: gitaly
  22638. image: "registry.gitlab.com/gitlab-org/build/cng/gitaly:v15.8.0"
  22639. ports:
  22640. - containerPort: 8075
  22641. name: grpc-gitaly
  22642. - containerPort: 9236
  22643. name: http-metrics
  22644. env:
  22645. - name: CONFIG_TEMPLATE_DIRECTORY
  22646. value: '/etc/gitaly/templates'
  22647. - name: CONFIG_DIRECTORY
  22648. value: '/etc/gitaly'
  22649. - name: GITALY_CONFIG_FILE
  22650. value: '/etc/gitaly/config.toml'
  22651. - name: SSL_CERT_DIR
  22652. value: '/etc/ssl/certs'
  22653. volumeMounts:
  22654. - name: etc-ssl-certs
  22655. mountPath: /etc/ssl/certs/
  22656. readOnly: true
  22657. - name: etc-pki-ca-trust-extracted-pem
  22658. mountPath: /etc/pki/ca-trust/extracted/pem
  22659. readOnly: true
  22660. - name: gitaly-config
  22661. mountPath: '/etc/gitaly/templates'
  22662. - name: gitaly-secrets
  22663. mountPath: '/etc/gitlab-secrets'
  22664. readOnly: true
  22665. - name: repo-data
  22666. mountPath: '/home/git/repositories'
  22667. livenessProbe:
  22668. exec:
  22669. command:
  22670. - /scripts/healthcheck
  22671. initialDelaySeconds: 30
  22672. periodSeconds: 10
  22673. timeoutSeconds: 3
  22674. successThreshold: 1
  22675. failureThreshold: 3
  22676. readinessProbe:
  22677. exec:
  22678. command:
  22679. - /scripts/healthcheck
  22680. initialDelaySeconds: 10
  22681. periodSeconds: 10
  22682. timeoutSeconds: 3
  22683. successThreshold: 1
  22684. failureThreshold: 3
  22685. resources:
  22686. requests:
  22687. cpu: 100m
  22688. memory: 200Mi
  22689. volumes:
  22690. - name: gitaly-config
  22691. configMap:
  22692. name: gitlab-gitaly
  22693. - name: gitaly-secrets
  22694. emptyDir:
  22695. medium: "Memory"
  22696. - name: init-gitaly-secrets
  22697. projected:
  22698. defaultMode: 0440
  22699. sources:
  22700. - secret:
  22701. name: "gitlab-gitaly-secret"
  22702. items:
  22703. - key: "token"
  22704. path: "gitaly_token"
  22705. - secret:
  22706. name: "gitlab-gitlab-shell-secret"
  22707. items:
  22708. - key: "secret"
  22709. path: ".gitlab_shell_secret"
  22710. - name: etc-ssl-certs
  22711. emptyDir:
  22712. medium: "Memory"
  22713. - name: etc-pki-ca-trust-extracted-pem
  22714. emptyDir:
  22715. medium: "Memory"
  22716. volumeClaimTemplates:
  22717. - metadata:
  22718. name: repo-data
  22719. labels:
  22720. app: gitaly
  22721. release: gitlab
  22722. annotations:
  22723. spec:
  22724. accessModes:
  22725. - "ReadWriteOnce"
  22726. resources:
  22727. requests:
  22728. storage: "50Gi"
  22729. selector:
  22730. ---
  22731. # Source: gitlab/charts/postgresql/templates/statefulset.yaml
  22732. apiVersion: apps/v1
  22733. kind: StatefulSet
  22734. metadata:
  22735. name: gitlab-postgresql
  22736. labels:
  22737. app: postgresql
  22738. chart: postgresql-8.9.4
  22739. release: "gitlab"
  22740. heritage: "Helm"
  22741. annotations:
  22742. spec:
  22743. serviceName: gitlab-postgresql-headless
  22744. replicas: 1
  22745. updateStrategy:
  22746. type: RollingUpdate
  22747. selector:
  22748. matchLabels:
  22749. app: postgresql
  22750. release: "gitlab"
  22751. role: master
  22752. template:
  22753. metadata:
  22754. name: gitlab-postgresql
  22755. labels:
  22756. app: postgresql
  22757. chart: postgresql-8.9.4
  22758. release: "gitlab"
  22759. heritage: "Helm"
  22760. role: master
  22761. annotations:
  22762. postgresql.gitlab/init-revision: "1"
  22763. spec:
  22764. securityContext:
  22765. fsGroup: 1001
  22766. containers:
  22767. - name: gitlab-postgresql
  22768. image: docker.io/bitnami/postgresql:12.7.0
  22769. imagePullPolicy: "IfNotPresent"
  22770. resources:
  22771. requests:
  22772. cpu: 250m
  22773. memory: 256Mi
  22774. securityContext:
  22775. runAsUser: 1001
  22776. env:
  22777. - name: BITNAMI_DEBUG
  22778. value: "false"
  22779. - name: POSTGRESQL_PORT_NUMBER
  22780. value: "5432"
  22781. - name: POSTGRESQL_VOLUME_DIR
  22782. value: "/bitnami/postgresql"
  22783. - name: PGDATA
  22784. value: "/bitnami/postgresql/data"
  22785. - name: POSTGRES_POSTGRES_PASSWORD_FILE
  22786. value: "/opt/bitnami/postgresql/secrets/postgresql-postgres-password"
  22787. - name: POSTGRES_USER
  22788. value: "gitlab"
  22789. - name: POSTGRES_PASSWORD_FILE
  22790. value: "/opt/bitnami/postgresql/secrets/postgresql-password"
  22791. - name: POSTGRES_DB
  22792. value: "gitlabhq_production"
  22793. - name: POSTGRESQL_ENABLE_LDAP
  22794. value: "no"
  22795. ports:
  22796. - name: tcp-postgresql
  22797. containerPort: 5432
  22798. livenessProbe:
  22799. exec:
  22800. command:
  22801. - /bin/sh
  22802. - -c
  22803. - exec pg_isready -U "gitlab" -d "gitlabhq_production" -h 127.0.0.1 -p 5432
  22804. initialDelaySeconds: 30
  22805. periodSeconds: 10
  22806. timeoutSeconds: 5
  22807. successThreshold: 1
  22808. failureThreshold: 6
  22809. readinessProbe:
  22810. exec:
  22811. command:
  22812. - /bin/sh
  22813. - -c
  22814. - -e
  22815. - |
  22816. exec pg_isready -U "gitlab" -d "gitlabhq_production" -h 127.0.0.1 -p 5432
  22817. [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
  22818. initialDelaySeconds: 5
  22819. periodSeconds: 10
  22820. timeoutSeconds: 5
  22821. successThreshold: 1
  22822. failureThreshold: 6
  22823. volumeMounts:
  22824. - name: custom-init-scripts
  22825. mountPath: /docker-entrypoint-initdb.d/
  22826. - name: postgresql-password
  22827. mountPath: /opt/bitnami/postgresql/secrets/
  22828. - name: dshm
  22829. mountPath: /dev/shm
  22830. - name: data
  22831. mountPath: /bitnami/postgresql
  22832. subPath:
  22833. - mountPath: /docker-entrypoint-preinitdb.d/init_revision.sh
  22834. name: custom-init-scripts
  22835. subPath: init_revision.sh
  22836. - name: metrics
  22837. image: docker.io/bitnami/postgres-exporter:0.8.0-debian-10-r99
  22838. imagePullPolicy: "IfNotPresent"
  22839. env:
  22840. - name: DATA_SOURCE_URI
  22841. value: "127.0.0.1:5432/gitlabhq_production?sslmode=disable"
  22842. - name: DATA_SOURCE_PASS_FILE
  22843. value: "/opt/bitnami/postgresql/secrets/postgresql-password"
  22844. - name: DATA_SOURCE_USER
  22845. value: gitlab
  22846. livenessProbe:
  22847. httpGet:
  22848. path: /
  22849. port: http-metrics
  22850. initialDelaySeconds: 5
  22851. periodSeconds: 10
  22852. timeoutSeconds: 5
  22853. successThreshold: 1
  22854. failureThreshold: 6
  22855. readinessProbe:
  22856. httpGet:
  22857. path: /
  22858. port: http-metrics
  22859. initialDelaySeconds: 5
  22860. periodSeconds: 10
  22861. timeoutSeconds: 5
  22862. successThreshold: 1
  22863. failureThreshold: 6
  22864. volumeMounts:
  22865. - name: postgresql-password
  22866. mountPath: /opt/bitnami/postgresql/secrets/
  22867. ports:
  22868. - name: http-metrics
  22869. containerPort: 9187
  22870. volumes:
  22871. - name: postgresql-password
  22872. secret:
  22873. secretName: "gitlab-postgresql-password"
  22874. - name: custom-init-scripts
  22875. configMap:
  22876. name: gitlab-postgresql-init-db
  22877. - name: dshm
  22878. emptyDir:
  22879. medium: Memory
  22880. sizeLimit: 1Gi
  22881. volumeClaimTemplates:
  22882. - metadata:
  22883. name: data
  22884. spec:
  22885. accessModes:
  22886. - "ReadWriteOnce"
  22887. resources:
  22888. requests:
  22889. storage: "8Gi"
  22890. ---
  22891. # Source: gitlab/charts/redis/templates/redis-master-statefulset.yaml
  22892. apiVersion: apps/v1
  22893. kind: StatefulSet
  22894. metadata:
  22895. name: gitlab-redis-master
  22896. namespace: "default"
  22897. labels:
  22898. app: redis
  22899. chart: redis-11.3.4
  22900. release: gitlab
  22901. heritage: Helm
  22902. spec:
  22903. selector:
  22904. matchLabels:
  22905. app: redis
  22906. release: gitlab
  22907. role: master
  22908. serviceName: gitlab-redis-headless
  22909. template:
  22910. metadata:
  22911. labels:
  22912. app: redis
  22913. chart: redis-11.3.4
  22914. release: gitlab
  22915. role: master
  22916. annotations:
  22917. checksum/health: 2ed4b2bbe51d60fae6f8f48e2d713fe7bf1b9e3c02b6fab345d637846ae76bed
  22918. checksum/configmap: 76f1e6ef3d11bdae420e0865853a610b6c9599f0d86bee8f2d6374029bdeae1e
  22919. checksum/secret: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  22920. prometheus.io/port: "9121"
  22921. prometheus.io/scrape: "true"
  22922. spec:
  22923. securityContext:
  22924. fsGroup: 1001
  22925. serviceAccountName: default
  22926. containers:
  22927. - name: redis
  22928. image: docker.io/bitnami/redis:6.0.9-debian-10-r0
  22929. imagePullPolicy: "IfNotPresent"
  22930. securityContext:
  22931. runAsUser: 1001
  22932. command:
  22933. - /bin/bash
  22934. - -c
  22935. - /opt/bitnami/scripts/start-scripts/start-master.sh
  22936. env:
  22937. - name: REDIS_REPLICATION_MODE
  22938. value: master
  22939. - name: REDIS_PASSWORD_FILE
  22940. value: "/opt/bitnami/redis/secrets/redis-password"
  22941. - name: REDIS_TLS_ENABLED
  22942. value: "no"
  22943. - name: REDIS_PORT
  22944. value: "6379"
  22945. ports:
  22946. - name: redis
  22947. containerPort: 6379
  22948. livenessProbe:
  22949. initialDelaySeconds: 5
  22950. periodSeconds: 5
  22951. # One second longer than command timeout should prevent generation of zombie processes.
  22952. timeoutSeconds: 6
  22953. successThreshold: 1
  22954. failureThreshold: 5
  22955. exec:
  22956. command:
  22957. - sh
  22958. - -c
  22959. - /health/ping_liveness_local.sh 5
  22960. readinessProbe:
  22961. initialDelaySeconds: 5
  22962. periodSeconds: 5
  22963. timeoutSeconds: 2
  22964. successThreshold: 1
  22965. failureThreshold: 5
  22966. exec:
  22967. command:
  22968. - sh
  22969. - -c
  22970. - /health/ping_readiness_local.sh 1
  22971. resources:
  22972. null
  22973. volumeMounts:
  22974. - name: start-scripts
  22975. mountPath: /opt/bitnami/scripts/start-scripts
  22976. - name: health
  22977. mountPath: /health
  22978. - name: redis-password
  22979. mountPath: /opt/bitnami/redis/secrets/
  22980. - name: redis-data
  22981. mountPath: /data
  22982. subPath:
  22983. - name: config
  22984. mountPath: /opt/bitnami/redis/mounted-etc
  22985. - name: redis-tmp-conf
  22986. mountPath: /opt/bitnami/redis/etc/
  22987. - name: metrics
  22988. image: docker.io/bitnami/redis-exporter:1.12.1-debian-10-r11
  22989. imagePullPolicy: "IfNotPresent"
  22990. command:
  22991. - /bin/bash
  22992. - -c
  22993. - |
  22994. if [[ -f '/secrets/redis-password' ]]; then
  22995. export REDIS_PASSWORD=$(cat /secrets/redis-password)
  22996. fi
  22997. redis_exporter
  22998. env:
  22999. - name: REDIS_ALIAS
  23000. value: gitlab-redis
  23001. volumeMounts:
  23002. - name: redis-password
  23003. mountPath: /secrets/
  23004. ports:
  23005. - name: metrics
  23006. containerPort: 9121
  23007. resources:
  23008. null
  23009. volumes:
  23010. - name: start-scripts
  23011. configMap:
  23012. name: gitlab-redis-scripts
  23013. defaultMode: 0755
  23014. - name: health
  23015. configMap:
  23016. name: gitlab-redis-health
  23017. defaultMode: 0755
  23018. - name: redis-password
  23019. secret:
  23020. secretName: "gitlab-redis-secret"
  23021. items:
  23022. - key: "secret"
  23023. path: redis-password
  23024. - name: config
  23025. configMap:
  23026. name: gitlab-redis
  23027. - name: redis-tmp-conf
  23028. emptyDir: {}
  23029. volumeClaimTemplates:
  23030. - metadata:
  23031. name: redis-data
  23032. labels:
  23033. app: redis
  23034. release: gitlab
  23035. heritage: Helm
  23036. component: master
  23037. spec:
  23038. accessModes:
  23039. - "ReadWriteOnce"
  23040. resources:
  23041. requests:
  23042. storage: "8Gi"
  23043. selector:
  23044. updateStrategy:
  23045. type: RollingUpdate
  23046. ---
  23047. # Source: gitlab/charts/certmanager-issuer/templates/issuer-job.yaml
  23048. apiVersion: batch/v1
  23049. kind: Job
  23050. metadata:
  23051. name: gitlab-issuer-1
  23052. namespace: default
  23053. labels:
  23054. app: certmanager-issuer
  23055. chart: certmanager-issuer-0.1.0
  23056. release: gitlab
  23057. heritage: Helm
  23058. spec:
  23059. activeDeadlineSeconds: 300
  23060. template:
  23061. metadata:
  23062. labels:
  23063. app: certmanager-issuer
  23064. release: gitlab
  23065. spec:
  23066. securityContext:
  23067. runAsUser: 65534
  23068. fsGroup: 65534
  23069. serviceAccountName: gitlab-certmanager-issuer
  23070. restartPolicy: OnFailure
  23071. containers:
  23072. - name: create-issuer
  23073. image: "registry.gitlab.com/gitlab-org/build/cng/kubectl:1.24.7@sha256:4be8ed0fb89c29c5bacf0dcedee803e1ac1298da9a45186eb5a391c2353c6bf6"
  23074. command: ['/bin/bash', '/scripts/create-issuer', '/scripts/issuer.yml']
  23075. volumeMounts:
  23076. - name: scripts
  23077. mountPath: /scripts
  23078. resources:
  23079. requests:
  23080. cpu: 50m
  23081. volumes:
  23082. - name: scripts
  23083. configMap:
  23084. name: gitlab-certmanager-issuer-certmanager
  23085. ---
  23086. # Source: gitlab/charts/gitlab/charts/migrations/templates/job.yaml
  23087. apiVersion: batch/v1
  23088. kind: Job
  23089. metadata:
  23090. name: gitlab-migrations-1
  23091. namespace: default
  23092. labels:
  23093. app: migrations
  23094. chart: migrations-6.8.0
  23095. release: gitlab
  23096. heritage: Helm
  23097. spec:
  23098. activeDeadlineSeconds: 3600
  23099. backoffLimit: 6
  23100. template:
  23101. metadata:
  23102. labels:
  23103. app: migrations
  23104. chart: migrations-6.8.0
  23105. release: gitlab
  23106. heritage: Helm
  23107. spec:
  23108. securityContext:
  23109. runAsUser: 1000
  23110. fsGroup: 1000
  23111. automountServiceAccountToken: false
  23112. initContainers:
  23113. - name: certificates
  23114. image: "registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20191127-r2@sha256:367d437d024d7647432d67fb2442e3e5723af5930bad77d3535f4f8f4f8630d9"
  23115. env:
  23116. volumeMounts:
  23117. - name: etc-ssl-certs
  23118. mountPath: /etc/ssl/certs
  23119. readOnly: false
  23120. - name: etc-pki-ca-trust-extracted-pem
  23121. mountPath: /etc/pki/ca-trust/extracted/pem
  23122. readOnly: false
  23123. resources:
  23124. requests:
  23125. cpu: 50m
  23126. - name: configure
  23127. command: ['sh', '/config/configure']
  23128. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  23129. env:
  23130. volumeMounts:
  23131. - name: migrations-config
  23132. mountPath: /config
  23133. readOnly: true
  23134. - name: init-migrations-secrets
  23135. mountPath: /init-config
  23136. readOnly: true
  23137. - name: migrations-secrets
  23138. mountPath: /init-secrets
  23139. readOnly: false
  23140. resources:
  23141. requests:
  23142. cpu: 50m
  23143. restartPolicy: OnFailure
  23144. containers:
  23145. - name: migrations
  23146. image: "registry.gitlab.com/gitlab-org/build/cng/gitlab-toolbox-ee:v15.8.0"
  23147. args:
  23148. - /scripts/wait-for-deps
  23149. - /scripts/db-migrate
  23150. env:
  23151. - name: CONFIG_TEMPLATE_DIRECTORY
  23152. value: '/var/opt/gitlab/templates'
  23153. - name: CONFIG_DIRECTORY
  23154. value: '/srv/gitlab/config'
  23155. - name: BYPASS_SCHEMA_VERSION
  23156. value: 'true'
  23157. - name: ENABLE_BOOTSNAP
  23158. value: '1'
  23159. volumeMounts:
  23160. - name: migrations-config
  23161. mountPath: '/var/opt/gitlab/templates'
  23162. - name: migrations-secrets
  23163. mountPath: '/etc/gitlab'
  23164. readOnly: true
  23165. - name: migrations-secrets
  23166. mountPath: /srv/gitlab/config/secrets.yml
  23167. subPath: rails-secrets/secrets.yml
  23168. - name: migrations-secrets
  23169. mountPath: /srv/gitlab/config/initial_root_password
  23170. subPath: migrations/initial_root_password
  23171. - name: migrations-secrets
  23172. mountPath: /srv/gitlab/config/gitlab_shared_runners_registration_token
  23173. subPath: migrations/gitlab_shared_runners_registration_token
  23174. - name: etc-ssl-certs
  23175. mountPath: /etc/ssl/certs/
  23176. readOnly: true
  23177. - name: etc-pki-ca-trust-extracted-pem
  23178. mountPath: /etc/pki/ca-trust/extracted/pem
  23179. readOnly: true
  23180. resources:
  23181. requests:
  23182. cpu: 250m
  23183. memory: 200Mi
  23184. volumes:
  23185. - name: migrations-config
  23186. configMap:
  23187. name: gitlab-migrations
  23188. - name: init-migrations-secrets
  23189. projected:
  23190. defaultMode: 0400
  23191. sources:
  23192. - secret:
  23193. name: "gitlab-rails-secret"
  23194. items:
  23195. - key: secrets.yml
  23196. path: rails-secrets/secrets.yml
  23197. - secret:
  23198. name: "gitlab-gitaly-secret"
  23199. items:
  23200. - key: "token"
  23201. path: gitaly/gitaly_token
  23202. - secret:
  23203. name: "gitlab-redis-secret"
  23204. items:
  23205. - key: "secret"
  23206. path: redis/redis-password
  23207. - secret:
  23208. name: "gitlab-postgresql-password"
  23209. items:
  23210. - key: "postgresql-password"
  23211. path: postgres/psql-password-main
  23212. - secret:
  23213. name: "gitlab-gitlab-initial-root-password"
  23214. items:
  23215. - key: "password"
  23216. path: migrations/initial_root_password
  23217. - secret:
  23218. name: "gitlab-gitlab-runner-secret"
  23219. items:
  23220. - key: runner-registration-token
  23221. path: migrations/gitlab_shared_runners_registration_token
  23222. - name: migrations-secrets
  23223. emptyDir:
  23224. medium: "Memory"
  23225. - name: etc-ssl-certs
  23226. emptyDir:
  23227. medium: "Memory"
  23228. - name: etc-pki-ca-trust-extracted-pem
  23229. emptyDir:
  23230. medium: "Memory"
  23231. ---
  23232. # Source: gitlab/charts/minio/templates/create-buckets-job.yaml
  23233. apiVersion: batch/v1
  23234. kind: Job
  23235. metadata:
  23236. name: gitlab-minio-create-buckets-1
  23237. namespace: default
  23238. labels:
  23239. app: minio
  23240. chart: minio-0.4.3
  23241. release: gitlab
  23242. heritage: Helm
  23243. spec:
  23244. activeDeadlineSeconds: 600
  23245. template:
  23246. metadata:
  23247. labels:
  23248. component: create-buckets
  23249. app: minio
  23250. chart: minio-0.4.3
  23251. release: gitlab
  23252. heritage: Helm
  23253. spec:
  23254. automountServiceAccountToken: false
  23255. restartPolicy: OnFailure
  23256. volumes:
  23257. - name: minio-configuration
  23258. projected:
  23259. sources:
  23260. - configMap:
  23261. name: gitlab-minio-config-cm
  23262. - secret:
  23263. name: "gitlab-minio-secret"
  23264. containers:
  23265. - name: minio-mc
  23266. image: minio/mc:RELEASE.2018-07-13T00-53-22Z
  23267. command: ["/bin/sh", "/config/initialize"]
  23268. env:
  23269. - name: MINIO_ENDPOINT
  23270. value: gitlab-minio-svc.default.svc
  23271. - name: MINIO_PORT
  23272. value: "9000"
  23273. volumeMounts:
  23274. - name: minio-configuration
  23275. mountPath: /config
  23276. resources:
  23277. requests:
  23278. cpu: 50m
  23279. ---
  23280. # Source: gitlab/charts/gitlab/charts/kas/templates/ingress.yaml
  23281. apiVersion: extensions/v1beta1
  23282. kind: Ingress
  23283. metadata:
  23284. name: gitlab-kas
  23285. namespace: default
  23286. labels:
  23287. app: kas
  23288. chart: kas-6.8.0
  23289. release: gitlab
  23290. heritage: Helm
  23291. annotations:
  23292. kubernetes.io/ingress.class: gitlab-nginx
  23293. kubernetes.io/ingress.provider: "traefik"
  23294. cert-manager.io/issuer: "gitlab-issuer"
  23295. spec:
  23296. rules:
  23297. - host: kas.git.dezendorf.net
  23298. http:
  23299. paths:
  23300. - path: "/k8s-proxy/"
  23301. backend:
  23302. serviceName: gitlab-kas
  23303. servicePort: 8154
  23304. - path: "/"
  23305. backend:
  23306. serviceName: gitlab-kas
  23307. servicePort: 8150
  23308. tls:
  23309. - hosts:
  23310. - kas.git.dezendorf.net
  23311. secretName: gitlab-kas-tls
  23312. ---
  23313. # Source: gitlab/charts/gitlab/charts/webservice/templates/ingress.yaml
  23314. apiVersion: extensions/v1beta1
  23315. kind: Ingress
  23316. metadata:
  23317. name: gitlab-webservice-default
  23318. namespace: default
  23319. labels:
  23320. app: webservice
  23321. chart: webservice-6.8.0
  23322. release: gitlab
  23323. heritage: Helm
  23324. gitlab.com/webservice-name: default
  23325. annotations:
  23326. kubernetes.io/ingress.class: gitlab-nginx
  23327. kubernetes.io/ingress.provider: "traefik"
  23328. cert-manager.io/issuer: "gitlab-issuer"
  23329. nginx.ingress.kubernetes.io/service-upstream: "true"
  23330. spec:
  23331. rules:
  23332. - host: gitlab.git.dezendorf.net
  23333. http:
  23334. paths:
  23335. - path: /
  23336. backend:
  23337. serviceName: gitlab-webservice-default
  23338. servicePort: 8181
  23339. tls:
  23340. - hosts:
  23341. - gitlab.git.dezendorf.net
  23342. secretName: gitlab-gitlab-tls
  23343. ---
  23344. # Source: gitlab/charts/minio/templates/ingress.yaml
  23345. apiVersion: extensions/v1beta1
  23346. kind: Ingress
  23347. metadata:
  23348. name: gitlab-minio
  23349. namespace: default
  23350. labels:
  23351. app: minio
  23352. chart: minio-0.4.3
  23353. release: gitlab
  23354. heritage: Helm
  23355. annotations:
  23356. kubernetes.io/ingress.class: gitlab-nginx
  23357. kubernetes.io/ingress.provider: "traefik"
  23358. cert-manager.io/issuer: "gitlab-issuer"
  23359. spec:
  23360. rules:
  23361. - host: minio.git.dezendorf.net
  23362. http:
  23363. paths:
  23364. - path: /
  23365. backend:
  23366. serviceName: gitlab-minio-svc
  23367. servicePort: 9000
  23368. tls:
  23369. - hosts:
  23370. - minio.git.dezendorf.net
  23371. secretName: gitlab-minio-tls
  23372. ---
  23373. # Source: gitlab/charts/registry/templates/ingress.yaml
  23374. apiVersion: extensions/v1beta1
  23375. kind: Ingress
  23376. metadata:
  23377. name: gitlab-registry
  23378. namespace: default
  23379. labels:
  23380. app: registry
  23381. chart: registry-0.7.0
  23382. release: gitlab
  23383. heritage: Helm
  23384. annotations:
  23385. kubernetes.io/ingress.class: gitlab-nginx
  23386. kubernetes.io/ingress.provider: "traefik"
  23387. cert-manager.io/issuer: "gitlab-issuer"
  23388. spec:
  23389. rules:
  23390. - host: registry.git.dezendorf.net
  23391. http:
  23392. paths:
  23393. - path: /
  23394. backend:
  23395. serviceName: gitlab-registry
  23396. servicePort: 5000
  23397. tls:
  23398. - hosts:
  23399. - registry.git.dezendorf.net
  23400. secretName: gitlab-registry-tls
  23401. ---
  23402. # Source: gitlab/charts/nginx-ingress/templates/controller-ingressclass.yaml
  23403. # We don't support namespaced ingressClass yet
  23404. # So a ClusterRole and a ClusterRoleBinding is required
  23405. apiVersion: networking.k8s.io/v1
  23406. kind: IngressClass
  23407. metadata:
  23408. labels:
  23409. app: nginx-ingress
  23410. chart: nginx-ingress-4.0.6
  23411. release: gitlab
  23412. heritage: Helm
  23413. component: "controller"
  23414. helm.sh/chart: nginx-ingress-4.0.6
  23415. app.kubernetes.io/version: "1.0.4"
  23416. app.kubernetes.io/managed-by: Helm
  23417. app.kubernetes.io/component: controller
  23418. name: gitlab-nginx
  23419. spec:
  23420. controller: k8s.io/ingress-nginx
  23421. ---
  23422. # Source: gitlab/charts/certmanager/templates/webhook-mutating-webhook.yaml
  23423. apiVersion: admissionregistration.k8s.io/v1
  23424. kind: MutatingWebhookConfiguration
  23425. metadata:
  23426. name: gitlab-certmanager-webhook
  23427. labels:
  23428. app: webhook
  23429. app.kubernetes.io/name: webhook
  23430. app.kubernetes.io/instance: gitlab
  23431. app.kubernetes.io/component: "webhook"
  23432. app.kubernetes.io/version: "v1.5.4"
  23433. app.kubernetes.io/managed-by: Helm
  23434. helm.sh/chart: certmanager-v1.5.4
  23435. annotations:
  23436. cert-manager.io/inject-ca-from-secret: "default/gitlab-certmanager-webhook-ca"
  23437. webhooks:
  23438. - name: webhook.cert-manager.io
  23439. rules:
  23440. - apiGroups:
  23441. - "cert-manager.io"
  23442. - "acme.cert-manager.io"
  23443. apiVersions:
  23444. - "v1"
  23445. operations:
  23446. - CREATE
  23447. - UPDATE
  23448. resources:
  23449. - "*/*"
  23450. # We don't actually support `v1beta1` but is listed here as it is a
  23451. # required value for
  23452. # [Kubernetes v1.16](https://github.com/kubernetes/kubernetes/issues/82025).
  23453. # The API server reads the supported versions in order, so _should always_
  23454. # attempt a `v1` request which is understood by the cert-manager webhook.
  23455. # Any `v1beta1` request will return an error and fail closed for that
  23456. # resource (the whole object request is rejected). When we no longer
  23457. # support v1.16 we can remove `v1beta1` from this list.
  23458. admissionReviewVersions: ["v1", "v1beta1"]
  23459. # This webhook only accepts v1 cert-manager resources.
  23460. # Equivalent matchPolicy ensures that non-v1 resource requests are sent to
  23461. # this webhook (after the resources have been converted to v1).
  23462. matchPolicy: Equivalent
  23463. timeoutSeconds: 10
  23464. failurePolicy: Fail
  23465. # Only include 'sideEffects' field in Kubernetes 1.12+
  23466. sideEffects: None
  23467. clientConfig:
  23468. service:
  23469. name: gitlab-certmanager-webhook
  23470. namespace: "default"
  23471. path: /mutate
  23472. ---
  23473. # Source: gitlab/charts/certmanager/templates/webhook-validating-webhook.yaml
  23474. apiVersion: admissionregistration.k8s.io/v1
  23475. kind: ValidatingWebhookConfiguration
  23476. metadata:
  23477. name: gitlab-certmanager-webhook
  23478. labels:
  23479. app: webhook
  23480. app.kubernetes.io/name: webhook
  23481. app.kubernetes.io/instance: gitlab
  23482. app.kubernetes.io/component: "webhook"
  23483. app.kubernetes.io/version: "v1.5.4"
  23484. app.kubernetes.io/managed-by: Helm
  23485. helm.sh/chart: certmanager-v1.5.4
  23486. annotations:
  23487. cert-manager.io/inject-ca-from-secret: "default/gitlab-certmanager-webhook-ca"
  23488. webhooks:
  23489. - name: webhook.cert-manager.io
  23490. namespaceSelector:
  23491. matchExpressions:
  23492. - key: "cert-manager.io/disable-validation"
  23493. operator: "NotIn"
  23494. values:
  23495. - "true"
  23496. - key: "name"
  23497. operator: "NotIn"
  23498. values:
  23499. - default
  23500. rules:
  23501. - apiGroups:
  23502. - "cert-manager.io"
  23503. - "acme.cert-manager.io"
  23504. apiVersions:
  23505. - "v1"
  23506. operations:
  23507. - CREATE
  23508. - UPDATE
  23509. resources:
  23510. - "*/*"
  23511. # We don't actually support `v1beta1` but is listed here as it is a
  23512. # required value for
  23513. # [Kubernetes v1.16](https://github.com/kubernetes/kubernetes/issues/82025).
  23514. # The API server reads the supported versions in order, so _should always_
  23515. # attempt a `v1` request which is understood by the cert-manager webhook.
  23516. # Any `v1beta1` request will return an error and fail closed for that
  23517. # resource (the whole object request is rejected). When we no longer
  23518. # support v1.16 we can remove `v1beta1` from this list.
  23519. admissionReviewVersions: ["v1", "v1beta1"]
  23520. # This webhook only accepts v1 cert-manager resources.
  23521. # Equivalent matchPolicy ensures that non-v1 resource requests are sent to
  23522. # this webhook (after the resources have been converted to v1).
  23523. matchPolicy: Equivalent
  23524. timeoutSeconds: 10
  23525. failurePolicy: Fail
  23526. sideEffects: None
  23527. clientConfig:
  23528. service:
  23529. name: gitlab-certmanager-webhook
  23530. namespace: "default"
  23531. path: /validate
  23532. ---
  23533. # Source: gitlab/charts/certmanager/templates/startupapicheck-serviceaccount.yaml
  23534. apiVersion: v1
  23535. kind: ServiceAccount
  23536. automountServiceAccountToken: true
  23537. metadata:
  23538. name: gitlab-certmanager-startupapicheck
  23539. namespace: "default"
  23540. annotations:
  23541. helm.sh/hook: post-install
  23542. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
  23543. helm.sh/hook-weight: "-5"
  23544. labels:
  23545. app: startupapicheck
  23546. app.kubernetes.io/name: startupapicheck
  23547. app.kubernetes.io/instance: gitlab
  23548. app.kubernetes.io/component: "startupapicheck"
  23549. app.kubernetes.io/version: "v1.5.4"
  23550. app.kubernetes.io/managed-by: Helm
  23551. helm.sh/chart: certmanager-v1.5.4
  23552. ---
  23553. # Source: gitlab/templates/shared-secrets/rbac-config.yaml
  23554. apiVersion: v1
  23555. kind: ServiceAccount
  23556. metadata:
  23557. name: gitlab-shared-secrets
  23558. namespace: default
  23559. labels:
  23560. app: gitlab
  23561. chart: gitlab-6.8.0
  23562. release: gitlab
  23563. heritage: Helm
  23564. annotations:
  23565. "helm.sh/hook": pre-install,pre-upgrade
  23566. "helm.sh/hook-weight": "-5"
  23567. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  23568. ---
  23569. # Source: gitlab/templates/shared-secrets/configmap.yaml
  23570. apiVersion: v1
  23571. kind: ConfigMap
  23572. metadata:
  23573. name: gitlab-shared-secrets
  23574. namespace: default
  23575. labels:
  23576. app: gitlab
  23577. chart: gitlab-6.8.0
  23578. release: gitlab
  23579. heritage: Helm
  23580. annotations:
  23581. "helm.sh/hook": pre-install,pre-upgrade
  23582. "helm.sh/hook-weight": "-3"
  23583. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  23584. data:
  23585. generate-secrets: |
  23586. # vim: set filetype=sh:
  23587. namespace=default
  23588. release=gitlab
  23589. env=production
  23590. pushd $(mktemp -d)
  23591. # Args pattern, length
  23592. function gen_random(){
  23593. head -c 4096 /dev/urandom | LC_CTYPE=C tr -cd $1 | head -c $2
  23594. }
  23595. # Args: yaml file, search path
  23596. function fetch_rails_value(){
  23597. local value=$(yq ".${2}" $1)
  23598. # Don't return null values
  23599. if [ "${value}" != "null" ]; then echo "${value}"; fi
  23600. }
  23601. # Args: secretname
  23602. function label_secret(){
  23603. local secret_name=$1
  23604. # Remove application labels if they exist
  23605. kubectl --namespace=$namespace label \
  23606. secret $secret_name $(echo 'app.kubernetes.io/name=gitlab' | sed -E 's/=[^ ]*/-/g')
  23607. kubectl --namespace=$namespace label \
  23608. --overwrite \
  23609. secret $secret_name app=gitlab chart=gitlab-6.8.0 release=gitlab heritage=Helm
  23610. }
  23611. # Args: secretname, args
  23612. function generate_secret_if_needed(){
  23613. local secret_args=( "${@:2}")
  23614. local secret_name=$1
  23615. if ! $(kubectl --namespace=$namespace get secret $secret_name > /dev/null 2>&1); then
  23616. kubectl --namespace=$namespace create secret generic $secret_name ${secret_args[@]}
  23617. else
  23618. echo "secret \"$secret_name\" already exists."
  23619. for arg in "${secret_args[@]}"; do
  23620. local from=$(echo -n ${arg} | cut -d '=' -f1)
  23621. if [ -z "${from##*literal*}" ]; then
  23622. local key=$(echo -n ${arg} | cut -d '=' -f2)
  23623. local desiredValue=$(echo -n ${arg} | cut -d '=' -f3-)
  23624. local flags="--namespace=$namespace --allow-missing-template-keys=false"
  23625. if ! $(kubectl $flags get secret $secret_name -ojsonpath="{.data.${key}}" > /dev/null 2>&1); then
  23626. echo "key \"${key}\" does not exist. patching it in."
  23627. if [ "${desiredValue}" != "" ]; then
  23628. desiredValue=$(echo -n "${desiredValue}" | base64 -w 0)
  23629. fi
  23630. kubectl --namespace=$namespace patch secret ${secret_name} -p "{\"data\":{\"$key\":\"${desiredValue}\"}}"
  23631. fi
  23632. fi
  23633. done
  23634. fi
  23635. label_secret $secret_name
  23636. }
  23637. # Initial root password
  23638. generate_secret_if_needed "gitlab-gitlab-initial-root-password" --from-literal="password"=$(gen_random 'a-zA-Z0-9' 64)
  23639. # Redis password
  23640. generate_secret_if_needed "gitlab-redis-secret" --from-literal="secret"=$(gen_random 'a-zA-Z0-9' 64)
  23641. # Postgres password
  23642. generate_secret_if_needed "gitlab-postgresql-password" --from-literal=postgresql-password=$(gen_random 'a-zA-Z0-9' 64) --from-literal=postgresql-postgres-password=$(gen_random 'a-zA-Z0-9' 64)
  23643. # Gitlab shell
  23644. generate_secret_if_needed "gitlab-gitlab-shell-secret" --from-literal="secret"=$(gen_random 'a-zA-Z0-9' 64)
  23645. # Gitaly secret
  23646. generate_secret_if_needed "gitlab-gitaly-secret" --from-literal="token"=$(gen_random 'a-zA-Z0-9' 64)
  23647. # Minio secret
  23648. generate_secret_if_needed "gitlab-minio-secret" --from-literal=accesskey=$(gen_random 'a-zA-Z0-9' 64) --from-literal=secretkey=$(gen_random 'a-zA-Z0-9' 64)
  23649. # Gitlab runner secret
  23650. generate_secret_if_needed "gitlab-gitlab-runner-secret" --from-literal=runner-registration-token=$(gen_random 'a-zA-Z0-9' 64) --from-literal=runner-token=""
  23651. # GitLab Pages API secret
  23652. # GitLab Pages auth secret for hashing cookie store when using access control
  23653. # GitLab Pages OAuth secret
  23654. # Gitlab-kas secret
  23655. generate_secret_if_needed "gitlab-gitlab-kas-secret" --from-literal="kas_shared_secret"=$(gen_random 'a-zA-Z0-9' 32 | base64)
  23656. # Gitlab-kas private API secret
  23657. generate_secret_if_needed "gitlab-kas-private-api" --from-literal="kas_private_api_secret"=$(gen_random 'a-zA-Z0-9' 32 | base64)
  23658. # Gitlab-suggested-reviewers secret
  23659. generate_secret_if_needed "gitlab-gitlab-suggested-reviewers" --from-literal="suggested_reviewers_secret"=$(gen_random 'a-zA-Z0-9' 32 | base64)
  23660. # Registry certificates
  23661. mkdir -p certs
  23662. openssl req -new -newkey rsa:4096 -subj "/CN=gitlab-issuer" -nodes -x509 -keyout certs/registry-example-com.key -out certs/registry-example-com.crt -days 3650
  23663. generate_secret_if_needed "gitlab-registry-secret" --from-file=registry-auth.key=certs/registry-example-com.key --from-file=registry-auth.crt=certs/registry-example-com.crt
  23664. # config/secrets.yaml
  23665. if [ -n "$env" ]; then
  23666. rails_secret="gitlab-rails-secret"
  23667. # Fetch the values from the existing secret if it exists
  23668. if $(kubectl --namespace=$namespace get secret $rails_secret > /dev/null 2>&1); then
  23669. kubectl --namespace=$namespace get secret $rails_secret -o jsonpath="{.data.secrets\.yml}" | base64 --decode > secrets.yml
  23670. secret_key_base=$(fetch_rails_value secrets.yml "${env}.secret_key_base")
  23671. otp_key_base=$(fetch_rails_value secrets.yml "${env}.otp_key_base")
  23672. db_key_base=$(fetch_rails_value secrets.yml "${env}.db_key_base")
  23673. openid_connect_signing_key=$(fetch_rails_value secrets.yml "${env}.openid_connect_signing_key")
  23674. ci_jwt_signing_key=$(fetch_rails_value secrets.yml "${env}.ci_jwt_signing_key")
  23675. encrypted_settings_key_base=$(fetch_rails_value secrets.yml "${env}.encrypted_settings_key_base")
  23676. fi;
  23677. # Generate defaults for any unset secrets
  23678. secret_key_base="${secret_key_base:-$(gen_random 'a-f0-9' 128)}" # equavilent to secureRandom.hex(64)
  23679. otp_key_base="${otp_key_base:-$(gen_random 'a-f0-9' 128)}" # equavilent to secureRandom.hex(64)
  23680. db_key_base="${db_key_base:-$(gen_random 'a-f0-9' 128)}" # equavilent to secureRandom.hex(64)
  23681. openid_connect_signing_key="${openid_connect_signing_key:-$(openssl genrsa 2048)}"
  23682. ci_jwt_signing_key="${ci_jwt_signing_key:-$(openssl genrsa 2048)}"
  23683. encrypted_settings_key_base="${encrypted_settings_key_base:-$(gen_random 'a-f0-9' 128)}" # equavilent to secureRandom.hex(64)
  23684. # Update the existing secret
  23685. cat << EOF > rails-secrets.yml
  23686. apiVersion: v1
  23687. kind: Secret
  23688. metadata:
  23689. name: $rails_secret
  23690. type: Opaque
  23691. stringData:
  23692. secrets.yml: |-
  23693. $env:
  23694. secret_key_base: $secret_key_base
  23695. otp_key_base: $otp_key_base
  23696. db_key_base: $db_key_base
  23697. encrypted_settings_key_base: $encrypted_settings_key_base
  23698. openid_connect_signing_key: |
  23699. $(echo "${openid_connect_signing_key}" | awk '{print " " $0}')
  23700. ci_jwt_signing_key: |
  23701. $(echo "${ci_jwt_signing_key}" | awk '{print " " $0}')
  23702. EOF
  23703. kubectl --validate=false --namespace=$namespace apply -f rails-secrets.yml
  23704. label_secret $rails_secret
  23705. fi
  23706. # Shell ssh host keys
  23707. ssh-keygen -A
  23708. mkdir -p host_keys
  23709. cp /etc/ssh/ssh_host_* host_keys/
  23710. generate_secret_if_needed "gitlab-gitlab-shell-host-keys" --from-file host_keys
  23711. # Gitlab-workhorse secret
  23712. generate_secret_if_needed "gitlab-gitlab-workhorse-secret" --from-literal="shared_secret"=$(gen_random 'a-zA-Z0-9' 32 | base64)
  23713. # Registry http.secret secret
  23714. generate_secret_if_needed "gitlab-registry-httpsecret" --from-literal="secret"=$(gen_random 'a-z0-9' 128 | base64 -w 0)
  23715. # Container Registry notification_secret
  23716. generate_secret_if_needed "gitlab-registry-notification" --from-literal="secret"=[\"$(gen_random 'a-zA-Z0-9' 32)\"]
  23717. ---
  23718. # Source: gitlab/templates/upgrade_check_hook.yaml
  23719. apiVersion: v1
  23720. kind: ConfigMap
  23721. metadata:
  23722. name: gitlab-gitlab-upgrade-check
  23723. namespace: default
  23724. labels:
  23725. app: gitlab
  23726. chart: gitlab-6.8.0
  23727. release: gitlab
  23728. heritage: Helm
  23729. annotations:
  23730. "helm.sh/hook": pre-upgrade
  23731. "helm.sh/hook-weight": "-11"
  23732. "helm.sh/hook-delete-policy": before-hook-creation
  23733. data:
  23734. runcheck: |
  23735. #!/bin/sh
  23736. set -e
  23737. notify() {
  23738. echo "$1"
  23739. echo -n "$1 " >> /dev/termination-log
  23740. }
  23741. greater_version()
  23742. {
  23743. test "$(printf '%s\n' "$@" | sort -V | tail -n 1)" = "$1";
  23744. }
  23745. # For the PostgreSQL upgrade, you either need both secrets, or no secrets.
  23746. # If there are no secrets, we will create them for you.
  23747. # If the secrets aren't in either of these states, we assume you are upgrading from an older version
  23748. # This is running ahead of version checks to ensure this always runs. This is to account for
  23749. # installations outside of the official helm repo.
  23750. secrets_dir="/etc/secrets/postgresql"
  23751. if [ -d "${secrets_dir}" ]; then
  23752. if [ ! "$(ls -A ${secrets_dir}/..data/)" = "" ]; then
  23753. if [ ! -f "${secrets_dir}/postgresql-postgres-password" ] || [ ! -f "${secrets_dir}/postgresql-password" ]; then
  23754. notify "You seem to be upgrading from a previous version of GitLab using the bundled PostgreSQL chart"
  23755. notify "There are some manual steps which need to be performed in order to upgrade the database"
  23756. notify "Please see the upgrade documentation for instructions on how to proceed:"
  23757. notify "https://docs.gitlab.com/charts/installation/upgrade.html"
  23758. exit 1
  23759. fi
  23760. fi
  23761. fi
  23762. MIN_VERSION=14.10
  23763. CHART_MIN_VERSION=5.10
  23764. # Only run check for semver releases
  23765. if ! awk 'BEGIN{exit(!(ARGV[1] ~ /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/))}' "$GITLAB_VERSION"; then
  23766. exit 0
  23767. fi
  23768. NEW_MAJOR_VERSION=$(echo $GITLAB_VERSION | awk -F "." '{print $1}')
  23769. NEW_MINOR_VERSION=$(echo $GITLAB_VERSION | awk -F "." '{print $1"."$2}')
  23770. NEW_CHART_MAJOR_VERSION=$(echo $CHART_VERSION | awk -F "." '{print $1}')
  23771. NEW_CHART_MINOR_VERSION=$(echo $CHART_VERSION | awk -F "." '{print $1"."$2}')
  23772. if [ ! -f /chart-info/gitlabVersion ]; then
  23773. notify "It seems you are attempting an unsupported upgrade path."
  23774. notify "Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/#upgrade-paths"
  23775. exit 1
  23776. fi
  23777. OLD_VERSION_STRING=$(cat /chart-info/gitlabVersion)
  23778. OLD_CHART_VERSION_STRING=$(cat /chart-info/gitlabChartVersion)
  23779. # Skip check if old version wasn't semver
  23780. if ! awk 'BEGIN{exit(!(ARGV[1] ~ /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/))}' "$OLD_VERSION_STRING"; then
  23781. exit 0
  23782. fi
  23783. OLD_MAJOR_VERSION=$(echo $OLD_VERSION_STRING | awk -F "." '{print $1}')
  23784. OLD_MINOR_VERSION=$(echo $OLD_VERSION_STRING | awk -F "." '{print $1"."$2}')
  23785. OLD_CHART_MAJOR_VERSION=$(echo $OLD_CHART_VERSION_STRING | awk -F "." '{print $1}')
  23786. OLD_CHART_MINOR_VERSION=$(echo $OLD_CHART_VERSION_STRING | awk -F "." '{print $1"."$2}')
  23787. # Checking Version
  23788. # (i) if it is a major version jump
  23789. # (ii) if existing version is less than required minimum version
  23790. if [ ${OLD_MAJOR_VERSION} -lt ${NEW_MAJOR_VERSION} ] || [ ${OLD_CHART_MAJOR_VERSION} -lt ${NEW_CHART_MAJOR_VERSION} ]; then
  23791. if ( ! greater_version $OLD_MINOR_VERSION $MIN_VERSION ) || ( ! greater_version $OLD_CHART_MINOR_VERSION $CHART_MIN_VERSION ); then
  23792. notify "It seems you are upgrading the GitLab Helm Chart from ${OLD_CHART_VERSION_STRING} (GitLab ${OLD_VERSION_STRING}) to ${CHART_VERSION} (GitLab ${GITLAB_VERSION})."
  23793. notify "It is required to upgrade to the latest ${CHART_MIN_VERSION}.x version first before proceeding."
  23794. notify "Please follow the upgrade documentation at https://docs.gitlab.com/charts/releases/6_0.html"
  23795. notify "and upgrade to GitLab Helm Chart version ${CHART_MIN_VERSION}.x before upgrading to ${CHART_VERSION}."
  23796. exit 1
  23797. fi
  23798. fi
  23799. ---
  23800. # Source: gitlab/charts/certmanager/templates/startupapicheck-rbac.yaml
  23801. # create certificate role
  23802. apiVersion: rbac.authorization.k8s.io/v1
  23803. kind: Role
  23804. metadata:
  23805. name: gitlab-certmanager-startupapicheck:create-cert
  23806. namespace: "default"
  23807. labels:
  23808. app: startupapicheck
  23809. app.kubernetes.io/name: startupapicheck
  23810. app.kubernetes.io/instance: gitlab
  23811. app.kubernetes.io/component: "startupapicheck"
  23812. app.kubernetes.io/version: "v1.5.4"
  23813. app.kubernetes.io/managed-by: Helm
  23814. helm.sh/chart: certmanager-v1.5.4
  23815. annotations:
  23816. helm.sh/hook: post-install
  23817. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
  23818. helm.sh/hook-weight: "-5"
  23819. rules:
  23820. - apiGroups: ["cert-manager.io"]
  23821. resources: ["certificates"]
  23822. verbs: ["create"]
  23823. ---
  23824. # Source: gitlab/templates/shared-secrets/rbac-config.yaml
  23825. kind: Role
  23826. apiVersion: rbac.authorization.k8s.io/v1
  23827. metadata:
  23828. name: gitlab-shared-secrets
  23829. namespace: default
  23830. labels:
  23831. app: shared-secrets
  23832. chart: shared-secrets-6.8.0
  23833. release: gitlab
  23834. heritage: Helm
  23835. annotations:
  23836. "helm.sh/hook": pre-install,pre-upgrade
  23837. "helm.sh/hook-weight": "-5"
  23838. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  23839. rules:
  23840. - apiGroups: [""]
  23841. resources: ["secrets"]
  23842. verbs: ["get", "list", "create", "patch"]
  23843. ---
  23844. # Source: gitlab/charts/certmanager/templates/startupapicheck-rbac.yaml
  23845. apiVersion: rbac.authorization.k8s.io/v1
  23846. kind: RoleBinding
  23847. metadata:
  23848. name: gitlab-certmanager-startupapicheck:create-cert
  23849. namespace: "default"
  23850. labels:
  23851. app: startupapicheck
  23852. app.kubernetes.io/name: startupapicheck
  23853. app.kubernetes.io/instance: gitlab
  23854. app.kubernetes.io/component: "startupapicheck"
  23855. app.kubernetes.io/version: "v1.5.4"
  23856. app.kubernetes.io/managed-by: Helm
  23857. helm.sh/chart: certmanager-v1.5.4
  23858. annotations:
  23859. helm.sh/hook: post-install
  23860. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
  23861. helm.sh/hook-weight: "-5"
  23862. roleRef:
  23863. apiGroup: rbac.authorization.k8s.io
  23864. kind: Role
  23865. name: gitlab-certmanager-startupapicheck:create-cert
  23866. subjects:
  23867. - kind: ServiceAccount
  23868. name: gitlab-certmanager-startupapicheck
  23869. namespace: default
  23870. ---
  23871. # Source: gitlab/templates/shared-secrets/rbac-config.yaml
  23872. apiVersion: rbac.authorization.k8s.io/v1
  23873. kind: RoleBinding
  23874. metadata:
  23875. name: gitlab-shared-secrets
  23876. namespace: default
  23877. labels:
  23878. app: shared-secrets
  23879. chart: shared-secrets-6.8.0
  23880. release: gitlab
  23881. heritage: Helm
  23882. annotations:
  23883. "helm.sh/hook": pre-install,pre-upgrade
  23884. "helm.sh/hook-weight": "-5"
  23885. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  23886. roleRef:
  23887. apiGroup: rbac.authorization.k8s.io
  23888. kind: Role
  23889. name: gitlab-shared-secrets
  23890. subjects:
  23891. - kind: ServiceAccount
  23892. name: gitlab-shared-secrets
  23893. namespace: default
  23894. ---
  23895. # Source: gitlab/charts/gitlab/charts/webservice/templates/tests/test-runner.yaml
  23896. apiVersion: v1
  23897. kind: Pod
  23898. metadata:
  23899. name: gitlab-webservice-test-runner-yi2rb
  23900. namespace: default
  23901. annotations:
  23902. "helm.sh/hook": test
  23903. "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
  23904. labels:
  23905. app: webservice
  23906. chart: webservice-6.8.0
  23907. release: gitlab
  23908. heritage: Helm
  23909. spec:
  23910. containers:
  23911. - name: test-runner
  23912. image: registry.gitlab.com/gitlab-org/build/cng/gitlab-webservice-ee:v15.8.0
  23913. command: ['sh', '/tests/test_login']
  23914. volumeMounts:
  23915. - name: tests
  23916. mountPath: '/tests'
  23917. - name: root-password
  23918. readOnly: true
  23919. mountPath: /initial_root_password
  23920. subPath: initial_root_password
  23921. volumes:
  23922. - name: tests
  23923. configMap:
  23924. name: gitlab-webservice-tests
  23925. - name: root-password
  23926. secret:
  23927. secretName: "gitlab-gitlab-initial-root-password"
  23928. items:
  23929. - key: "password"
  23930. path: initial_root_password
  23931. restartPolicy: Never
  23932. ---
  23933. # Source: gitlab/charts/certmanager/templates/startupapicheck-job.yaml
  23934. apiVersion: batch/v1
  23935. kind: Job
  23936. metadata:
  23937. name: gitlab-certmanager-startupapicheck
  23938. namespace: "default"
  23939. labels:
  23940. app: startupapicheck
  23941. app.kubernetes.io/name: startupapicheck
  23942. app.kubernetes.io/instance: gitlab
  23943. app.kubernetes.io/component: "startupapicheck"
  23944. app.kubernetes.io/version: "v1.5.4"
  23945. app.kubernetes.io/managed-by: Helm
  23946. helm.sh/chart: certmanager-v1.5.4
  23947. annotations:
  23948. helm.sh/hook: post-install
  23949. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
  23950. helm.sh/hook-weight: "1"
  23951. spec:
  23952. backoffLimit: 4
  23953. template:
  23954. metadata:
  23955. labels:
  23956. app: startupapicheck
  23957. app.kubernetes.io/name: startupapicheck
  23958. app.kubernetes.io/instance: gitlab
  23959. app.kubernetes.io/component: "startupapicheck"
  23960. app.kubernetes.io/version: "v1.5.4"
  23961. app.kubernetes.io/managed-by: Helm
  23962. helm.sh/chart: certmanager-v1.5.4
  23963. spec:
  23964. restartPolicy: OnFailure
  23965. serviceAccountName: gitlab-certmanager-startupapicheck
  23966. securityContext:
  23967. runAsNonRoot: true
  23968. containers:
  23969. - name: certmanager
  23970. image: "quay.io/jetstack/cert-manager-ctl:v1.5.4"
  23971. imagePullPolicy: IfNotPresent
  23972. args:
  23973. - check
  23974. - api
  23975. - --wait=1m
  23976. resources:
  23977. {}
  23978. ---
  23979. # Source: gitlab/templates/shared-secrets/job.yaml
  23980. apiVersion: batch/v1
  23981. kind: Job
  23982. metadata:
  23983. name: gitlab-shared-secrets-1-nck
  23984. namespace: default
  23985. labels:
  23986. app: gitlab
  23987. chart: gitlab-6.8.0
  23988. release: gitlab
  23989. heritage: Helm
  23990. annotations:
  23991. "helm.sh/hook": pre-install,pre-upgrade
  23992. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  23993. spec:
  23994. template:
  23995. metadata:
  23996. labels:
  23997. app: gitlab
  23998. chart: gitlab-6.8.0
  23999. release: gitlab
  24000. heritage: Helm
  24001. annotations:
  24002. spec:
  24003. securityContext:
  24004. runAsUser: 65534
  24005. fsGroup: 65534
  24006. serviceAccountName: gitlab-shared-secrets
  24007. restartPolicy: Never
  24008. containers:
  24009. - name: gitlab
  24010. image: "registry.gitlab.com/gitlab-org/build/cng/kubectl:1.24.7@sha256:4be8ed0fb89c29c5bacf0dcedee803e1ac1298da9a45186eb5a391c2353c6bf6"
  24011. command: ['/bin/bash', '/scripts/generate-secrets']
  24012. volumeMounts:
  24013. - name: scripts
  24014. mountPath: /scripts
  24015. - name: ssh
  24016. mountPath: /etc/ssh
  24017. resources:
  24018. requests:
  24019. cpu: 50m
  24020. volumes:
  24021. - name: scripts
  24022. configMap:
  24023. name: gitlab-shared-secrets
  24024. - name: ssh
  24025. emptyDir: {}
  24026. ---
  24027. # Source: gitlab/templates/upgrade_check_hook.yaml
  24028. apiVersion: batch/v1
  24029. kind: Job
  24030. metadata:
  24031. name: gitlab-gitlab-upgrade-check
  24032. namespace: default
  24033. labels:
  24034. app: gitlab
  24035. chart: gitlab-6.8.0
  24036. release: gitlab
  24037. heritage: Helm
  24038. annotations:
  24039. "helm.sh/hook": pre-upgrade
  24040. "helm.sh/hook-weight": "-10"
  24041. "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
  24042. spec:
  24043. backoffLimit: 2
  24044. template:
  24045. metadata:
  24046. labels:
  24047. app: gitlab
  24048. release: gitlab
  24049. spec:
  24050. securityContext:
  24051. runAsUser: 65534
  24052. fsGroup: 65534
  24053. restartPolicy: Never
  24054. containers:
  24055. - name: run-check
  24056. image: "registry.gitlab.com/gitlab-org/cloud-native/mirror/images/busybox:latest"
  24057. command: ['/bin/sh', '/scripts/runcheck']
  24058. env:
  24059. - name: GITLAB_VERSION
  24060. value: '15.8.0'
  24061. - name: CHART_VERSION
  24062. value: '6.8.0'
  24063. volumeMounts:
  24064. - name: chart-info
  24065. mountPath: /chart-info
  24066. - name: scripts
  24067. mountPath: /scripts
  24068. - name: postgresql-secret
  24069. mountPath: /etc/secrets/postgresql
  24070. resources:
  24071. requests:
  24072. cpu: 50m
  24073. volumes:
  24074. - name: chart-info
  24075. configMap:
  24076. name: gitlab-gitlab-chart-info
  24077. optional: true
  24078. - name: scripts
  24079. configMap:
  24080. name: gitlab-gitlab-upgrade-check
  24081. - name: postgresql-secret
  24082. secret:
  24083. secretName: "gitlab-postgresql-password"
  24084. optional: true