kubevirt-operator.yaml 406 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509
  1. ---
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. labels:
  6. kubevirt.io: ""
  7. pod-security.kubernetes.io/enforce: "privileged"
  8. name: kubevirt
  9. ---
  10. apiVersion: apiextensions.k8s.io/v1
  11. kind: CustomResourceDefinition
  12. metadata:
  13. labels:
  14. operator.kubevirt.io: ""
  15. name: kubevirts.kubevirt.io
  16. spec:
  17. group: kubevirt.io
  18. names:
  19. categories:
  20. - all
  21. kind: KubeVirt
  22. plural: kubevirts
  23. shortNames:
  24. - kv
  25. - kvs
  26. singular: kubevirt
  27. scope: Namespaced
  28. versions:
  29. - additionalPrinterColumns:
  30. - jsonPath: .metadata.creationTimestamp
  31. name: Age
  32. type: date
  33. - jsonPath: .status.phase
  34. name: Phase
  35. type: string
  36. name: v1
  37. schema:
  38. openAPIV3Schema:
  39. description: KubeVirt represents the object deploying all KubeVirt resources
  40. properties:
  41. apiVersion:
  42. description: 'APIVersion defines the versioned schema of this representation
  43. of an object. Servers should convert recognized schemas to the latest
  44. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  45. type: string
  46. kind:
  47. description: 'Kind is a string value representing the REST resource this
  48. object represents. Servers may infer this from the endpoint the client
  49. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  50. type: string
  51. metadata:
  52. type: object
  53. spec:
  54. properties:
  55. certificateRotateStrategy:
  56. properties:
  57. selfSigned:
  58. properties:
  59. ca:
  60. description: CA configuration CA certs are kept in the CA
  61. bundle as long as they are valid
  62. properties:
  63. duration:
  64. description: The requested 'duration' (i.e. lifetime)
  65. of the Certificate.
  66. type: string
  67. renewBefore:
  68. description: The amount of time before the currently issued
  69. certificate's "notAfter" time that we will begin to
  70. attempt to renew the certificate.
  71. type: string
  72. type: object
  73. caOverlapInterval:
  74. description: Deprecated. Use CA.Duration and CA.RenewBefore
  75. instead
  76. type: string
  77. caRotateInterval:
  78. description: Deprecated. Use CA.Duration instead
  79. type: string
  80. certRotateInterval:
  81. description: Deprecated. Use Server.Duration instead
  82. type: string
  83. server:
  84. description: Server configuration Certs are rotated and discarded
  85. properties:
  86. duration:
  87. description: The requested 'duration' (i.e. lifetime)
  88. of the Certificate.
  89. type: string
  90. renewBefore:
  91. description: The amount of time before the currently issued
  92. certificate's "notAfter" time that we will begin to
  93. attempt to renew the certificate.
  94. type: string
  95. type: object
  96. type: object
  97. type: object
  98. configuration:
  99. description: holds kubevirt configurations. same as the virt-configMap
  100. properties:
  101. additionalGuestMemoryOverheadRatio:
  102. description: AdditionalGuestMemoryOverheadRatio can be used to
  103. increase the virtualization infrastructure overhead. This is
  104. useful, since the calculation of this overhead is not accurate
  105. and cannot be entirely known in advance. The ratio that is being
  106. set determines by which factor to increase the overhead calculated
  107. by Kubevirt. A higher ratio means that the VMs would be less
  108. compromised by node pressures, but would mean that fewer VMs
  109. could be scheduled to a node. If not set, the default is 1.
  110. type: string
  111. apiConfiguration:
  112. description: ReloadableComponentConfiguration holds all generic
  113. k8s configuration options which can be reloaded by components
  114. without requiring a restart.
  115. properties:
  116. restClient:
  117. description: RestClient can be used to tune certain aspects
  118. of the k8s client in use.
  119. properties:
  120. rateLimiter:
  121. description: RateLimiter allows selecting and configuring
  122. different rate limiters for the k8s client.
  123. properties:
  124. tokenBucketRateLimiter:
  125. properties:
  126. burst:
  127. description: Maximum burst for throttle. If it's
  128. zero, the component default will be used
  129. type: integer
  130. qps:
  131. description: QPS indicates the maximum QPS to
  132. the apiserver from this client. If it's zero,
  133. the component default will be used
  134. type: number
  135. required:
  136. - burst
  137. - qps
  138. type: object
  139. type: object
  140. type: object
  141. type: object
  142. architectureConfiguration:
  143. properties:
  144. amd64:
  145. properties:
  146. emulatedMachines:
  147. items:
  148. type: string
  149. type: array
  150. x-kubernetes-list-type: atomic
  151. machineType:
  152. type: string
  153. ovmfPath:
  154. type: string
  155. type: object
  156. arm64:
  157. properties:
  158. emulatedMachines:
  159. items:
  160. type: string
  161. type: array
  162. x-kubernetes-list-type: atomic
  163. machineType:
  164. type: string
  165. ovmfPath:
  166. type: string
  167. type: object
  168. defaultArchitecture:
  169. type: string
  170. ppc64le:
  171. properties:
  172. emulatedMachines:
  173. items:
  174. type: string
  175. type: array
  176. x-kubernetes-list-type: atomic
  177. machineType:
  178. type: string
  179. ovmfPath:
  180. type: string
  181. type: object
  182. type: object
  183. autoCPULimitNamespaceLabelSelector:
  184. description: When set, AutoCPULimitNamespaceLabelSelector will
  185. set a CPU limit on virt-launcher for VMIs running inside namespaces
  186. that match the label selector. The CPU limit will equal the
  187. number of requested vCPUs. This setting does not apply to VMIs
  188. with dedicated CPUs.
  189. properties:
  190. matchExpressions:
  191. description: matchExpressions is a list of label selector
  192. requirements. The requirements are ANDed.
  193. items:
  194. description: A label selector requirement is a selector
  195. that contains values, a key, and an operator that relates
  196. the key and values.
  197. properties:
  198. key:
  199. description: key is the label key that the selector
  200. applies to.
  201. type: string
  202. operator:
  203. description: operator represents a key's relationship
  204. to a set of values. Valid operators are In, NotIn,
  205. Exists and DoesNotExist.
  206. type: string
  207. values:
  208. description: values is an array of string values. If
  209. the operator is In or NotIn, the values array must
  210. be non-empty. If the operator is Exists or DoesNotExist,
  211. the values array must be empty. This array is replaced
  212. during a strategic merge patch.
  213. items:
  214. type: string
  215. type: array
  216. required:
  217. - key
  218. - operator
  219. type: object
  220. type: array
  221. matchLabels:
  222. additionalProperties:
  223. type: string
  224. description: matchLabels is a map of {key,value} pairs. A
  225. single {key,value} in the matchLabels map is equivalent
  226. to an element of matchExpressions, whose key field is "key",
  227. the operator is "In", and the values array contains only
  228. "value". The requirements are ANDed.
  229. type: object
  230. type: object
  231. controllerConfiguration:
  232. description: ReloadableComponentConfiguration holds all generic
  233. k8s configuration options which can be reloaded by components
  234. without requiring a restart.
  235. properties:
  236. restClient:
  237. description: RestClient can be used to tune certain aspects
  238. of the k8s client in use.
  239. properties:
  240. rateLimiter:
  241. description: RateLimiter allows selecting and configuring
  242. different rate limiters for the k8s client.
  243. properties:
  244. tokenBucketRateLimiter:
  245. properties:
  246. burst:
  247. description: Maximum burst for throttle. If it's
  248. zero, the component default will be used
  249. type: integer
  250. qps:
  251. description: QPS indicates the maximum QPS to
  252. the apiserver from this client. If it's zero,
  253. the component default will be used
  254. type: number
  255. required:
  256. - burst
  257. - qps
  258. type: object
  259. type: object
  260. type: object
  261. type: object
  262. cpuModel:
  263. type: string
  264. cpuRequest:
  265. anyOf:
  266. - type: integer
  267. - type: string
  268. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  269. x-kubernetes-int-or-string: true
  270. defaultRuntimeClass:
  271. type: string
  272. developerConfiguration:
  273. description: DeveloperConfiguration holds developer options
  274. properties:
  275. cpuAllocationRatio:
  276. description: 'For each requested virtual CPU, CPUAllocationRatio
  277. defines how much physical CPU to request per VMI from the
  278. hosting node. The value is in fraction of a CPU thread (or
  279. core on non-hyperthreaded nodes). For example, a value of
  280. 1 means 1 physical CPU thread per VMI CPU thread. A value
  281. of 100 would be 1% of a physical thread allocated for each
  282. requested VMI thread. This option has no effect on VMIs
  283. that request dedicated CPUs. More information at: https://kubevirt.io/user-guide/operations/node_overcommit/#node-cpu-allocation-ratio
  284. Defaults to 10'
  285. type: integer
  286. diskVerification:
  287. description: DiskVerification holds container disks verification
  288. limits
  289. properties:
  290. memoryLimit:
  291. anyOf:
  292. - type: integer
  293. - type: string
  294. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  295. x-kubernetes-int-or-string: true
  296. required:
  297. - memoryLimit
  298. type: object
  299. featureGates:
  300. description: FeatureGates is the list of experimental features
  301. to enable. Defaults to none
  302. items:
  303. type: string
  304. type: array
  305. logVerbosity:
  306. description: LogVerbosity sets log verbosity level of various
  307. components
  308. properties:
  309. nodeVerbosity:
  310. additionalProperties:
  311. type: integer
  312. description: NodeVerbosity represents a map of nodes with
  313. a specific verbosity level
  314. type: object
  315. virtAPI:
  316. type: integer
  317. virtController:
  318. type: integer
  319. virtHandler:
  320. type: integer
  321. virtLauncher:
  322. type: integer
  323. virtOperator:
  324. type: integer
  325. type: object
  326. memoryOvercommit:
  327. description: MemoryOvercommit is the percentage of memory
  328. we want to give VMIs compared to the amount given to its
  329. parent pod (virt-launcher). For example, a value of 102
  330. means the VMI will "see" 2% more memory than its parent
  331. pod. Values under 100 are effectively "undercommits". Overcommits
  332. can lead to memory exhaustion, which in turn can lead to
  333. crashes. Use carefully. Defaults to 100
  334. type: integer
  335. minimumClusterTSCFrequency:
  336. description: Allow overriding the automatically determined
  337. minimum TSC frequency of the cluster and fixate the minimum
  338. to this frequency.
  339. format: int64
  340. type: integer
  341. minimumReservePVCBytes:
  342. description: MinimumReservePVCBytes is the amount of space,
  343. in bytes, to leave unused on disks. Defaults to 131072 (128KiB)
  344. format: int64
  345. type: integer
  346. nodeSelectors:
  347. additionalProperties:
  348. type: string
  349. description: NodeSelectors allows restricting VMI creation
  350. to nodes that match a set of labels. Defaults to none
  351. type: object
  352. pvcTolerateLessSpaceUpToPercent:
  353. description: LessPVCSpaceToleration determines how much smaller,
  354. in percentage, disk PVCs are allowed to be compared to the
  355. requested size (to account for various overheads). Defaults
  356. to 10
  357. type: integer
  358. useEmulation:
  359. description: UseEmulation can be set to true to allow fallback
  360. to software emulation in case hardware-assisted emulation
  361. is not available. Defaults to false
  362. type: boolean
  363. type: object
  364. emulatedMachines:
  365. items:
  366. type: string
  367. type: array
  368. evictionStrategy:
  369. description: EvictionStrategy defines at the cluster level if
  370. the VirtualMachineInstance should be migrated instead of shut-off
  371. in case of a node drain. If the VirtualMachineInstance specific
  372. field is set it overrides the cluster level one.
  373. type: string
  374. handlerConfiguration:
  375. description: ReloadableComponentConfiguration holds all generic
  376. k8s configuration options which can be reloaded by components
  377. without requiring a restart.
  378. properties:
  379. restClient:
  380. description: RestClient can be used to tune certain aspects
  381. of the k8s client in use.
  382. properties:
  383. rateLimiter:
  384. description: RateLimiter allows selecting and configuring
  385. different rate limiters for the k8s client.
  386. properties:
  387. tokenBucketRateLimiter:
  388. properties:
  389. burst:
  390. description: Maximum burst for throttle. If it's
  391. zero, the component default will be used
  392. type: integer
  393. qps:
  394. description: QPS indicates the maximum QPS to
  395. the apiserver from this client. If it's zero,
  396. the component default will be used
  397. type: number
  398. required:
  399. - burst
  400. - qps
  401. type: object
  402. type: object
  403. type: object
  404. type: object
  405. imagePullPolicy:
  406. description: PullPolicy describes a policy for if/when to pull
  407. a container image
  408. type: string
  409. ksmConfiguration:
  410. description: KSMConfiguration holds the information regarding
  411. the enabling the KSM in the nodes (if available).
  412. properties:
  413. nodeLabelSelector:
  414. description: NodeLabelSelector is a selector that filters
  415. in which nodes the KSM will be enabled. Empty NodeLabelSelector
  416. will enable ksm for every node.
  417. properties:
  418. matchExpressions:
  419. description: matchExpressions is a list of label selector
  420. requirements. The requirements are ANDed.
  421. items:
  422. description: A label selector requirement is a selector
  423. that contains values, a key, and an operator that
  424. relates the key and values.
  425. properties:
  426. key:
  427. description: key is the label key that the selector
  428. applies to.
  429. type: string
  430. operator:
  431. description: operator represents a key's relationship
  432. to a set of values. Valid operators are In, NotIn,
  433. Exists and DoesNotExist.
  434. type: string
  435. values:
  436. description: values is an array of string values.
  437. If the operator is In or NotIn, the values array
  438. must be non-empty. If the operator is Exists or
  439. DoesNotExist, the values array must be empty.
  440. This array is replaced during a strategic merge
  441. patch.
  442. items:
  443. type: string
  444. type: array
  445. required:
  446. - key
  447. - operator
  448. type: object
  449. type: array
  450. matchLabels:
  451. additionalProperties:
  452. type: string
  453. description: matchLabels is a map of {key,value} pairs.
  454. A single {key,value} in the matchLabels map is equivalent
  455. to an element of matchExpressions, whose key field is
  456. "key", the operator is "In", and the values array contains
  457. only "value". The requirements are ANDed.
  458. type: object
  459. type: object
  460. type: object
  461. liveUpdateConfiguration:
  462. description: LiveUpdateConfiguration holds defaults for live update
  463. features
  464. properties:
  465. maxCpuSockets:
  466. description: MaxCpuSockets holds the maximum amount of sockets
  467. that can be hotplugged
  468. format: int32
  469. type: integer
  470. maxGuest:
  471. anyOf:
  472. - type: integer
  473. - type: string
  474. description: MaxGuest defines the maximum amount memory that
  475. can be allocated to the guest using hotplug.
  476. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  477. x-kubernetes-int-or-string: true
  478. maxHotplugRatio:
  479. description: 'MaxHotplugRatio is the ratio used to define
  480. the max amount of a hotplug resource that can be made available
  481. to a VM when the specific Max* setting is not defined (MaxCpuSockets,
  482. MaxGuest) Example: VM is configured with 512Mi of guest
  483. memory, if MaxGuest is not defined and MaxHotplugRatio is
  484. 2 then MaxGuest = 1Gi defaults to 4'
  485. format: int32
  486. type: integer
  487. type: object
  488. machineType:
  489. description: Deprecated. Use architectureConfiguration instead.
  490. type: string
  491. mediatedDevicesConfiguration:
  492. description: MediatedDevicesConfiguration holds information about
  493. MDEV types to be defined, if available
  494. properties:
  495. mediatedDeviceTypes:
  496. items:
  497. type: string
  498. type: array
  499. x-kubernetes-list-type: atomic
  500. mediatedDevicesTypes:
  501. description: Deprecated. Use mediatedDeviceTypes instead.
  502. items:
  503. type: string
  504. type: array
  505. x-kubernetes-list-type: atomic
  506. nodeMediatedDeviceTypes:
  507. items:
  508. description: NodeMediatedDeviceTypesConfig holds information
  509. about MDEV types to be defined in a specific node that
  510. matches the NodeSelector field.
  511. properties:
  512. mediatedDeviceTypes:
  513. items:
  514. type: string
  515. type: array
  516. x-kubernetes-list-type: atomic
  517. mediatedDevicesTypes:
  518. description: Deprecated. Use mediatedDeviceTypes instead.
  519. items:
  520. type: string
  521. type: array
  522. x-kubernetes-list-type: atomic
  523. nodeSelector:
  524. additionalProperties:
  525. type: string
  526. description: 'NodeSelector is a selector which must
  527. be true for the vmi to fit on a node. Selector which
  528. must match a node''s labels for the vmi to be scheduled
  529. on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  530. type: object
  531. required:
  532. - nodeSelector
  533. type: object
  534. type: array
  535. x-kubernetes-list-type: atomic
  536. type: object
  537. memBalloonStatsPeriod:
  538. format: int32
  539. type: integer
  540. migrations:
  541. description: MigrationConfiguration holds migration options. Can
  542. be overridden for specific groups of VMs though migration policies.
  543. Visit https://kubevirt.io/user-guide/operations/migration_policies/
  544. for more information.
  545. properties:
  546. allowAutoConverge:
  547. description: AllowAutoConverge allows the platform to compromise
  548. performance/availability of VMIs to guarantee successful
  549. VMI live migrations. Defaults to false
  550. type: boolean
  551. allowPostCopy:
  552. description: AllowPostCopy enables post-copy live migrations.
  553. Such migrations allow even the busiest VMIs to successfully
  554. live-migrate. However, events like a network failure can
  555. cause a VMI crash. If set to true, migrations will still
  556. start in pre-copy, but switch to post-copy when CompletionTimeoutPerGiB
  557. triggers. Defaults to false
  558. type: boolean
  559. bandwidthPerMigration:
  560. anyOf:
  561. - type: integer
  562. - type: string
  563. description: BandwidthPerMigration limits the amount of network
  564. bandwidth live migrations are allowed to use. The value
  565. is in quantity per second. Defaults to 0 (no limit)
  566. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  567. x-kubernetes-int-or-string: true
  568. completionTimeoutPerGiB:
  569. description: CompletionTimeoutPerGiB is the maximum number
  570. of seconds per GiB a migration is allowed to take. If a
  571. live-migration takes longer to migrate than this value multiplied
  572. by the size of the VMI, the migration will be cancelled,
  573. unless AllowPostCopy is true. Defaults to 800
  574. format: int64
  575. type: integer
  576. disableTLS:
  577. description: When set to true, DisableTLS will disable the
  578. additional layer of live migration encryption provided by
  579. KubeVirt. This is usually a bad idea. Defaults to false
  580. type: boolean
  581. matchSELinuxLevelOnMigration:
  582. description: By default, the SELinux level of target virt-launcher
  583. pods is forced to the level of the source virt-launcher.
  584. When set to true, MatchSELinuxLevelOnMigration lets the
  585. CRI auto-assign a random level to the target. That will
  586. ensure the target virt-launcher doesn't share categories
  587. with another pod on the node. However, migrations will fail
  588. when using RWX volumes that don't automatically deal with
  589. SELinux levels.
  590. type: boolean
  591. network:
  592. description: Network is the name of the CNI network to use
  593. for live migrations. By default, migrations go through the
  594. pod network.
  595. type: string
  596. nodeDrainTaintKey:
  597. description: 'NodeDrainTaintKey defines the taint key that
  598. indicates a node should be drained. Note: this option relies
  599. on the deprecated node taint feature. Default: kubevirt.io/drain'
  600. type: string
  601. parallelMigrationsPerCluster:
  602. description: ParallelMigrationsPerCluster is the total number
  603. of concurrent live migrations allowed cluster-wide. Defaults
  604. to 5
  605. format: int32
  606. type: integer
  607. parallelOutboundMigrationsPerNode:
  608. description: ParallelOutboundMigrationsPerNode is the maximum
  609. number of concurrent outgoing live migrations allowed per
  610. node. Defaults to 2
  611. format: int32
  612. type: integer
  613. progressTimeout:
  614. description: ProgressTimeout is the maximum number of seconds
  615. a live migration is allowed to make no progress. Hitting
  616. this timeout means a migration transferred 0 data for that
  617. many seconds. The migration is then considered stuck and
  618. therefore cancelled. Defaults to 150
  619. format: int64
  620. type: integer
  621. unsafeMigrationOverride:
  622. description: UnsafeMigrationOverride allows live migrations
  623. to occur even if the compatibility check indicates the migration
  624. will be unsafe to the guest. Defaults to false
  625. type: boolean
  626. type: object
  627. minCPUModel:
  628. type: string
  629. network:
  630. description: NetworkConfiguration holds network options
  631. properties:
  632. binding:
  633. additionalProperties:
  634. properties:
  635. networkAttachmentDefinition:
  636. description: 'NetworkAttachmentDefinition references
  637. to a NetworkAttachmentDefinition CR object. Format:
  638. <name>, <namespace>/<name>. If namespace is not specified,
  639. VMI namespace is assumed. version: 1alphav1'
  640. type: string
  641. sidecarImage:
  642. description: 'SidecarImage references a container image
  643. that runs in the virt-launcher pod. The sidecar handles
  644. (libvirt) domain configuration and optional services.
  645. version: 1alphav1'
  646. type: string
  647. type: object
  648. type: object
  649. defaultNetworkInterface:
  650. type: string
  651. permitBridgeInterfaceOnPodNetwork:
  652. type: boolean
  653. permitSlirpInterface:
  654. type: boolean
  655. type: object
  656. obsoleteCPUModels:
  657. additionalProperties:
  658. type: boolean
  659. type: object
  660. ovmfPath:
  661. type: string
  662. permittedHostDevices:
  663. description: PermittedHostDevices holds information about devices
  664. allowed for passthrough
  665. properties:
  666. mediatedDevices:
  667. items:
  668. description: MediatedHostDevice represents a host mediated
  669. device allowed for passthrough
  670. properties:
  671. externalResourceProvider:
  672. type: boolean
  673. mdevNameSelector:
  674. type: string
  675. resourceName:
  676. type: string
  677. required:
  678. - mdevNameSelector
  679. - resourceName
  680. type: object
  681. type: array
  682. x-kubernetes-list-type: atomic
  683. pciHostDevices:
  684. items:
  685. description: PciHostDevice represents a host PCI device
  686. allowed for passthrough
  687. properties:
  688. externalResourceProvider:
  689. description: If true, KubeVirt will leave the allocation
  690. and monitoring to an external device plugin
  691. type: boolean
  692. pciVendorSelector:
  693. description: The vendor_id:product_id tuple of the PCI
  694. device
  695. type: string
  696. resourceName:
  697. description: The name of the resource that is representing
  698. the device. Exposed by a device plugin and requested
  699. by VMs. Typically of the form vendor.com/product_name
  700. type: string
  701. required:
  702. - pciVendorSelector
  703. - resourceName
  704. type: object
  705. type: array
  706. x-kubernetes-list-type: atomic
  707. usb:
  708. items:
  709. properties:
  710. externalResourceProvider:
  711. description: If true, KubeVirt will leave the allocation
  712. and monitoring to an external device plugin
  713. type: boolean
  714. resourceName:
  715. description: 'Identifies the list of USB host devices.
  716. e.g: kubevirt.io/storage, kubevirt.io/bootable-usb,
  717. etc'
  718. type: string
  719. selectors:
  720. items:
  721. properties:
  722. product:
  723. type: string
  724. vendor:
  725. type: string
  726. required:
  727. - product
  728. - vendor
  729. type: object
  730. type: array
  731. x-kubernetes-list-type: atomic
  732. required:
  733. - resourceName
  734. type: object
  735. type: array
  736. x-kubernetes-list-type: atomic
  737. type: object
  738. seccompConfiguration:
  739. description: SeccompConfiguration holds Seccomp configuration
  740. for Kubevirt components
  741. properties:
  742. virtualMachineInstanceProfile:
  743. description: VirtualMachineInstanceProfile defines what profile
  744. should be used with virt-launcher. Defaults to none
  745. properties:
  746. customProfile:
  747. description: CustomProfile allows to request arbitrary
  748. profile for virt-launcher
  749. properties:
  750. localhostProfile:
  751. type: string
  752. runtimeDefaultProfile:
  753. type: boolean
  754. type: object
  755. type: object
  756. type: object
  757. selinuxLauncherType:
  758. type: string
  759. smbios:
  760. properties:
  761. family:
  762. type: string
  763. manufacturer:
  764. type: string
  765. product:
  766. type: string
  767. sku:
  768. type: string
  769. version:
  770. type: string
  771. type: object
  772. supportContainerResources:
  773. description: SupportContainerResources specifies the resource
  774. requirements for various types of supporting containers such
  775. as container disks/virtiofs/sidecars and hotplug attachment
  776. pods. If omitted a sensible default will be supplied.
  777. items:
  778. description: SupportContainerResources are used to specify the
  779. cpu/memory request and limits for the containers that support
  780. various features of Virtual Machines. These containers are
  781. usually idle and don't require a lot of memory or cpu.
  782. properties:
  783. resources:
  784. description: ResourceRequirements describes the compute
  785. resource requirements.
  786. properties:
  787. claims:
  788. description: "Claims lists the names of resources, defined
  789. in spec.resourceClaims, that are used by this container.
  790. \n This is an alpha field and requires enabling the
  791. DynamicResourceAllocation feature gate. \n This field
  792. is immutable. It can only be set for containers."
  793. items:
  794. description: ResourceClaim references one entry in
  795. PodSpec.ResourceClaims.
  796. properties:
  797. name:
  798. description: Name must match the name of one entry
  799. in pod.spec.resourceClaims of the Pod where
  800. this field is used. It makes that resource available
  801. inside a container.
  802. type: string
  803. required:
  804. - name
  805. type: object
  806. type: array
  807. x-kubernetes-list-map-keys:
  808. - name
  809. x-kubernetes-list-type: map
  810. limits:
  811. additionalProperties:
  812. anyOf:
  813. - type: integer
  814. - type: string
  815. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  816. x-kubernetes-int-or-string: true
  817. description: 'Limits describes the maximum amount of
  818. compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  819. type: object
  820. requests:
  821. additionalProperties:
  822. anyOf:
  823. - type: integer
  824. - type: string
  825. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  826. x-kubernetes-int-or-string: true
  827. description: 'Requests describes the minimum amount
  828. of compute resources required. If Requests is omitted
  829. for a container, it defaults to Limits if that is
  830. explicitly specified, otherwise to an implementation-defined
  831. value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  832. type: object
  833. type: object
  834. type:
  835. type: string
  836. required:
  837. - resources
  838. - type
  839. type: object
  840. type: array
  841. x-kubernetes-list-map-keys:
  842. - type
  843. x-kubernetes-list-type: map
  844. supportedGuestAgentVersions:
  845. description: deprecated
  846. items:
  847. type: string
  848. type: array
  849. tlsConfiguration:
  850. description: TLSConfiguration holds TLS options
  851. properties:
  852. ciphers:
  853. items:
  854. type: string
  855. type: array
  856. x-kubernetes-list-type: set
  857. minTLSVersion:
  858. description: "MinTLSVersion is a way to specify the minimum
  859. protocol version that is acceptable for TLS connections.
  860. Protocol versions are based on the following most common
  861. TLS configurations: \n https://ssl-config.mozilla.org/
  862. \n Note that SSLv3.0 is not a supported protocol version
  863. due to well known vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE"
  864. enum:
  865. - VersionTLS10
  866. - VersionTLS11
  867. - VersionTLS12
  868. - VersionTLS13
  869. type: string
  870. type: object
  871. virtualMachineInstancesPerNode:
  872. type: integer
  873. virtualMachineOptions:
  874. description: VirtualMachineOptions holds the cluster level information
  875. regarding the virtual machine.
  876. properties:
  877. disableFreePageReporting:
  878. description: DisableFreePageReporting disable the free page
  879. reporting of memory balloon device https://libvirt.org/formatdomain.html#memory-balloon-device.
  880. This will have effect only if AutoattachMemBalloon is not
  881. false and the vmi is not requesting any high performance
  882. feature (dedicatedCPU/realtime/hugePages), in which free
  883. page reporting is always disabled.
  884. type: object
  885. disableSerialConsoleLog:
  886. description: DisableSerialConsoleLog disables logging the
  887. auto-attached default serial console. If not set, serial
  888. console logs will be written to a file and then streamed
  889. from a container named 'guest-console-log'. The value can
  890. be individually overridden for each VM, not relevant if
  891. AutoattachSerialConsole is disabled.
  892. type: object
  893. type: object
  894. vmStateStorageClass:
  895. description: VMStateStorageClass is the name of the storage class
  896. to use for the PVCs created to preserve VM state, like TPM.
  897. The storage class must support RWX in filesystem mode.
  898. type: string
  899. webhookConfiguration:
  900. description: ReloadableComponentConfiguration holds all generic
  901. k8s configuration options which can be reloaded by components
  902. without requiring a restart.
  903. properties:
  904. restClient:
  905. description: RestClient can be used to tune certain aspects
  906. of the k8s client in use.
  907. properties:
  908. rateLimiter:
  909. description: RateLimiter allows selecting and configuring
  910. different rate limiters for the k8s client.
  911. properties:
  912. tokenBucketRateLimiter:
  913. properties:
  914. burst:
  915. description: Maximum burst for throttle. If it's
  916. zero, the component default will be used
  917. type: integer
  918. qps:
  919. description: QPS indicates the maximum QPS to
  920. the apiserver from this client. If it's zero,
  921. the component default will be used
  922. type: number
  923. required:
  924. - burst
  925. - qps
  926. type: object
  927. type: object
  928. type: object
  929. type: object
  930. type: object
  931. customizeComponents:
  932. properties:
  933. flags:
  934. description: Configure the value used for deployment and daemonset
  935. resources
  936. properties:
  937. api:
  938. additionalProperties:
  939. type: string
  940. type: object
  941. controller:
  942. additionalProperties:
  943. type: string
  944. type: object
  945. handler:
  946. additionalProperties:
  947. type: string
  948. type: object
  949. type: object
  950. patches:
  951. items:
  952. properties:
  953. patch:
  954. type: string
  955. resourceName:
  956. minLength: 1
  957. type: string
  958. resourceType:
  959. minLength: 1
  960. type: string
  961. type:
  962. type: string
  963. required:
  964. - patch
  965. - resourceName
  966. - resourceType
  967. - type
  968. type: object
  969. type: array
  970. x-kubernetes-list-type: atomic
  971. type: object
  972. imagePullPolicy:
  973. description: The ImagePullPolicy to use.
  974. type: string
  975. imagePullSecrets:
  976. description: The imagePullSecrets to pull the container images from
  977. Defaults to none
  978. items:
  979. description: LocalObjectReference contains enough information to
  980. let you locate the referenced object inside the same namespace.
  981. properties:
  982. name:
  983. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  984. TODO: Add other useful fields. apiVersion, kind, uid?'
  985. type: string
  986. type: object
  987. type: array
  988. x-kubernetes-list-type: atomic
  989. imageRegistry:
  990. description: The image registry to pull the container images from
  991. Defaults to the same registry the operator's container image is
  992. pulled from.
  993. type: string
  994. imageTag:
  995. description: The image tag to use for the continer images installed.
  996. Defaults to the same tag as the operator's container image.
  997. type: string
  998. infra:
  999. description: selectors and tolerations that should apply to KubeVirt
  1000. infrastructure components
  1001. properties:
  1002. nodePlacement:
  1003. description: nodePlacement describes scheduling configuration
  1004. for specific KubeVirt components
  1005. properties:
  1006. affinity:
  1007. description: affinity enables pod affinity/anti-affinity placement
  1008. expanding the types of constraints that can be expressed
  1009. with nodeSelector. affinity is going to be applied to the
  1010. relevant kind of pods in parallel with nodeSelector See
  1011. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
  1012. properties:
  1013. nodeAffinity:
  1014. description: Describes node affinity scheduling rules
  1015. for the pod.
  1016. properties:
  1017. preferredDuringSchedulingIgnoredDuringExecution:
  1018. description: The scheduler will prefer to schedule
  1019. pods to nodes that satisfy the affinity expressions
  1020. specified by this field, but it may choose a node
  1021. that violates one or more of the expressions. The
  1022. node that is most preferred is the one with the
  1023. greatest sum of weights, i.e. for each node that
  1024. meets all of the scheduling requirements (resource
  1025. request, requiredDuringScheduling affinity expressions,
  1026. etc.), compute a sum by iterating through the elements
  1027. of this field and adding "weight" to the sum if
  1028. the node matches the corresponding matchExpressions;
  1029. the node(s) with the highest sum are the most preferred.
  1030. items:
  1031. description: An empty preferred scheduling term
  1032. matches all objects with implicit weight 0 (i.e.
  1033. it's a no-op). A null preferred scheduling term
  1034. matches no objects (i.e. is also a no-op).
  1035. properties:
  1036. preference:
  1037. description: A node selector term, associated
  1038. with the corresponding weight.
  1039. properties:
  1040. matchExpressions:
  1041. description: A list of node selector requirements
  1042. by node's labels.
  1043. items:
  1044. description: A node selector requirement
  1045. is a selector that contains values,
  1046. a key, and an operator that relates
  1047. the key and values.
  1048. properties:
  1049. key:
  1050. description: The label key that the
  1051. selector applies to.
  1052. type: string
  1053. operator:
  1054. description: Represents a key's relationship
  1055. to a set of values. Valid operators
  1056. are In, NotIn, Exists, DoesNotExist.
  1057. Gt, and Lt.
  1058. type: string
  1059. values:
  1060. description: An array of string values.
  1061. If the operator is In or NotIn,
  1062. the values array must be non-empty.
  1063. If the operator is Exists or DoesNotExist,
  1064. the values array must be empty.
  1065. If the operator is Gt or Lt, the
  1066. values array must have a single
  1067. element, which will be interpreted
  1068. as an integer. This array is replaced
  1069. during a strategic merge patch.
  1070. items:
  1071. type: string
  1072. type: array
  1073. required:
  1074. - key
  1075. - operator
  1076. type: object
  1077. type: array
  1078. matchFields:
  1079. description: A list of node selector requirements
  1080. by node's fields.
  1081. items:
  1082. description: A node selector requirement
  1083. is a selector that contains values,
  1084. a key, and an operator that relates
  1085. the key and values.
  1086. properties:
  1087. key:
  1088. description: The label key that the
  1089. selector applies to.
  1090. type: string
  1091. operator:
  1092. description: Represents a key's relationship
  1093. to a set of values. Valid operators
  1094. are In, NotIn, Exists, DoesNotExist.
  1095. Gt, and Lt.
  1096. type: string
  1097. values:
  1098. description: An array of string values.
  1099. If the operator is In or NotIn,
  1100. the values array must be non-empty.
  1101. If the operator is Exists or DoesNotExist,
  1102. the values array must be empty.
  1103. If the operator is Gt or Lt, the
  1104. values array must have a single
  1105. element, which will be interpreted
  1106. as an integer. This array is replaced
  1107. during a strategic merge patch.
  1108. items:
  1109. type: string
  1110. type: array
  1111. required:
  1112. - key
  1113. - operator
  1114. type: object
  1115. type: array
  1116. type: object
  1117. weight:
  1118. description: Weight associated with matching
  1119. the corresponding nodeSelectorTerm, in the
  1120. range 1-100.
  1121. format: int32
  1122. type: integer
  1123. required:
  1124. - preference
  1125. - weight
  1126. type: object
  1127. type: array
  1128. requiredDuringSchedulingIgnoredDuringExecution:
  1129. description: If the affinity requirements specified
  1130. by this field are not met at scheduling time, the
  1131. pod will not be scheduled onto the node. If the
  1132. affinity requirements specified by this field cease
  1133. to be met at some point during pod execution (e.g.
  1134. due to an update), the system may or may not try
  1135. to eventually evict the pod from its node.
  1136. properties:
  1137. nodeSelectorTerms:
  1138. description: Required. A list of node selector
  1139. terms. The terms are ORed.
  1140. items:
  1141. description: A null or empty node selector term
  1142. matches no objects. The requirements of them
  1143. are ANDed. The TopologySelectorTerm type implements
  1144. a subset of the NodeSelectorTerm.
  1145. properties:
  1146. matchExpressions:
  1147. description: A list of node selector requirements
  1148. by node's labels.
  1149. items:
  1150. description: A node selector requirement
  1151. is a selector that contains values,
  1152. a key, and an operator that relates
  1153. the key and values.
  1154. properties:
  1155. key:
  1156. description: The label key that the
  1157. selector applies to.
  1158. type: string
  1159. operator:
  1160. description: Represents a key's relationship
  1161. to a set of values. Valid operators
  1162. are In, NotIn, Exists, DoesNotExist.
  1163. Gt, and Lt.
  1164. type: string
  1165. values:
  1166. description: An array of string values.
  1167. If the operator is In or NotIn,
  1168. the values array must be non-empty.
  1169. If the operator is Exists or DoesNotExist,
  1170. the values array must be empty.
  1171. If the operator is Gt or Lt, the
  1172. values array must have a single
  1173. element, which will be interpreted
  1174. as an integer. This array is replaced
  1175. during a strategic merge patch.
  1176. items:
  1177. type: string
  1178. type: array
  1179. required:
  1180. - key
  1181. - operator
  1182. type: object
  1183. type: array
  1184. matchFields:
  1185. description: A list of node selector requirements
  1186. by node's fields.
  1187. items:
  1188. description: A node selector requirement
  1189. is a selector that contains values,
  1190. a key, and an operator that relates
  1191. the key and values.
  1192. properties:
  1193. key:
  1194. description: The label key that the
  1195. selector applies to.
  1196. type: string
  1197. operator:
  1198. description: Represents a key's relationship
  1199. to a set of values. Valid operators
  1200. are In, NotIn, Exists, DoesNotExist.
  1201. Gt, and Lt.
  1202. type: string
  1203. values:
  1204. description: An array of string values.
  1205. If the operator is In or NotIn,
  1206. the values array must be non-empty.
  1207. If the operator is Exists or DoesNotExist,
  1208. the values array must be empty.
  1209. If the operator is Gt or Lt, the
  1210. values array must have a single
  1211. element, which will be interpreted
  1212. as an integer. This array is replaced
  1213. during a strategic merge patch.
  1214. items:
  1215. type: string
  1216. type: array
  1217. required:
  1218. - key
  1219. - operator
  1220. type: object
  1221. type: array
  1222. type: object
  1223. type: array
  1224. required:
  1225. - nodeSelectorTerms
  1226. type: object
  1227. type: object
  1228. podAffinity:
  1229. description: Describes pod affinity scheduling rules (e.g.
  1230. co-locate this pod in the same node, zone, etc. as some
  1231. other pod(s)).
  1232. properties:
  1233. preferredDuringSchedulingIgnoredDuringExecution:
  1234. description: The scheduler will prefer to schedule
  1235. pods to nodes that satisfy the affinity expressions
  1236. specified by this field, but it may choose a node
  1237. that violates one or more of the expressions. The
  1238. node that is most preferred is the one with the
  1239. greatest sum of weights, i.e. for each node that
  1240. meets all of the scheduling requirements (resource
  1241. request, requiredDuringScheduling affinity expressions,
  1242. etc.), compute a sum by iterating through the elements
  1243. of this field and adding "weight" to the sum if
  1244. the node has pods which matches the corresponding
  1245. podAffinityTerm; the node(s) with the highest sum
  1246. are the most preferred.
  1247. items:
  1248. description: The weights of all of the matched WeightedPodAffinityTerm
  1249. fields are added per-node to find the most preferred
  1250. node(s)
  1251. properties:
  1252. podAffinityTerm:
  1253. description: Required. A pod affinity term,
  1254. associated with the corresponding weight.
  1255. properties:
  1256. labelSelector:
  1257. description: A label query over a set of
  1258. resources, in this case pods.
  1259. properties:
  1260. matchExpressions:
  1261. description: matchExpressions is a list
  1262. of label selector requirements. The
  1263. requirements are ANDed.
  1264. items:
  1265. description: A label selector requirement
  1266. is a selector that contains values,
  1267. a key, and an operator that relates
  1268. the key and values.
  1269. properties:
  1270. key:
  1271. description: key is the label
  1272. key that the selector applies
  1273. to.
  1274. type: string
  1275. operator:
  1276. description: operator represents
  1277. a key's relationship to a set
  1278. of values. Valid operators are
  1279. In, NotIn, Exists and DoesNotExist.
  1280. type: string
  1281. values:
  1282. description: values is an array
  1283. of string values. If the operator
  1284. is In or NotIn, the values array
  1285. must be non-empty. If the operator
  1286. is Exists or DoesNotExist, the
  1287. values array must be empty.
  1288. This array is replaced during
  1289. a strategic merge patch.
  1290. items:
  1291. type: string
  1292. type: array
  1293. required:
  1294. - key
  1295. - operator
  1296. type: object
  1297. type: array
  1298. matchLabels:
  1299. additionalProperties:
  1300. type: string
  1301. description: matchLabels is a map of
  1302. {key,value} pairs. A single {key,value}
  1303. in the matchLabels map is equivalent
  1304. to an element of matchExpressions,
  1305. whose key field is "key", the operator
  1306. is "In", and the values array contains
  1307. only "value". The requirements are
  1308. ANDed.
  1309. type: object
  1310. type: object
  1311. namespaceSelector:
  1312. description: A label query over the set
  1313. of namespaces that the term applies to.
  1314. The term is applied to the union of the
  1315. namespaces selected by this field and
  1316. the ones listed in the namespaces field.
  1317. null selector and null or empty namespaces
  1318. list means "this pod's namespace". An
  1319. empty selector ({}) matches all namespaces.
  1320. properties:
  1321. matchExpressions:
  1322. description: matchExpressions is a list
  1323. of label selector requirements. The
  1324. requirements are ANDed.
  1325. items:
  1326. description: A label selector requirement
  1327. is a selector that contains values,
  1328. a key, and an operator that relates
  1329. the key and values.
  1330. properties:
  1331. key:
  1332. description: key is the label
  1333. key that the selector applies
  1334. to.
  1335. type: string
  1336. operator:
  1337. description: operator represents
  1338. a key's relationship to a set
  1339. of values. Valid operators are
  1340. In, NotIn, Exists and DoesNotExist.
  1341. type: string
  1342. values:
  1343. description: values is an array
  1344. of string values. If the operator
  1345. is In or NotIn, the values array
  1346. must be non-empty. If the operator
  1347. is Exists or DoesNotExist, the
  1348. values array must be empty.
  1349. This array is replaced during
  1350. a strategic merge patch.
  1351. items:
  1352. type: string
  1353. type: array
  1354. required:
  1355. - key
  1356. - operator
  1357. type: object
  1358. type: array
  1359. matchLabels:
  1360. additionalProperties:
  1361. type: string
  1362. description: matchLabels is a map of
  1363. {key,value} pairs. A single {key,value}
  1364. in the matchLabels map is equivalent
  1365. to an element of matchExpressions,
  1366. whose key field is "key", the operator
  1367. is "In", and the values array contains
  1368. only "value". The requirements are
  1369. ANDed.
  1370. type: object
  1371. type: object
  1372. namespaces:
  1373. description: namespaces specifies a static
  1374. list of namespace names that the term
  1375. applies to. The term is applied to the
  1376. union of the namespaces listed in this
  1377. field and the ones selected by namespaceSelector.
  1378. null or empty namespaces list and null
  1379. namespaceSelector means "this pod's namespace".
  1380. items:
  1381. type: string
  1382. type: array
  1383. topologyKey:
  1384. description: This pod should be co-located
  1385. (affinity) or not co-located (anti-affinity)
  1386. with the pods matching the labelSelector
  1387. in the specified namespaces, where co-located
  1388. is defined as running on a node whose
  1389. value of the label with key topologyKey
  1390. matches that of any node on which any
  1391. of the selected pods is running. Empty
  1392. topologyKey is not allowed.
  1393. type: string
  1394. required:
  1395. - topologyKey
  1396. type: object
  1397. weight:
  1398. description: weight associated with matching
  1399. the corresponding podAffinityTerm, in the
  1400. range 1-100.
  1401. format: int32
  1402. type: integer
  1403. required:
  1404. - podAffinityTerm
  1405. - weight
  1406. type: object
  1407. type: array
  1408. requiredDuringSchedulingIgnoredDuringExecution:
  1409. description: If the affinity requirements specified
  1410. by this field are not met at scheduling time, the
  1411. pod will not be scheduled onto the node. If the
  1412. affinity requirements specified by this field cease
  1413. to be met at some point during pod execution (e.g.
  1414. due to a pod label update), the system may or may
  1415. not try to eventually evict the pod from its node.
  1416. When there are multiple elements, the lists of nodes
  1417. corresponding to each podAffinityTerm are intersected,
  1418. i.e. all terms must be satisfied.
  1419. items:
  1420. description: Defines a set of pods (namely those
  1421. matching the labelSelector relative to the given
  1422. namespace(s)) that this pod should be co-located
  1423. (affinity) or not co-located (anti-affinity) with,
  1424. where co-located is defined as running on a node
  1425. whose value of the label with key <topologyKey>
  1426. matches that of any node on which a pod of the
  1427. set of pods is running
  1428. properties:
  1429. labelSelector:
  1430. description: A label query over a set of resources,
  1431. in this case pods.
  1432. properties:
  1433. matchExpressions:
  1434. description: matchExpressions is a list
  1435. of label selector requirements. The requirements
  1436. are ANDed.
  1437. items:
  1438. description: A label selector requirement
  1439. is a selector that contains values,
  1440. a key, and an operator that relates
  1441. the key and values.
  1442. properties:
  1443. key:
  1444. description: key is the label key
  1445. that the selector applies to.
  1446. type: string
  1447. operator:
  1448. description: operator represents a
  1449. key's relationship to a set of values.
  1450. Valid operators are In, NotIn, Exists
  1451. and DoesNotExist.
  1452. type: string
  1453. values:
  1454. description: values is an array of
  1455. string values. If the operator is
  1456. In or NotIn, the values array must
  1457. be non-empty. If the operator is
  1458. Exists or DoesNotExist, the values
  1459. array must be empty. This array
  1460. is replaced during a strategic merge
  1461. patch.
  1462. items:
  1463. type: string
  1464. type: array
  1465. required:
  1466. - key
  1467. - operator
  1468. type: object
  1469. type: array
  1470. matchLabels:
  1471. additionalProperties:
  1472. type: string
  1473. description: matchLabels is a map of {key,value}
  1474. pairs. A single {key,value} in the matchLabels
  1475. map is equivalent to an element of matchExpressions,
  1476. whose key field is "key", the operator
  1477. is "In", and the values array contains
  1478. only "value". The requirements are ANDed.
  1479. type: object
  1480. type: object
  1481. namespaceSelector:
  1482. description: A label query over the set of namespaces
  1483. that the term applies to. The term is applied
  1484. to the union of the namespaces selected by
  1485. this field and the ones listed in the namespaces
  1486. field. null selector and null or empty namespaces
  1487. list means "this pod's namespace". An empty
  1488. selector ({}) matches all namespaces.
  1489. properties:
  1490. matchExpressions:
  1491. description: matchExpressions is a list
  1492. of label selector requirements. The requirements
  1493. are ANDed.
  1494. items:
  1495. description: A label selector requirement
  1496. is a selector that contains values,
  1497. a key, and an operator that relates
  1498. the key and values.
  1499. properties:
  1500. key:
  1501. description: key is the label key
  1502. that the selector applies to.
  1503. type: string
  1504. operator:
  1505. description: operator represents a
  1506. key's relationship to a set of values.
  1507. Valid operators are In, NotIn, Exists
  1508. and DoesNotExist.
  1509. type: string
  1510. values:
  1511. description: values is an array of
  1512. string values. If the operator is
  1513. In or NotIn, the values array must
  1514. be non-empty. If the operator is
  1515. Exists or DoesNotExist, the values
  1516. array must be empty. This array
  1517. is replaced during a strategic merge
  1518. patch.
  1519. items:
  1520. type: string
  1521. type: array
  1522. required:
  1523. - key
  1524. - operator
  1525. type: object
  1526. type: array
  1527. matchLabels:
  1528. additionalProperties:
  1529. type: string
  1530. description: matchLabels is a map of {key,value}
  1531. pairs. A single {key,value} in the matchLabels
  1532. map is equivalent to an element of matchExpressions,
  1533. whose key field is "key", the operator
  1534. is "In", and the values array contains
  1535. only "value". The requirements are ANDed.
  1536. type: object
  1537. type: object
  1538. namespaces:
  1539. description: namespaces specifies a static list
  1540. of namespace names that the term applies to.
  1541. The term is applied to the union of the namespaces
  1542. listed in this field and the ones selected
  1543. by namespaceSelector. null or empty namespaces
  1544. list and null namespaceSelector means "this
  1545. pod's namespace".
  1546. items:
  1547. type: string
  1548. type: array
  1549. topologyKey:
  1550. description: This pod should be co-located (affinity)
  1551. or not co-located (anti-affinity) with the
  1552. pods matching the labelSelector in the specified
  1553. namespaces, where co-located is defined as
  1554. running on a node whose value of the label
  1555. with key topologyKey matches that of any node
  1556. on which any of the selected pods is running.
  1557. Empty topologyKey is not allowed.
  1558. type: string
  1559. required:
  1560. - topologyKey
  1561. type: object
  1562. type: array
  1563. type: object
  1564. podAntiAffinity:
  1565. description: Describes pod anti-affinity scheduling rules
  1566. (e.g. avoid putting this pod in the same node, zone,
  1567. etc. as some other pod(s)).
  1568. properties:
  1569. preferredDuringSchedulingIgnoredDuringExecution:
  1570. description: The scheduler will prefer to schedule
  1571. pods to nodes that satisfy the anti-affinity expressions
  1572. specified by this field, but it may choose a node
  1573. that violates one or more of the expressions. The
  1574. node that is most preferred is the one with the
  1575. greatest sum of weights, i.e. for each node that
  1576. meets all of the scheduling requirements (resource
  1577. request, requiredDuringScheduling anti-affinity
  1578. expressions, etc.), compute a sum by iterating through
  1579. the elements of this field and adding "weight" to
  1580. the sum if the node has pods which matches the corresponding
  1581. podAffinityTerm; the node(s) with the highest sum
  1582. are the most preferred.
  1583. items:
  1584. description: The weights of all of the matched WeightedPodAffinityTerm
  1585. fields are added per-node to find the most preferred
  1586. node(s)
  1587. properties:
  1588. podAffinityTerm:
  1589. description: Required. A pod affinity term,
  1590. associated with the corresponding weight.
  1591. properties:
  1592. labelSelector:
  1593. description: A label query over a set of
  1594. resources, in this case pods.
  1595. properties:
  1596. matchExpressions:
  1597. description: matchExpressions is a list
  1598. of label selector requirements. The
  1599. requirements are ANDed.
  1600. items:
  1601. description: A label selector requirement
  1602. is a selector that contains values,
  1603. a key, and an operator that relates
  1604. the key and values.
  1605. properties:
  1606. key:
  1607. description: key is the label
  1608. key that the selector applies
  1609. to.
  1610. type: string
  1611. operator:
  1612. description: operator represents
  1613. a key's relationship to a set
  1614. of values. Valid operators are
  1615. In, NotIn, Exists and DoesNotExist.
  1616. type: string
  1617. values:
  1618. description: values is an array
  1619. of string values. If the operator
  1620. is In or NotIn, the values array
  1621. must be non-empty. If the operator
  1622. is Exists or DoesNotExist, the
  1623. values array must be empty.
  1624. This array is replaced during
  1625. a strategic merge patch.
  1626. items:
  1627. type: string
  1628. type: array
  1629. required:
  1630. - key
  1631. - operator
  1632. type: object
  1633. type: array
  1634. matchLabels:
  1635. additionalProperties:
  1636. type: string
  1637. description: matchLabels is a map of
  1638. {key,value} pairs. A single {key,value}
  1639. in the matchLabels map is equivalent
  1640. to an element of matchExpressions,
  1641. whose key field is "key", the operator
  1642. is "In", and the values array contains
  1643. only "value". The requirements are
  1644. ANDed.
  1645. type: object
  1646. type: object
  1647. namespaceSelector:
  1648. description: A label query over the set
  1649. of namespaces that the term applies to.
  1650. The term is applied to the union of the
  1651. namespaces selected by this field and
  1652. the ones listed in the namespaces field.
  1653. null selector and null or empty namespaces
  1654. list means "this pod's namespace". An
  1655. empty selector ({}) matches all namespaces.
  1656. properties:
  1657. matchExpressions:
  1658. description: matchExpressions is a list
  1659. of label selector requirements. The
  1660. requirements are ANDed.
  1661. items:
  1662. description: A label selector requirement
  1663. is a selector that contains values,
  1664. a key, and an operator that relates
  1665. the key and values.
  1666. properties:
  1667. key:
  1668. description: key is the label
  1669. key that the selector applies
  1670. to.
  1671. type: string
  1672. operator:
  1673. description: operator represents
  1674. a key's relationship to a set
  1675. of values. Valid operators are
  1676. In, NotIn, Exists and DoesNotExist.
  1677. type: string
  1678. values:
  1679. description: values is an array
  1680. of string values. If the operator
  1681. is In or NotIn, the values array
  1682. must be non-empty. If the operator
  1683. is Exists or DoesNotExist, the
  1684. values array must be empty.
  1685. This array is replaced during
  1686. a strategic merge patch.
  1687. items:
  1688. type: string
  1689. type: array
  1690. required:
  1691. - key
  1692. - operator
  1693. type: object
  1694. type: array
  1695. matchLabels:
  1696. additionalProperties:
  1697. type: string
  1698. description: matchLabels is a map of
  1699. {key,value} pairs. A single {key,value}
  1700. in the matchLabels map is equivalent
  1701. to an element of matchExpressions,
  1702. whose key field is "key", the operator
  1703. is "In", and the values array contains
  1704. only "value". The requirements are
  1705. ANDed.
  1706. type: object
  1707. type: object
  1708. namespaces:
  1709. description: namespaces specifies a static
  1710. list of namespace names that the term
  1711. applies to. The term is applied to the
  1712. union of the namespaces listed in this
  1713. field and the ones selected by namespaceSelector.
  1714. null or empty namespaces list and null
  1715. namespaceSelector means "this pod's namespace".
  1716. items:
  1717. type: string
  1718. type: array
  1719. topologyKey:
  1720. description: This pod should be co-located
  1721. (affinity) or not co-located (anti-affinity)
  1722. with the pods matching the labelSelector
  1723. in the specified namespaces, where co-located
  1724. is defined as running on a node whose
  1725. value of the label with key topologyKey
  1726. matches that of any node on which any
  1727. of the selected pods is running. Empty
  1728. topologyKey is not allowed.
  1729. type: string
  1730. required:
  1731. - topologyKey
  1732. type: object
  1733. weight:
  1734. description: weight associated with matching
  1735. the corresponding podAffinityTerm, in the
  1736. range 1-100.
  1737. format: int32
  1738. type: integer
  1739. required:
  1740. - podAffinityTerm
  1741. - weight
  1742. type: object
  1743. type: array
  1744. requiredDuringSchedulingIgnoredDuringExecution:
  1745. description: If the anti-affinity requirements specified
  1746. by this field are not met at scheduling time, the
  1747. pod will not be scheduled onto the node. If the
  1748. anti-affinity requirements specified by this field
  1749. cease to be met at some point during pod execution
  1750. (e.g. due to a pod label update), the system may
  1751. or may not try to eventually evict the pod from
  1752. its node. When there are multiple elements, the
  1753. lists of nodes corresponding to each podAffinityTerm
  1754. are intersected, i.e. all terms must be satisfied.
  1755. items:
  1756. description: Defines a set of pods (namely those
  1757. matching the labelSelector relative to the given
  1758. namespace(s)) that this pod should be co-located
  1759. (affinity) or not co-located (anti-affinity) with,
  1760. where co-located is defined as running on a node
  1761. whose value of the label with key <topologyKey>
  1762. matches that of any node on which a pod of the
  1763. set of pods is running
  1764. properties:
  1765. labelSelector:
  1766. description: A label query over a set of resources,
  1767. in this case pods.
  1768. properties:
  1769. matchExpressions:
  1770. description: matchExpressions is a list
  1771. of label selector requirements. The requirements
  1772. are ANDed.
  1773. items:
  1774. description: A label selector requirement
  1775. is a selector that contains values,
  1776. a key, and an operator that relates
  1777. the key and values.
  1778. properties:
  1779. key:
  1780. description: key is the label key
  1781. that the selector applies to.
  1782. type: string
  1783. operator:
  1784. description: operator represents a
  1785. key's relationship to a set of values.
  1786. Valid operators are In, NotIn, Exists
  1787. and DoesNotExist.
  1788. type: string
  1789. values:
  1790. description: values is an array of
  1791. string values. If the operator is
  1792. In or NotIn, the values array must
  1793. be non-empty. If the operator is
  1794. Exists or DoesNotExist, the values
  1795. array must be empty. This array
  1796. is replaced during a strategic merge
  1797. patch.
  1798. items:
  1799. type: string
  1800. type: array
  1801. required:
  1802. - key
  1803. - operator
  1804. type: object
  1805. type: array
  1806. matchLabels:
  1807. additionalProperties:
  1808. type: string
  1809. description: matchLabels is a map of {key,value}
  1810. pairs. A single {key,value} in the matchLabels
  1811. map is equivalent to an element of matchExpressions,
  1812. whose key field is "key", the operator
  1813. is "In", and the values array contains
  1814. only "value". The requirements are ANDed.
  1815. type: object
  1816. type: object
  1817. namespaceSelector:
  1818. description: A label query over the set of namespaces
  1819. that the term applies to. The term is applied
  1820. to the union of the namespaces selected by
  1821. this field and the ones listed in the namespaces
  1822. field. null selector and null or empty namespaces
  1823. list means "this pod's namespace". An empty
  1824. selector ({}) matches all namespaces.
  1825. properties:
  1826. matchExpressions:
  1827. description: matchExpressions is a list
  1828. of label selector requirements. The requirements
  1829. are ANDed.
  1830. items:
  1831. description: A label selector requirement
  1832. is a selector that contains values,
  1833. a key, and an operator that relates
  1834. the key and values.
  1835. properties:
  1836. key:
  1837. description: key is the label key
  1838. that the selector applies to.
  1839. type: string
  1840. operator:
  1841. description: operator represents a
  1842. key's relationship to a set of values.
  1843. Valid operators are In, NotIn, Exists
  1844. and DoesNotExist.
  1845. type: string
  1846. values:
  1847. description: values is an array of
  1848. string values. If the operator is
  1849. In or NotIn, the values array must
  1850. be non-empty. If the operator is
  1851. Exists or DoesNotExist, the values
  1852. array must be empty. This array
  1853. is replaced during a strategic merge
  1854. patch.
  1855. items:
  1856. type: string
  1857. type: array
  1858. required:
  1859. - key
  1860. - operator
  1861. type: object
  1862. type: array
  1863. matchLabels:
  1864. additionalProperties:
  1865. type: string
  1866. description: matchLabels is a map of {key,value}
  1867. pairs. A single {key,value} in the matchLabels
  1868. map is equivalent to an element of matchExpressions,
  1869. whose key field is "key", the operator
  1870. is "In", and the values array contains
  1871. only "value". The requirements are ANDed.
  1872. type: object
  1873. type: object
  1874. namespaces:
  1875. description: namespaces specifies a static list
  1876. of namespace names that the term applies to.
  1877. The term is applied to the union of the namespaces
  1878. listed in this field and the ones selected
  1879. by namespaceSelector. null or empty namespaces
  1880. list and null namespaceSelector means "this
  1881. pod's namespace".
  1882. items:
  1883. type: string
  1884. type: array
  1885. topologyKey:
  1886. description: This pod should be co-located (affinity)
  1887. or not co-located (anti-affinity) with the
  1888. pods matching the labelSelector in the specified
  1889. namespaces, where co-located is defined as
  1890. running on a node whose value of the label
  1891. with key topologyKey matches that of any node
  1892. on which any of the selected pods is running.
  1893. Empty topologyKey is not allowed.
  1894. type: string
  1895. required:
  1896. - topologyKey
  1897. type: object
  1898. type: array
  1899. type: object
  1900. type: object
  1901. nodeSelector:
  1902. additionalProperties:
  1903. type: string
  1904. description: 'nodeSelector is the node selector applied to
  1905. the relevant kind of pods It specifies a map of key-value
  1906. pairs: for the pod to be eligible to run on a node, the
  1907. node must have each of the indicated key-value pairs as
  1908. labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
  1909. type: object
  1910. tolerations:
  1911. description: tolerations is a list of tolerations applied
  1912. to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  1913. for more info. These are additional tolerations other than
  1914. default ones.
  1915. items:
  1916. description: The pod this Toleration is attached to tolerates
  1917. any taint that matches the triple <key,value,effect> using
  1918. the matching operator <operator>.
  1919. properties:
  1920. effect:
  1921. description: Effect indicates the taint effect to match.
  1922. Empty means match all taint effects. When specified,
  1923. allowed values are NoSchedule, PreferNoSchedule and
  1924. NoExecute.
  1925. type: string
  1926. key:
  1927. description: Key is the taint key that the toleration
  1928. applies to. Empty means match all taint keys. If the
  1929. key is empty, operator must be Exists; this combination
  1930. means to match all values and all keys.
  1931. type: string
  1932. operator:
  1933. description: Operator represents a key's relationship
  1934. to the value. Valid operators are Exists and Equal.
  1935. Defaults to Equal. Exists is equivalent to wildcard
  1936. for value, so that a pod can tolerate all taints of
  1937. a particular category.
  1938. type: string
  1939. tolerationSeconds:
  1940. description: TolerationSeconds represents the period
  1941. of time the toleration (which must be of effect NoExecute,
  1942. otherwise this field is ignored) tolerates the taint.
  1943. By default, it is not set, which means tolerate the
  1944. taint forever (do not evict). Zero and negative values
  1945. will be treated as 0 (evict immediately) by the system.
  1946. format: int64
  1947. type: integer
  1948. value:
  1949. description: Value is the taint value the toleration
  1950. matches to. If the operator is Exists, the value should
  1951. be empty, otherwise just a regular string.
  1952. type: string
  1953. type: object
  1954. type: array
  1955. type: object
  1956. replicas:
  1957. description: 'replicas indicates how many replicas should be created
  1958. for each KubeVirt infrastructure component (like virt-api or
  1959. virt-controller). Defaults to 2. WARNING: this is an advanced
  1960. feature that prevents auto-scaling for core kubevirt components.
  1961. Please use with caution!'
  1962. type: integer
  1963. type: object
  1964. monitorAccount:
  1965. description: The name of the Prometheus service account that needs
  1966. read-access to KubeVirt endpoints Defaults to prometheus-k8s
  1967. type: string
  1968. monitorNamespace:
  1969. description: The namespace Prometheus is deployed in Defaults to openshift-monitor
  1970. type: string
  1971. productComponent:
  1972. description: Designate the apps.kubevirt.io/component label for KubeVirt
  1973. components. Useful if KubeVirt is included as part of a product.
  1974. If ProductComponent is not specified, the component label default
  1975. value is kubevirt.
  1976. type: string
  1977. productName:
  1978. description: Designate the apps.kubevirt.io/part-of label for KubeVirt
  1979. components. Useful if KubeVirt is included as part of a product.
  1980. If ProductName is not specified, the part-of label will be omitted.
  1981. type: string
  1982. productVersion:
  1983. description: Designate the apps.kubevirt.io/version label for KubeVirt
  1984. components. Useful if KubeVirt is included as part of a product.
  1985. If ProductVersion is not specified, KubeVirt's version will be used.
  1986. type: string
  1987. serviceMonitorNamespace:
  1988. description: The namespace the service monitor will be deployed When
  1989. ServiceMonitorNamespace is set, then we'll install the service monitor
  1990. object in that namespace otherwise we will use the monitoring namespace.
  1991. type: string
  1992. uninstallStrategy:
  1993. description: Specifies if kubevirt can be deleted if workloads are
  1994. still present. This is mainly a precaution to avoid accidental data
  1995. loss
  1996. type: string
  1997. workloadUpdateStrategy:
  1998. description: WorkloadUpdateStrategy defines at the cluster level how
  1999. to handle automated workload updates
  2000. properties:
  2001. batchEvictionInterval:
  2002. description: "BatchEvictionInterval Represents the interval to
  2003. wait before issuing the next batch of shutdowns \n Defaults
  2004. to 1 minute"
  2005. type: string
  2006. batchEvictionSize:
  2007. description: "BatchEvictionSize Represents the number of VMIs
  2008. that can be forced updated per the BatchShutdownInteral interval
  2009. \n Defaults to 10"
  2010. type: integer
  2011. workloadUpdateMethods:
  2012. description: "WorkloadUpdateMethods defines the methods that can
  2013. be used to disrupt workloads during automated workload updates.
  2014. When multiple methods are present, the least disruptive method
  2015. takes precedence over more disruptive methods. For example if
  2016. both LiveMigrate and Shutdown methods are listed, only VMs which
  2017. are not live migratable will be restarted/shutdown \n An empty
  2018. list defaults to no automated workload updating"
  2019. items:
  2020. type: string
  2021. type: array
  2022. x-kubernetes-list-type: atomic
  2023. type: object
  2024. workloads:
  2025. description: selectors and tolerations that should apply to KubeVirt
  2026. workloads
  2027. properties:
  2028. nodePlacement:
  2029. description: nodePlacement describes scheduling configuration
  2030. for specific KubeVirt components
  2031. properties:
  2032. affinity:
  2033. description: affinity enables pod affinity/anti-affinity placement
  2034. expanding the types of constraints that can be expressed
  2035. with nodeSelector. affinity is going to be applied to the
  2036. relevant kind of pods in parallel with nodeSelector See
  2037. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
  2038. properties:
  2039. nodeAffinity:
  2040. description: Describes node affinity scheduling rules
  2041. for the pod.
  2042. properties:
  2043. preferredDuringSchedulingIgnoredDuringExecution:
  2044. description: The scheduler will prefer to schedule
  2045. pods to nodes that satisfy the affinity expressions
  2046. specified by this field, but it may choose a node
  2047. that violates one or more of the expressions. The
  2048. node that is most preferred is the one with the
  2049. greatest sum of weights, i.e. for each node that
  2050. meets all of the scheduling requirements (resource
  2051. request, requiredDuringScheduling affinity expressions,
  2052. etc.), compute a sum by iterating through the elements
  2053. of this field and adding "weight" to the sum if
  2054. the node matches the corresponding matchExpressions;
  2055. the node(s) with the highest sum are the most preferred.
  2056. items:
  2057. description: An empty preferred scheduling term
  2058. matches all objects with implicit weight 0 (i.e.
  2059. it's a no-op). A null preferred scheduling term
  2060. matches no objects (i.e. is also a no-op).
  2061. properties:
  2062. preference:
  2063. description: A node selector term, associated
  2064. with the corresponding weight.
  2065. properties:
  2066. matchExpressions:
  2067. description: A list of node selector requirements
  2068. by node's labels.
  2069. items:
  2070. description: A node selector requirement
  2071. is a selector that contains values,
  2072. a key, and an operator that relates
  2073. the key and values.
  2074. properties:
  2075. key:
  2076. description: The label key that the
  2077. selector applies to.
  2078. type: string
  2079. operator:
  2080. description: Represents a key's relationship
  2081. to a set of values. Valid operators
  2082. are In, NotIn, Exists, DoesNotExist.
  2083. Gt, and Lt.
  2084. type: string
  2085. values:
  2086. description: An array of string values.
  2087. If the operator is In or NotIn,
  2088. the values array must be non-empty.
  2089. If the operator is Exists or DoesNotExist,
  2090. the values array must be empty.
  2091. If the operator is Gt or Lt, the
  2092. values array must have a single
  2093. element, which will be interpreted
  2094. as an integer. This array is replaced
  2095. during a strategic merge patch.
  2096. items:
  2097. type: string
  2098. type: array
  2099. required:
  2100. - key
  2101. - operator
  2102. type: object
  2103. type: array
  2104. matchFields:
  2105. description: A list of node selector requirements
  2106. by node's fields.
  2107. items:
  2108. description: A node selector requirement
  2109. is a selector that contains values,
  2110. a key, and an operator that relates
  2111. the key and values.
  2112. properties:
  2113. key:
  2114. description: The label key that the
  2115. selector applies to.
  2116. type: string
  2117. operator:
  2118. description: Represents a key's relationship
  2119. to a set of values. Valid operators
  2120. are In, NotIn, Exists, DoesNotExist.
  2121. Gt, and Lt.
  2122. type: string
  2123. values:
  2124. description: An array of string values.
  2125. If the operator is In or NotIn,
  2126. the values array must be non-empty.
  2127. If the operator is Exists or DoesNotExist,
  2128. the values array must be empty.
  2129. If the operator is Gt or Lt, the
  2130. values array must have a single
  2131. element, which will be interpreted
  2132. as an integer. This array is replaced
  2133. during a strategic merge patch.
  2134. items:
  2135. type: string
  2136. type: array
  2137. required:
  2138. - key
  2139. - operator
  2140. type: object
  2141. type: array
  2142. type: object
  2143. weight:
  2144. description: Weight associated with matching
  2145. the corresponding nodeSelectorTerm, in the
  2146. range 1-100.
  2147. format: int32
  2148. type: integer
  2149. required:
  2150. - preference
  2151. - weight
  2152. type: object
  2153. type: array
  2154. requiredDuringSchedulingIgnoredDuringExecution:
  2155. description: If the affinity requirements specified
  2156. by this field are not met at scheduling time, the
  2157. pod will not be scheduled onto the node. If the
  2158. affinity requirements specified by this field cease
  2159. to be met at some point during pod execution (e.g.
  2160. due to an update), the system may or may not try
  2161. to eventually evict the pod from its node.
  2162. properties:
  2163. nodeSelectorTerms:
  2164. description: Required. A list of node selector
  2165. terms. The terms are ORed.
  2166. items:
  2167. description: A null or empty node selector term
  2168. matches no objects. The requirements of them
  2169. are ANDed. The TopologySelectorTerm type implements
  2170. a subset of the NodeSelectorTerm.
  2171. properties:
  2172. matchExpressions:
  2173. description: A list of node selector requirements
  2174. by node's labels.
  2175. items:
  2176. description: A node selector requirement
  2177. is a selector that contains values,
  2178. a key, and an operator that relates
  2179. the key and values.
  2180. properties:
  2181. key:
  2182. description: The label key that the
  2183. selector applies to.
  2184. type: string
  2185. operator:
  2186. description: Represents a key's relationship
  2187. to a set of values. Valid operators
  2188. are In, NotIn, Exists, DoesNotExist.
  2189. Gt, and Lt.
  2190. type: string
  2191. values:
  2192. description: An array of string values.
  2193. If the operator is In or NotIn,
  2194. the values array must be non-empty.
  2195. If the operator is Exists or DoesNotExist,
  2196. the values array must be empty.
  2197. If the operator is Gt or Lt, the
  2198. values array must have a single
  2199. element, which will be interpreted
  2200. as an integer. This array is replaced
  2201. during a strategic merge patch.
  2202. items:
  2203. type: string
  2204. type: array
  2205. required:
  2206. - key
  2207. - operator
  2208. type: object
  2209. type: array
  2210. matchFields:
  2211. description: A list of node selector requirements
  2212. by node's fields.
  2213. items:
  2214. description: A node selector requirement
  2215. is a selector that contains values,
  2216. a key, and an operator that relates
  2217. the key and values.
  2218. properties:
  2219. key:
  2220. description: The label key that the
  2221. selector applies to.
  2222. type: string
  2223. operator:
  2224. description: Represents a key's relationship
  2225. to a set of values. Valid operators
  2226. are In, NotIn, Exists, DoesNotExist.
  2227. Gt, and Lt.
  2228. type: string
  2229. values:
  2230. description: An array of string values.
  2231. If the operator is In or NotIn,
  2232. the values array must be non-empty.
  2233. If the operator is Exists or DoesNotExist,
  2234. the values array must be empty.
  2235. If the operator is Gt or Lt, the
  2236. values array must have a single
  2237. element, which will be interpreted
  2238. as an integer. This array is replaced
  2239. during a strategic merge patch.
  2240. items:
  2241. type: string
  2242. type: array
  2243. required:
  2244. - key
  2245. - operator
  2246. type: object
  2247. type: array
  2248. type: object
  2249. type: array
  2250. required:
  2251. - nodeSelectorTerms
  2252. type: object
  2253. type: object
  2254. podAffinity:
  2255. description: Describes pod affinity scheduling rules (e.g.
  2256. co-locate this pod in the same node, zone, etc. as some
  2257. other pod(s)).
  2258. properties:
  2259. preferredDuringSchedulingIgnoredDuringExecution:
  2260. description: The scheduler will prefer to schedule
  2261. pods to nodes that satisfy the affinity expressions
  2262. specified by this field, but it may choose a node
  2263. that violates one or more of the expressions. The
  2264. node that is most preferred is the one with the
  2265. greatest sum of weights, i.e. for each node that
  2266. meets all of the scheduling requirements (resource
  2267. request, requiredDuringScheduling affinity expressions,
  2268. etc.), compute a sum by iterating through the elements
  2269. of this field and adding "weight" to the sum if
  2270. the node has pods which matches the corresponding
  2271. podAffinityTerm; the node(s) with the highest sum
  2272. are the most preferred.
  2273. items:
  2274. description: The weights of all of the matched WeightedPodAffinityTerm
  2275. fields are added per-node to find the most preferred
  2276. node(s)
  2277. properties:
  2278. podAffinityTerm:
  2279. description: Required. A pod affinity term,
  2280. associated with the corresponding weight.
  2281. properties:
  2282. labelSelector:
  2283. description: A label query over a set of
  2284. resources, in this case pods.
  2285. properties:
  2286. matchExpressions:
  2287. description: matchExpressions is a list
  2288. of label selector requirements. The
  2289. requirements are ANDed.
  2290. items:
  2291. description: A label selector requirement
  2292. is a selector that contains values,
  2293. a key, and an operator that relates
  2294. the key and values.
  2295. properties:
  2296. key:
  2297. description: key is the label
  2298. key that the selector applies
  2299. to.
  2300. type: string
  2301. operator:
  2302. description: operator represents
  2303. a key's relationship to a set
  2304. of values. Valid operators are
  2305. In, NotIn, Exists and DoesNotExist.
  2306. type: string
  2307. values:
  2308. description: values is an array
  2309. of string values. If the operator
  2310. is In or NotIn, the values array
  2311. must be non-empty. If the operator
  2312. is Exists or DoesNotExist, the
  2313. values array must be empty.
  2314. This array is replaced during
  2315. a strategic merge patch.
  2316. items:
  2317. type: string
  2318. type: array
  2319. required:
  2320. - key
  2321. - operator
  2322. type: object
  2323. type: array
  2324. matchLabels:
  2325. additionalProperties:
  2326. type: string
  2327. description: matchLabels is a map of
  2328. {key,value} pairs. A single {key,value}
  2329. in the matchLabels map is equivalent
  2330. to an element of matchExpressions,
  2331. whose key field is "key", the operator
  2332. is "In", and the values array contains
  2333. only "value". The requirements are
  2334. ANDed.
  2335. type: object
  2336. type: object
  2337. namespaceSelector:
  2338. description: A label query over the set
  2339. of namespaces that the term applies to.
  2340. The term is applied to the union of the
  2341. namespaces selected by this field and
  2342. the ones listed in the namespaces field.
  2343. null selector and null or empty namespaces
  2344. list means "this pod's namespace". An
  2345. empty selector ({}) matches all namespaces.
  2346. properties:
  2347. matchExpressions:
  2348. description: matchExpressions is a list
  2349. of label selector requirements. The
  2350. requirements are ANDed.
  2351. items:
  2352. description: A label selector requirement
  2353. is a selector that contains values,
  2354. a key, and an operator that relates
  2355. the key and values.
  2356. properties:
  2357. key:
  2358. description: key is the label
  2359. key that the selector applies
  2360. to.
  2361. type: string
  2362. operator:
  2363. description: operator represents
  2364. a key's relationship to a set
  2365. of values. Valid operators are
  2366. In, NotIn, Exists and DoesNotExist.
  2367. type: string
  2368. values:
  2369. description: values is an array
  2370. of string values. If the operator
  2371. is In or NotIn, the values array
  2372. must be non-empty. If the operator
  2373. is Exists or DoesNotExist, the
  2374. values array must be empty.
  2375. This array is replaced during
  2376. a strategic merge patch.
  2377. items:
  2378. type: string
  2379. type: array
  2380. required:
  2381. - key
  2382. - operator
  2383. type: object
  2384. type: array
  2385. matchLabels:
  2386. additionalProperties:
  2387. type: string
  2388. description: matchLabels is a map of
  2389. {key,value} pairs. A single {key,value}
  2390. in the matchLabels map is equivalent
  2391. to an element of matchExpressions,
  2392. whose key field is "key", the operator
  2393. is "In", and the values array contains
  2394. only "value". The requirements are
  2395. ANDed.
  2396. type: object
  2397. type: object
  2398. namespaces:
  2399. description: namespaces specifies a static
  2400. list of namespace names that the term
  2401. applies to. The term is applied to the
  2402. union of the namespaces listed in this
  2403. field and the ones selected by namespaceSelector.
  2404. null or empty namespaces list and null
  2405. namespaceSelector means "this pod's namespace".
  2406. items:
  2407. type: string
  2408. type: array
  2409. topologyKey:
  2410. description: This pod should be co-located
  2411. (affinity) or not co-located (anti-affinity)
  2412. with the pods matching the labelSelector
  2413. in the specified namespaces, where co-located
  2414. is defined as running on a node whose
  2415. value of the label with key topologyKey
  2416. matches that of any node on which any
  2417. of the selected pods is running. Empty
  2418. topologyKey is not allowed.
  2419. type: string
  2420. required:
  2421. - topologyKey
  2422. type: object
  2423. weight:
  2424. description: weight associated with matching
  2425. the corresponding podAffinityTerm, in the
  2426. range 1-100.
  2427. format: int32
  2428. type: integer
  2429. required:
  2430. - podAffinityTerm
  2431. - weight
  2432. type: object
  2433. type: array
  2434. requiredDuringSchedulingIgnoredDuringExecution:
  2435. description: If the affinity requirements specified
  2436. by this field are not met at scheduling time, the
  2437. pod will not be scheduled onto the node. If the
  2438. affinity requirements specified by this field cease
  2439. to be met at some point during pod execution (e.g.
  2440. due to a pod label update), the system may or may
  2441. not try to eventually evict the pod from its node.
  2442. When there are multiple elements, the lists of nodes
  2443. corresponding to each podAffinityTerm are intersected,
  2444. i.e. all terms must be satisfied.
  2445. items:
  2446. description: Defines a set of pods (namely those
  2447. matching the labelSelector relative to the given
  2448. namespace(s)) that this pod should be co-located
  2449. (affinity) or not co-located (anti-affinity) with,
  2450. where co-located is defined as running on a node
  2451. whose value of the label with key <topologyKey>
  2452. matches that of any node on which a pod of the
  2453. set of pods is running
  2454. properties:
  2455. labelSelector:
  2456. description: A label query over a set of resources,
  2457. in this case pods.
  2458. properties:
  2459. matchExpressions:
  2460. description: matchExpressions is a list
  2461. of label selector requirements. The requirements
  2462. are ANDed.
  2463. items:
  2464. description: A label selector requirement
  2465. is a selector that contains values,
  2466. a key, and an operator that relates
  2467. the key and values.
  2468. properties:
  2469. key:
  2470. description: key is the label key
  2471. that the selector applies to.
  2472. type: string
  2473. operator:
  2474. description: operator represents a
  2475. key's relationship to a set of values.
  2476. Valid operators are In, NotIn, Exists
  2477. and DoesNotExist.
  2478. type: string
  2479. values:
  2480. description: values is an array of
  2481. string values. If the operator is
  2482. In or NotIn, the values array must
  2483. be non-empty. If the operator is
  2484. Exists or DoesNotExist, the values
  2485. array must be empty. This array
  2486. is replaced during a strategic merge
  2487. patch.
  2488. items:
  2489. type: string
  2490. type: array
  2491. required:
  2492. - key
  2493. - operator
  2494. type: object
  2495. type: array
  2496. matchLabels:
  2497. additionalProperties:
  2498. type: string
  2499. description: matchLabels is a map of {key,value}
  2500. pairs. A single {key,value} in the matchLabels
  2501. map is equivalent to an element of matchExpressions,
  2502. whose key field is "key", the operator
  2503. is "In", and the values array contains
  2504. only "value". The requirements are ANDed.
  2505. type: object
  2506. type: object
  2507. namespaceSelector:
  2508. description: A label query over the set of namespaces
  2509. that the term applies to. The term is applied
  2510. to the union of the namespaces selected by
  2511. this field and the ones listed in the namespaces
  2512. field. null selector and null or empty namespaces
  2513. list means "this pod's namespace". An empty
  2514. selector ({}) matches all namespaces.
  2515. properties:
  2516. matchExpressions:
  2517. description: matchExpressions is a list
  2518. of label selector requirements. The requirements
  2519. are ANDed.
  2520. items:
  2521. description: A label selector requirement
  2522. is a selector that contains values,
  2523. a key, and an operator that relates
  2524. the key and values.
  2525. properties:
  2526. key:
  2527. description: key is the label key
  2528. that the selector applies to.
  2529. type: string
  2530. operator:
  2531. description: operator represents a
  2532. key's relationship to a set of values.
  2533. Valid operators are In, NotIn, Exists
  2534. and DoesNotExist.
  2535. type: string
  2536. values:
  2537. description: values is an array of
  2538. string values. If the operator is
  2539. In or NotIn, the values array must
  2540. be non-empty. If the operator is
  2541. Exists or DoesNotExist, the values
  2542. array must be empty. This array
  2543. is replaced during a strategic merge
  2544. patch.
  2545. items:
  2546. type: string
  2547. type: array
  2548. required:
  2549. - key
  2550. - operator
  2551. type: object
  2552. type: array
  2553. matchLabels:
  2554. additionalProperties:
  2555. type: string
  2556. description: matchLabels is a map of {key,value}
  2557. pairs. A single {key,value} in the matchLabels
  2558. map is equivalent to an element of matchExpressions,
  2559. whose key field is "key", the operator
  2560. is "In", and the values array contains
  2561. only "value". The requirements are ANDed.
  2562. type: object
  2563. type: object
  2564. namespaces:
  2565. description: namespaces specifies a static list
  2566. of namespace names that the term applies to.
  2567. The term is applied to the union of the namespaces
  2568. listed in this field and the ones selected
  2569. by namespaceSelector. null or empty namespaces
  2570. list and null namespaceSelector means "this
  2571. pod's namespace".
  2572. items:
  2573. type: string
  2574. type: array
  2575. topologyKey:
  2576. description: This pod should be co-located (affinity)
  2577. or not co-located (anti-affinity) with the
  2578. pods matching the labelSelector in the specified
  2579. namespaces, where co-located is defined as
  2580. running on a node whose value of the label
  2581. with key topologyKey matches that of any node
  2582. on which any of the selected pods is running.
  2583. Empty topologyKey is not allowed.
  2584. type: string
  2585. required:
  2586. - topologyKey
  2587. type: object
  2588. type: array
  2589. type: object
  2590. podAntiAffinity:
  2591. description: Describes pod anti-affinity scheduling rules
  2592. (e.g. avoid putting this pod in the same node, zone,
  2593. etc. as some other pod(s)).
  2594. properties:
  2595. preferredDuringSchedulingIgnoredDuringExecution:
  2596. description: The scheduler will prefer to schedule
  2597. pods to nodes that satisfy the anti-affinity expressions
  2598. specified by this field, but it may choose a node
  2599. that violates one or more of the expressions. The
  2600. node that is most preferred is the one with the
  2601. greatest sum of weights, i.e. for each node that
  2602. meets all of the scheduling requirements (resource
  2603. request, requiredDuringScheduling anti-affinity
  2604. expressions, etc.), compute a sum by iterating through
  2605. the elements of this field and adding "weight" to
  2606. the sum if the node has pods which matches the corresponding
  2607. podAffinityTerm; the node(s) with the highest sum
  2608. are the most preferred.
  2609. items:
  2610. description: The weights of all of the matched WeightedPodAffinityTerm
  2611. fields are added per-node to find the most preferred
  2612. node(s)
  2613. properties:
  2614. podAffinityTerm:
  2615. description: Required. A pod affinity term,
  2616. associated with the corresponding weight.
  2617. properties:
  2618. labelSelector:
  2619. description: A label query over a set of
  2620. resources, in this case pods.
  2621. properties:
  2622. matchExpressions:
  2623. description: matchExpressions is a list
  2624. of label selector requirements. The
  2625. requirements are ANDed.
  2626. items:
  2627. description: A label selector requirement
  2628. is a selector that contains values,
  2629. a key, and an operator that relates
  2630. the key and values.
  2631. properties:
  2632. key:
  2633. description: key is the label
  2634. key that the selector applies
  2635. to.
  2636. type: string
  2637. operator:
  2638. description: operator represents
  2639. a key's relationship to a set
  2640. of values. Valid operators are
  2641. In, NotIn, Exists and DoesNotExist.
  2642. type: string
  2643. values:
  2644. description: values is an array
  2645. of string values. If the operator
  2646. is In or NotIn, the values array
  2647. must be non-empty. If the operator
  2648. is Exists or DoesNotExist, the
  2649. values array must be empty.
  2650. This array is replaced during
  2651. a strategic merge patch.
  2652. items:
  2653. type: string
  2654. type: array
  2655. required:
  2656. - key
  2657. - operator
  2658. type: object
  2659. type: array
  2660. matchLabels:
  2661. additionalProperties:
  2662. type: string
  2663. description: matchLabels is a map of
  2664. {key,value} pairs. A single {key,value}
  2665. in the matchLabels map is equivalent
  2666. to an element of matchExpressions,
  2667. whose key field is "key", the operator
  2668. is "In", and the values array contains
  2669. only "value". The requirements are
  2670. ANDed.
  2671. type: object
  2672. type: object
  2673. namespaceSelector:
  2674. description: A label query over the set
  2675. of namespaces that the term applies to.
  2676. The term is applied to the union of the
  2677. namespaces selected by this field and
  2678. the ones listed in the namespaces field.
  2679. null selector and null or empty namespaces
  2680. list means "this pod's namespace". An
  2681. empty selector ({}) matches all namespaces.
  2682. properties:
  2683. matchExpressions:
  2684. description: matchExpressions is a list
  2685. of label selector requirements. The
  2686. requirements are ANDed.
  2687. items:
  2688. description: A label selector requirement
  2689. is a selector that contains values,
  2690. a key, and an operator that relates
  2691. the key and values.
  2692. properties:
  2693. key:
  2694. description: key is the label
  2695. key that the selector applies
  2696. to.
  2697. type: string
  2698. operator:
  2699. description: operator represents
  2700. a key's relationship to a set
  2701. of values. Valid operators are
  2702. In, NotIn, Exists and DoesNotExist.
  2703. type: string
  2704. values:
  2705. description: values is an array
  2706. of string values. If the operator
  2707. is In or NotIn, the values array
  2708. must be non-empty. If the operator
  2709. is Exists or DoesNotExist, the
  2710. values array must be empty.
  2711. This array is replaced during
  2712. a strategic merge patch.
  2713. items:
  2714. type: string
  2715. type: array
  2716. required:
  2717. - key
  2718. - operator
  2719. type: object
  2720. type: array
  2721. matchLabels:
  2722. additionalProperties:
  2723. type: string
  2724. description: matchLabels is a map of
  2725. {key,value} pairs. A single {key,value}
  2726. in the matchLabels map is equivalent
  2727. to an element of matchExpressions,
  2728. whose key field is "key", the operator
  2729. is "In", and the values array contains
  2730. only "value". The requirements are
  2731. ANDed.
  2732. type: object
  2733. type: object
  2734. namespaces:
  2735. description: namespaces specifies a static
  2736. list of namespace names that the term
  2737. applies to. The term is applied to the
  2738. union of the namespaces listed in this
  2739. field and the ones selected by namespaceSelector.
  2740. null or empty namespaces list and null
  2741. namespaceSelector means "this pod's namespace".
  2742. items:
  2743. type: string
  2744. type: array
  2745. topologyKey:
  2746. description: This pod should be co-located
  2747. (affinity) or not co-located (anti-affinity)
  2748. with the pods matching the labelSelector
  2749. in the specified namespaces, where co-located
  2750. is defined as running on a node whose
  2751. value of the label with key topologyKey
  2752. matches that of any node on which any
  2753. of the selected pods is running. Empty
  2754. topologyKey is not allowed.
  2755. type: string
  2756. required:
  2757. - topologyKey
  2758. type: object
  2759. weight:
  2760. description: weight associated with matching
  2761. the corresponding podAffinityTerm, in the
  2762. range 1-100.
  2763. format: int32
  2764. type: integer
  2765. required:
  2766. - podAffinityTerm
  2767. - weight
  2768. type: object
  2769. type: array
  2770. requiredDuringSchedulingIgnoredDuringExecution:
  2771. description: If the anti-affinity requirements specified
  2772. by this field are not met at scheduling time, the
  2773. pod will not be scheduled onto the node. If the
  2774. anti-affinity requirements specified by this field
  2775. cease to be met at some point during pod execution
  2776. (e.g. due to a pod label update), the system may
  2777. or may not try to eventually evict the pod from
  2778. its node. When there are multiple elements, the
  2779. lists of nodes corresponding to each podAffinityTerm
  2780. are intersected, i.e. all terms must be satisfied.
  2781. items:
  2782. description: Defines a set of pods (namely those
  2783. matching the labelSelector relative to the given
  2784. namespace(s)) that this pod should be co-located
  2785. (affinity) or not co-located (anti-affinity) with,
  2786. where co-located is defined as running on a node
  2787. whose value of the label with key <topologyKey>
  2788. matches that of any node on which a pod of the
  2789. set of pods is running
  2790. properties:
  2791. labelSelector:
  2792. description: A label query over a set of resources,
  2793. in this case pods.
  2794. properties:
  2795. matchExpressions:
  2796. description: matchExpressions is a list
  2797. of label selector requirements. The requirements
  2798. are ANDed.
  2799. items:
  2800. description: A label selector requirement
  2801. is a selector that contains values,
  2802. a key, and an operator that relates
  2803. the key and values.
  2804. properties:
  2805. key:
  2806. description: key is the label key
  2807. that the selector applies to.
  2808. type: string
  2809. operator:
  2810. description: operator represents a
  2811. key's relationship to a set of values.
  2812. Valid operators are In, NotIn, Exists
  2813. and DoesNotExist.
  2814. type: string
  2815. values:
  2816. description: values is an array of
  2817. string values. If the operator is
  2818. In or NotIn, the values array must
  2819. be non-empty. If the operator is
  2820. Exists or DoesNotExist, the values
  2821. array must be empty. This array
  2822. is replaced during a strategic merge
  2823. patch.
  2824. items:
  2825. type: string
  2826. type: array
  2827. required:
  2828. - key
  2829. - operator
  2830. type: object
  2831. type: array
  2832. matchLabels:
  2833. additionalProperties:
  2834. type: string
  2835. description: matchLabels is a map of {key,value}
  2836. pairs. A single {key,value} in the matchLabels
  2837. map is equivalent to an element of matchExpressions,
  2838. whose key field is "key", the operator
  2839. is "In", and the values array contains
  2840. only "value". The requirements are ANDed.
  2841. type: object
  2842. type: object
  2843. namespaceSelector:
  2844. description: A label query over the set of namespaces
  2845. that the term applies to. The term is applied
  2846. to the union of the namespaces selected by
  2847. this field and the ones listed in the namespaces
  2848. field. null selector and null or empty namespaces
  2849. list means "this pod's namespace". An empty
  2850. selector ({}) matches all namespaces.
  2851. properties:
  2852. matchExpressions:
  2853. description: matchExpressions is a list
  2854. of label selector requirements. The requirements
  2855. are ANDed.
  2856. items:
  2857. description: A label selector requirement
  2858. is a selector that contains values,
  2859. a key, and an operator that relates
  2860. the key and values.
  2861. properties:
  2862. key:
  2863. description: key is the label key
  2864. that the selector applies to.
  2865. type: string
  2866. operator:
  2867. description: operator represents a
  2868. key's relationship to a set of values.
  2869. Valid operators are In, NotIn, Exists
  2870. and DoesNotExist.
  2871. type: string
  2872. values:
  2873. description: values is an array of
  2874. string values. If the operator is
  2875. In or NotIn, the values array must
  2876. be non-empty. If the operator is
  2877. Exists or DoesNotExist, the values
  2878. array must be empty. This array
  2879. is replaced during a strategic merge
  2880. patch.
  2881. items:
  2882. type: string
  2883. type: array
  2884. required:
  2885. - key
  2886. - operator
  2887. type: object
  2888. type: array
  2889. matchLabels:
  2890. additionalProperties:
  2891. type: string
  2892. description: matchLabels is a map of {key,value}
  2893. pairs. A single {key,value} in the matchLabels
  2894. map is equivalent to an element of matchExpressions,
  2895. whose key field is "key", the operator
  2896. is "In", and the values array contains
  2897. only "value". The requirements are ANDed.
  2898. type: object
  2899. type: object
  2900. namespaces:
  2901. description: namespaces specifies a static list
  2902. of namespace names that the term applies to.
  2903. The term is applied to the union of the namespaces
  2904. listed in this field and the ones selected
  2905. by namespaceSelector. null or empty namespaces
  2906. list and null namespaceSelector means "this
  2907. pod's namespace".
  2908. items:
  2909. type: string
  2910. type: array
  2911. topologyKey:
  2912. description: This pod should be co-located (affinity)
  2913. or not co-located (anti-affinity) with the
  2914. pods matching the labelSelector in the specified
  2915. namespaces, where co-located is defined as
  2916. running on a node whose value of the label
  2917. with key topologyKey matches that of any node
  2918. on which any of the selected pods is running.
  2919. Empty topologyKey is not allowed.
  2920. type: string
  2921. required:
  2922. - topologyKey
  2923. type: object
  2924. type: array
  2925. type: object
  2926. type: object
  2927. nodeSelector:
  2928. additionalProperties:
  2929. type: string
  2930. description: 'nodeSelector is the node selector applied to
  2931. the relevant kind of pods It specifies a map of key-value
  2932. pairs: for the pod to be eligible to run on a node, the
  2933. node must have each of the indicated key-value pairs as
  2934. labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
  2935. type: object
  2936. tolerations:
  2937. description: tolerations is a list of tolerations applied
  2938. to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  2939. for more info. These are additional tolerations other than
  2940. default ones.
  2941. items:
  2942. description: The pod this Toleration is attached to tolerates
  2943. any taint that matches the triple <key,value,effect> using
  2944. the matching operator <operator>.
  2945. properties:
  2946. effect:
  2947. description: Effect indicates the taint effect to match.
  2948. Empty means match all taint effects. When specified,
  2949. allowed values are NoSchedule, PreferNoSchedule and
  2950. NoExecute.
  2951. type: string
  2952. key:
  2953. description: Key is the taint key that the toleration
  2954. applies to. Empty means match all taint keys. If the
  2955. key is empty, operator must be Exists; this combination
  2956. means to match all values and all keys.
  2957. type: string
  2958. operator:
  2959. description: Operator represents a key's relationship
  2960. to the value. Valid operators are Exists and Equal.
  2961. Defaults to Equal. Exists is equivalent to wildcard
  2962. for value, so that a pod can tolerate all taints of
  2963. a particular category.
  2964. type: string
  2965. tolerationSeconds:
  2966. description: TolerationSeconds represents the period
  2967. of time the toleration (which must be of effect NoExecute,
  2968. otherwise this field is ignored) tolerates the taint.
  2969. By default, it is not set, which means tolerate the
  2970. taint forever (do not evict). Zero and negative values
  2971. will be treated as 0 (evict immediately) by the system.
  2972. format: int64
  2973. type: integer
  2974. value:
  2975. description: Value is the taint value the toleration
  2976. matches to. If the operator is Exists, the value should
  2977. be empty, otherwise just a regular string.
  2978. type: string
  2979. type: object
  2980. type: array
  2981. type: object
  2982. replicas:
  2983. description: 'replicas indicates how many replicas should be created
  2984. for each KubeVirt infrastructure component (like virt-api or
  2985. virt-controller). Defaults to 2. WARNING: this is an advanced
  2986. feature that prevents auto-scaling for core kubevirt components.
  2987. Please use with caution!'
  2988. type: integer
  2989. type: object
  2990. type: object
  2991. status:
  2992. description: KubeVirtStatus represents information pertaining to a KubeVirt
  2993. deployment.
  2994. properties:
  2995. conditions:
  2996. items:
  2997. description: KubeVirtCondition represents a condition of a KubeVirt
  2998. deployment
  2999. properties:
  3000. lastProbeTime:
  3001. format: date-time
  3002. nullable: true
  3003. type: string
  3004. lastTransitionTime:
  3005. format: date-time
  3006. nullable: true
  3007. type: string
  3008. message:
  3009. type: string
  3010. reason:
  3011. type: string
  3012. status:
  3013. type: string
  3014. type:
  3015. type: string
  3016. required:
  3017. - status
  3018. - type
  3019. type: object
  3020. type: array
  3021. defaultArchitecture:
  3022. type: string
  3023. generations:
  3024. items:
  3025. description: GenerationStatus keeps track of the generation for
  3026. a given resource so that decisions about forced updates can be
  3027. made.
  3028. properties:
  3029. group:
  3030. description: group is the group of the thing you're tracking
  3031. type: string
  3032. hash:
  3033. description: hash is an optional field set for resources without
  3034. generation that are content sensitive like secrets and configmaps
  3035. type: string
  3036. lastGeneration:
  3037. description: lastGeneration is the last generation of the workload
  3038. controller involved
  3039. format: int64
  3040. type: integer
  3041. name:
  3042. description: name is the name of the thing you're tracking
  3043. type: string
  3044. namespace:
  3045. description: namespace is where the thing you're tracking is
  3046. type: string
  3047. resource:
  3048. description: resource is the resource type of the thing you're
  3049. tracking
  3050. type: string
  3051. required:
  3052. - group
  3053. - lastGeneration
  3054. - name
  3055. - resource
  3056. type: object
  3057. type: array
  3058. x-kubernetes-list-type: atomic
  3059. observedDeploymentConfig:
  3060. type: string
  3061. observedDeploymentID:
  3062. type: string
  3063. observedGeneration:
  3064. format: int64
  3065. type: integer
  3066. observedKubeVirtRegistry:
  3067. type: string
  3068. observedKubeVirtVersion:
  3069. type: string
  3070. operatorVersion:
  3071. type: string
  3072. outdatedVirtualMachineInstanceWorkloads:
  3073. type: integer
  3074. phase:
  3075. description: KubeVirtPhase is a label for the phase of a KubeVirt
  3076. deployment at the current time.
  3077. type: string
  3078. targetDeploymentConfig:
  3079. type: string
  3080. targetDeploymentID:
  3081. type: string
  3082. targetKubeVirtRegistry:
  3083. type: string
  3084. targetKubeVirtVersion:
  3085. type: string
  3086. type: object
  3087. required:
  3088. - spec
  3089. type: object
  3090. served: true
  3091. storage: true
  3092. subresources:
  3093. status: {}
  3094. - additionalPrinterColumns:
  3095. - jsonPath: .metadata.creationTimestamp
  3096. name: Age
  3097. type: date
  3098. - jsonPath: .status.phase
  3099. name: Phase
  3100. type: string
  3101. deprecated: true
  3102. deprecationWarning: kubevirt.io/v1alpha3 is now deprecated and will be removed
  3103. in a future release.
  3104. name: v1alpha3
  3105. schema:
  3106. openAPIV3Schema:
  3107. description: KubeVirt represents the object deploying all KubeVirt resources
  3108. properties:
  3109. apiVersion:
  3110. description: 'APIVersion defines the versioned schema of this representation
  3111. of an object. Servers should convert recognized schemas to the latest
  3112. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3113. type: string
  3114. kind:
  3115. description: 'Kind is a string value representing the REST resource this
  3116. object represents. Servers may infer this from the endpoint the client
  3117. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3118. type: string
  3119. metadata:
  3120. type: object
  3121. spec:
  3122. properties:
  3123. certificateRotateStrategy:
  3124. properties:
  3125. selfSigned:
  3126. properties:
  3127. ca:
  3128. description: CA configuration CA certs are kept in the CA
  3129. bundle as long as they are valid
  3130. properties:
  3131. duration:
  3132. description: The requested 'duration' (i.e. lifetime)
  3133. of the Certificate.
  3134. type: string
  3135. renewBefore:
  3136. description: The amount of time before the currently issued
  3137. certificate's "notAfter" time that we will begin to
  3138. attempt to renew the certificate.
  3139. type: string
  3140. type: object
  3141. caOverlapInterval:
  3142. description: Deprecated. Use CA.Duration and CA.RenewBefore
  3143. instead
  3144. type: string
  3145. caRotateInterval:
  3146. description: Deprecated. Use CA.Duration instead
  3147. type: string
  3148. certRotateInterval:
  3149. description: Deprecated. Use Server.Duration instead
  3150. type: string
  3151. server:
  3152. description: Server configuration Certs are rotated and discarded
  3153. properties:
  3154. duration:
  3155. description: The requested 'duration' (i.e. lifetime)
  3156. of the Certificate.
  3157. type: string
  3158. renewBefore:
  3159. description: The amount of time before the currently issued
  3160. certificate's "notAfter" time that we will begin to
  3161. attempt to renew the certificate.
  3162. type: string
  3163. type: object
  3164. type: object
  3165. type: object
  3166. configuration:
  3167. description: holds kubevirt configurations. same as the virt-configMap
  3168. properties:
  3169. additionalGuestMemoryOverheadRatio:
  3170. description: AdditionalGuestMemoryOverheadRatio can be used to
  3171. increase the virtualization infrastructure overhead. This is
  3172. useful, since the calculation of this overhead is not accurate
  3173. and cannot be entirely known in advance. The ratio that is being
  3174. set determines by which factor to increase the overhead calculated
  3175. by Kubevirt. A higher ratio means that the VMs would be less
  3176. compromised by node pressures, but would mean that fewer VMs
  3177. could be scheduled to a node. If not set, the default is 1.
  3178. type: string
  3179. apiConfiguration:
  3180. description: ReloadableComponentConfiguration holds all generic
  3181. k8s configuration options which can be reloaded by components
  3182. without requiring a restart.
  3183. properties:
  3184. restClient:
  3185. description: RestClient can be used to tune certain aspects
  3186. of the k8s client in use.
  3187. properties:
  3188. rateLimiter:
  3189. description: RateLimiter allows selecting and configuring
  3190. different rate limiters for the k8s client.
  3191. properties:
  3192. tokenBucketRateLimiter:
  3193. properties:
  3194. burst:
  3195. description: Maximum burst for throttle. If it's
  3196. zero, the component default will be used
  3197. type: integer
  3198. qps:
  3199. description: QPS indicates the maximum QPS to
  3200. the apiserver from this client. If it's zero,
  3201. the component default will be used
  3202. type: number
  3203. required:
  3204. - burst
  3205. - qps
  3206. type: object
  3207. type: object
  3208. type: object
  3209. type: object
  3210. architectureConfiguration:
  3211. properties:
  3212. amd64:
  3213. properties:
  3214. emulatedMachines:
  3215. items:
  3216. type: string
  3217. type: array
  3218. x-kubernetes-list-type: atomic
  3219. machineType:
  3220. type: string
  3221. ovmfPath:
  3222. type: string
  3223. type: object
  3224. arm64:
  3225. properties:
  3226. emulatedMachines:
  3227. items:
  3228. type: string
  3229. type: array
  3230. x-kubernetes-list-type: atomic
  3231. machineType:
  3232. type: string
  3233. ovmfPath:
  3234. type: string
  3235. type: object
  3236. defaultArchitecture:
  3237. type: string
  3238. ppc64le:
  3239. properties:
  3240. emulatedMachines:
  3241. items:
  3242. type: string
  3243. type: array
  3244. x-kubernetes-list-type: atomic
  3245. machineType:
  3246. type: string
  3247. ovmfPath:
  3248. type: string
  3249. type: object
  3250. type: object
  3251. autoCPULimitNamespaceLabelSelector:
  3252. description: When set, AutoCPULimitNamespaceLabelSelector will
  3253. set a CPU limit on virt-launcher for VMIs running inside namespaces
  3254. that match the label selector. The CPU limit will equal the
  3255. number of requested vCPUs. This setting does not apply to VMIs
  3256. with dedicated CPUs.
  3257. properties:
  3258. matchExpressions:
  3259. description: matchExpressions is a list of label selector
  3260. requirements. The requirements are ANDed.
  3261. items:
  3262. description: A label selector requirement is a selector
  3263. that contains values, a key, and an operator that relates
  3264. the key and values.
  3265. properties:
  3266. key:
  3267. description: key is the label key that the selector
  3268. applies to.
  3269. type: string
  3270. operator:
  3271. description: operator represents a key's relationship
  3272. to a set of values. Valid operators are In, NotIn,
  3273. Exists and DoesNotExist.
  3274. type: string
  3275. values:
  3276. description: values is an array of string values. If
  3277. the operator is In or NotIn, the values array must
  3278. be non-empty. If the operator is Exists or DoesNotExist,
  3279. the values array must be empty. This array is replaced
  3280. during a strategic merge patch.
  3281. items:
  3282. type: string
  3283. type: array
  3284. required:
  3285. - key
  3286. - operator
  3287. type: object
  3288. type: array
  3289. matchLabels:
  3290. additionalProperties:
  3291. type: string
  3292. description: matchLabels is a map of {key,value} pairs. A
  3293. single {key,value} in the matchLabels map is equivalent
  3294. to an element of matchExpressions, whose key field is "key",
  3295. the operator is "In", and the values array contains only
  3296. "value". The requirements are ANDed.
  3297. type: object
  3298. type: object
  3299. controllerConfiguration:
  3300. description: ReloadableComponentConfiguration holds all generic
  3301. k8s configuration options which can be reloaded by components
  3302. without requiring a restart.
  3303. properties:
  3304. restClient:
  3305. description: RestClient can be used to tune certain aspects
  3306. of the k8s client in use.
  3307. properties:
  3308. rateLimiter:
  3309. description: RateLimiter allows selecting and configuring
  3310. different rate limiters for the k8s client.
  3311. properties:
  3312. tokenBucketRateLimiter:
  3313. properties:
  3314. burst:
  3315. description: Maximum burst for throttle. If it's
  3316. zero, the component default will be used
  3317. type: integer
  3318. qps:
  3319. description: QPS indicates the maximum QPS to
  3320. the apiserver from this client. If it's zero,
  3321. the component default will be used
  3322. type: number
  3323. required:
  3324. - burst
  3325. - qps
  3326. type: object
  3327. type: object
  3328. type: object
  3329. type: object
  3330. cpuModel:
  3331. type: string
  3332. cpuRequest:
  3333. anyOf:
  3334. - type: integer
  3335. - type: string
  3336. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3337. x-kubernetes-int-or-string: true
  3338. defaultRuntimeClass:
  3339. type: string
  3340. developerConfiguration:
  3341. description: DeveloperConfiguration holds developer options
  3342. properties:
  3343. cpuAllocationRatio:
  3344. description: 'For each requested virtual CPU, CPUAllocationRatio
  3345. defines how much physical CPU to request per VMI from the
  3346. hosting node. The value is in fraction of a CPU thread (or
  3347. core on non-hyperthreaded nodes). For example, a value of
  3348. 1 means 1 physical CPU thread per VMI CPU thread. A value
  3349. of 100 would be 1% of a physical thread allocated for each
  3350. requested VMI thread. This option has no effect on VMIs
  3351. that request dedicated CPUs. More information at: https://kubevirt.io/user-guide/operations/node_overcommit/#node-cpu-allocation-ratio
  3352. Defaults to 10'
  3353. type: integer
  3354. diskVerification:
  3355. description: DiskVerification holds container disks verification
  3356. limits
  3357. properties:
  3358. memoryLimit:
  3359. anyOf:
  3360. - type: integer
  3361. - type: string
  3362. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3363. x-kubernetes-int-or-string: true
  3364. required:
  3365. - memoryLimit
  3366. type: object
  3367. featureGates:
  3368. description: FeatureGates is the list of experimental features
  3369. to enable. Defaults to none
  3370. items:
  3371. type: string
  3372. type: array
  3373. logVerbosity:
  3374. description: LogVerbosity sets log verbosity level of various
  3375. components
  3376. properties:
  3377. nodeVerbosity:
  3378. additionalProperties:
  3379. type: integer
  3380. description: NodeVerbosity represents a map of nodes with
  3381. a specific verbosity level
  3382. type: object
  3383. virtAPI:
  3384. type: integer
  3385. virtController:
  3386. type: integer
  3387. virtHandler:
  3388. type: integer
  3389. virtLauncher:
  3390. type: integer
  3391. virtOperator:
  3392. type: integer
  3393. type: object
  3394. memoryOvercommit:
  3395. description: MemoryOvercommit is the percentage of memory
  3396. we want to give VMIs compared to the amount given to its
  3397. parent pod (virt-launcher). For example, a value of 102
  3398. means the VMI will "see" 2% more memory than its parent
  3399. pod. Values under 100 are effectively "undercommits". Overcommits
  3400. can lead to memory exhaustion, which in turn can lead to
  3401. crashes. Use carefully. Defaults to 100
  3402. type: integer
  3403. minimumClusterTSCFrequency:
  3404. description: Allow overriding the automatically determined
  3405. minimum TSC frequency of the cluster and fixate the minimum
  3406. to this frequency.
  3407. format: int64
  3408. type: integer
  3409. minimumReservePVCBytes:
  3410. description: MinimumReservePVCBytes is the amount of space,
  3411. in bytes, to leave unused on disks. Defaults to 131072 (128KiB)
  3412. format: int64
  3413. type: integer
  3414. nodeSelectors:
  3415. additionalProperties:
  3416. type: string
  3417. description: NodeSelectors allows restricting VMI creation
  3418. to nodes that match a set of labels. Defaults to none
  3419. type: object
  3420. pvcTolerateLessSpaceUpToPercent:
  3421. description: LessPVCSpaceToleration determines how much smaller,
  3422. in percentage, disk PVCs are allowed to be compared to the
  3423. requested size (to account for various overheads). Defaults
  3424. to 10
  3425. type: integer
  3426. useEmulation:
  3427. description: UseEmulation can be set to true to allow fallback
  3428. to software emulation in case hardware-assisted emulation
  3429. is not available. Defaults to false
  3430. type: boolean
  3431. type: object
  3432. emulatedMachines:
  3433. items:
  3434. type: string
  3435. type: array
  3436. evictionStrategy:
  3437. description: EvictionStrategy defines at the cluster level if
  3438. the VirtualMachineInstance should be migrated instead of shut-off
  3439. in case of a node drain. If the VirtualMachineInstance specific
  3440. field is set it overrides the cluster level one.
  3441. type: string
  3442. handlerConfiguration:
  3443. description: ReloadableComponentConfiguration holds all generic
  3444. k8s configuration options which can be reloaded by components
  3445. without requiring a restart.
  3446. properties:
  3447. restClient:
  3448. description: RestClient can be used to tune certain aspects
  3449. of the k8s client in use.
  3450. properties:
  3451. rateLimiter:
  3452. description: RateLimiter allows selecting and configuring
  3453. different rate limiters for the k8s client.
  3454. properties:
  3455. tokenBucketRateLimiter:
  3456. properties:
  3457. burst:
  3458. description: Maximum burst for throttle. If it's
  3459. zero, the component default will be used
  3460. type: integer
  3461. qps:
  3462. description: QPS indicates the maximum QPS to
  3463. the apiserver from this client. If it's zero,
  3464. the component default will be used
  3465. type: number
  3466. required:
  3467. - burst
  3468. - qps
  3469. type: object
  3470. type: object
  3471. type: object
  3472. type: object
  3473. imagePullPolicy:
  3474. description: PullPolicy describes a policy for if/when to pull
  3475. a container image
  3476. type: string
  3477. ksmConfiguration:
  3478. description: KSMConfiguration holds the information regarding
  3479. the enabling the KSM in the nodes (if available).
  3480. properties:
  3481. nodeLabelSelector:
  3482. description: NodeLabelSelector is a selector that filters
  3483. in which nodes the KSM will be enabled. Empty NodeLabelSelector
  3484. will enable ksm for every node.
  3485. properties:
  3486. matchExpressions:
  3487. description: matchExpressions is a list of label selector
  3488. requirements. The requirements are ANDed.
  3489. items:
  3490. description: A label selector requirement is a selector
  3491. that contains values, a key, and an operator that
  3492. relates the key and values.
  3493. properties:
  3494. key:
  3495. description: key is the label key that the selector
  3496. applies to.
  3497. type: string
  3498. operator:
  3499. description: operator represents a key's relationship
  3500. to a set of values. Valid operators are In, NotIn,
  3501. Exists and DoesNotExist.
  3502. type: string
  3503. values:
  3504. description: values is an array of string values.
  3505. If the operator is In or NotIn, the values array
  3506. must be non-empty. If the operator is Exists or
  3507. DoesNotExist, the values array must be empty.
  3508. This array is replaced during a strategic merge
  3509. patch.
  3510. items:
  3511. type: string
  3512. type: array
  3513. required:
  3514. - key
  3515. - operator
  3516. type: object
  3517. type: array
  3518. matchLabels:
  3519. additionalProperties:
  3520. type: string
  3521. description: matchLabels is a map of {key,value} pairs.
  3522. A single {key,value} in the matchLabels map is equivalent
  3523. to an element of matchExpressions, whose key field is
  3524. "key", the operator is "In", and the values array contains
  3525. only "value". The requirements are ANDed.
  3526. type: object
  3527. type: object
  3528. type: object
  3529. liveUpdateConfiguration:
  3530. description: LiveUpdateConfiguration holds defaults for live update
  3531. features
  3532. properties:
  3533. maxCpuSockets:
  3534. description: MaxCpuSockets holds the maximum amount of sockets
  3535. that can be hotplugged
  3536. format: int32
  3537. type: integer
  3538. maxGuest:
  3539. anyOf:
  3540. - type: integer
  3541. - type: string
  3542. description: MaxGuest defines the maximum amount memory that
  3543. can be allocated to the guest using hotplug.
  3544. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3545. x-kubernetes-int-or-string: true
  3546. maxHotplugRatio:
  3547. description: 'MaxHotplugRatio is the ratio used to define
  3548. the max amount of a hotplug resource that can be made available
  3549. to a VM when the specific Max* setting is not defined (MaxCpuSockets,
  3550. MaxGuest) Example: VM is configured with 512Mi of guest
  3551. memory, if MaxGuest is not defined and MaxHotplugRatio is
  3552. 2 then MaxGuest = 1Gi defaults to 4'
  3553. format: int32
  3554. type: integer
  3555. type: object
  3556. machineType:
  3557. description: Deprecated. Use architectureConfiguration instead.
  3558. type: string
  3559. mediatedDevicesConfiguration:
  3560. description: MediatedDevicesConfiguration holds information about
  3561. MDEV types to be defined, if available
  3562. properties:
  3563. mediatedDeviceTypes:
  3564. items:
  3565. type: string
  3566. type: array
  3567. x-kubernetes-list-type: atomic
  3568. mediatedDevicesTypes:
  3569. description: Deprecated. Use mediatedDeviceTypes instead.
  3570. items:
  3571. type: string
  3572. type: array
  3573. x-kubernetes-list-type: atomic
  3574. nodeMediatedDeviceTypes:
  3575. items:
  3576. description: NodeMediatedDeviceTypesConfig holds information
  3577. about MDEV types to be defined in a specific node that
  3578. matches the NodeSelector field.
  3579. properties:
  3580. mediatedDeviceTypes:
  3581. items:
  3582. type: string
  3583. type: array
  3584. x-kubernetes-list-type: atomic
  3585. mediatedDevicesTypes:
  3586. description: Deprecated. Use mediatedDeviceTypes instead.
  3587. items:
  3588. type: string
  3589. type: array
  3590. x-kubernetes-list-type: atomic
  3591. nodeSelector:
  3592. additionalProperties:
  3593. type: string
  3594. description: 'NodeSelector is a selector which must
  3595. be true for the vmi to fit on a node. Selector which
  3596. must match a node''s labels for the vmi to be scheduled
  3597. on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  3598. type: object
  3599. required:
  3600. - nodeSelector
  3601. type: object
  3602. type: array
  3603. x-kubernetes-list-type: atomic
  3604. type: object
  3605. memBalloonStatsPeriod:
  3606. format: int32
  3607. type: integer
  3608. migrations:
  3609. description: MigrationConfiguration holds migration options. Can
  3610. be overridden for specific groups of VMs though migration policies.
  3611. Visit https://kubevirt.io/user-guide/operations/migration_policies/
  3612. for more information.
  3613. properties:
  3614. allowAutoConverge:
  3615. description: AllowAutoConverge allows the platform to compromise
  3616. performance/availability of VMIs to guarantee successful
  3617. VMI live migrations. Defaults to false
  3618. type: boolean
  3619. allowPostCopy:
  3620. description: AllowPostCopy enables post-copy live migrations.
  3621. Such migrations allow even the busiest VMIs to successfully
  3622. live-migrate. However, events like a network failure can
  3623. cause a VMI crash. If set to true, migrations will still
  3624. start in pre-copy, but switch to post-copy when CompletionTimeoutPerGiB
  3625. triggers. Defaults to false
  3626. type: boolean
  3627. bandwidthPerMigration:
  3628. anyOf:
  3629. - type: integer
  3630. - type: string
  3631. description: BandwidthPerMigration limits the amount of network
  3632. bandwidth live migrations are allowed to use. The value
  3633. is in quantity per second. Defaults to 0 (no limit)
  3634. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3635. x-kubernetes-int-or-string: true
  3636. completionTimeoutPerGiB:
  3637. description: CompletionTimeoutPerGiB is the maximum number
  3638. of seconds per GiB a migration is allowed to take. If a
  3639. live-migration takes longer to migrate than this value multiplied
  3640. by the size of the VMI, the migration will be cancelled,
  3641. unless AllowPostCopy is true. Defaults to 800
  3642. format: int64
  3643. type: integer
  3644. disableTLS:
  3645. description: When set to true, DisableTLS will disable the
  3646. additional layer of live migration encryption provided by
  3647. KubeVirt. This is usually a bad idea. Defaults to false
  3648. type: boolean
  3649. matchSELinuxLevelOnMigration:
  3650. description: By default, the SELinux level of target virt-launcher
  3651. pods is forced to the level of the source virt-launcher.
  3652. When set to true, MatchSELinuxLevelOnMigration lets the
  3653. CRI auto-assign a random level to the target. That will
  3654. ensure the target virt-launcher doesn't share categories
  3655. with another pod on the node. However, migrations will fail
  3656. when using RWX volumes that don't automatically deal with
  3657. SELinux levels.
  3658. type: boolean
  3659. network:
  3660. description: Network is the name of the CNI network to use
  3661. for live migrations. By default, migrations go through the
  3662. pod network.
  3663. type: string
  3664. nodeDrainTaintKey:
  3665. description: 'NodeDrainTaintKey defines the taint key that
  3666. indicates a node should be drained. Note: this option relies
  3667. on the deprecated node taint feature. Default: kubevirt.io/drain'
  3668. type: string
  3669. parallelMigrationsPerCluster:
  3670. description: ParallelMigrationsPerCluster is the total number
  3671. of concurrent live migrations allowed cluster-wide. Defaults
  3672. to 5
  3673. format: int32
  3674. type: integer
  3675. parallelOutboundMigrationsPerNode:
  3676. description: ParallelOutboundMigrationsPerNode is the maximum
  3677. number of concurrent outgoing live migrations allowed per
  3678. node. Defaults to 2
  3679. format: int32
  3680. type: integer
  3681. progressTimeout:
  3682. description: ProgressTimeout is the maximum number of seconds
  3683. a live migration is allowed to make no progress. Hitting
  3684. this timeout means a migration transferred 0 data for that
  3685. many seconds. The migration is then considered stuck and
  3686. therefore cancelled. Defaults to 150
  3687. format: int64
  3688. type: integer
  3689. unsafeMigrationOverride:
  3690. description: UnsafeMigrationOverride allows live migrations
  3691. to occur even if the compatibility check indicates the migration
  3692. will be unsafe to the guest. Defaults to false
  3693. type: boolean
  3694. type: object
  3695. minCPUModel:
  3696. type: string
  3697. network:
  3698. description: NetworkConfiguration holds network options
  3699. properties:
  3700. binding:
  3701. additionalProperties:
  3702. properties:
  3703. networkAttachmentDefinition:
  3704. description: 'NetworkAttachmentDefinition references
  3705. to a NetworkAttachmentDefinition CR object. Format:
  3706. <name>, <namespace>/<name>. If namespace is not specified,
  3707. VMI namespace is assumed. version: 1alphav1'
  3708. type: string
  3709. sidecarImage:
  3710. description: 'SidecarImage references a container image
  3711. that runs in the virt-launcher pod. The sidecar handles
  3712. (libvirt) domain configuration and optional services.
  3713. version: 1alphav1'
  3714. type: string
  3715. type: object
  3716. type: object
  3717. defaultNetworkInterface:
  3718. type: string
  3719. permitBridgeInterfaceOnPodNetwork:
  3720. type: boolean
  3721. permitSlirpInterface:
  3722. type: boolean
  3723. type: object
  3724. obsoleteCPUModels:
  3725. additionalProperties:
  3726. type: boolean
  3727. type: object
  3728. ovmfPath:
  3729. type: string
  3730. permittedHostDevices:
  3731. description: PermittedHostDevices holds information about devices
  3732. allowed for passthrough
  3733. properties:
  3734. mediatedDevices:
  3735. items:
  3736. description: MediatedHostDevice represents a host mediated
  3737. device allowed for passthrough
  3738. properties:
  3739. externalResourceProvider:
  3740. type: boolean
  3741. mdevNameSelector:
  3742. type: string
  3743. resourceName:
  3744. type: string
  3745. required:
  3746. - mdevNameSelector
  3747. - resourceName
  3748. type: object
  3749. type: array
  3750. x-kubernetes-list-type: atomic
  3751. pciHostDevices:
  3752. items:
  3753. description: PciHostDevice represents a host PCI device
  3754. allowed for passthrough
  3755. properties:
  3756. externalResourceProvider:
  3757. description: If true, KubeVirt will leave the allocation
  3758. and monitoring to an external device plugin
  3759. type: boolean
  3760. pciVendorSelector:
  3761. description: The vendor_id:product_id tuple of the PCI
  3762. device
  3763. type: string
  3764. resourceName:
  3765. description: The name of the resource that is representing
  3766. the device. Exposed by a device plugin and requested
  3767. by VMs. Typically of the form vendor.com/product_name
  3768. type: string
  3769. required:
  3770. - pciVendorSelector
  3771. - resourceName
  3772. type: object
  3773. type: array
  3774. x-kubernetes-list-type: atomic
  3775. usb:
  3776. items:
  3777. properties:
  3778. externalResourceProvider:
  3779. description: If true, KubeVirt will leave the allocation
  3780. and monitoring to an external device plugin
  3781. type: boolean
  3782. resourceName:
  3783. description: 'Identifies the list of USB host devices.
  3784. e.g: kubevirt.io/storage, kubevirt.io/bootable-usb,
  3785. etc'
  3786. type: string
  3787. selectors:
  3788. items:
  3789. properties:
  3790. product:
  3791. type: string
  3792. vendor:
  3793. type: string
  3794. required:
  3795. - product
  3796. - vendor
  3797. type: object
  3798. type: array
  3799. x-kubernetes-list-type: atomic
  3800. required:
  3801. - resourceName
  3802. type: object
  3803. type: array
  3804. x-kubernetes-list-type: atomic
  3805. type: object
  3806. seccompConfiguration:
  3807. description: SeccompConfiguration holds Seccomp configuration
  3808. for Kubevirt components
  3809. properties:
  3810. virtualMachineInstanceProfile:
  3811. description: VirtualMachineInstanceProfile defines what profile
  3812. should be used with virt-launcher. Defaults to none
  3813. properties:
  3814. customProfile:
  3815. description: CustomProfile allows to request arbitrary
  3816. profile for virt-launcher
  3817. properties:
  3818. localhostProfile:
  3819. type: string
  3820. runtimeDefaultProfile:
  3821. type: boolean
  3822. type: object
  3823. type: object
  3824. type: object
  3825. selinuxLauncherType:
  3826. type: string
  3827. smbios:
  3828. properties:
  3829. family:
  3830. type: string
  3831. manufacturer:
  3832. type: string
  3833. product:
  3834. type: string
  3835. sku:
  3836. type: string
  3837. version:
  3838. type: string
  3839. type: object
  3840. supportContainerResources:
  3841. description: SupportContainerResources specifies the resource
  3842. requirements for various types of supporting containers such
  3843. as container disks/virtiofs/sidecars and hotplug attachment
  3844. pods. If omitted a sensible default will be supplied.
  3845. items:
  3846. description: SupportContainerResources are used to specify the
  3847. cpu/memory request and limits for the containers that support
  3848. various features of Virtual Machines. These containers are
  3849. usually idle and don't require a lot of memory or cpu.
  3850. properties:
  3851. resources:
  3852. description: ResourceRequirements describes the compute
  3853. resource requirements.
  3854. properties:
  3855. claims:
  3856. description: "Claims lists the names of resources, defined
  3857. in spec.resourceClaims, that are used by this container.
  3858. \n This is an alpha field and requires enabling the
  3859. DynamicResourceAllocation feature gate. \n This field
  3860. is immutable. It can only be set for containers."
  3861. items:
  3862. description: ResourceClaim references one entry in
  3863. PodSpec.ResourceClaims.
  3864. properties:
  3865. name:
  3866. description: Name must match the name of one entry
  3867. in pod.spec.resourceClaims of the Pod where
  3868. this field is used. It makes that resource available
  3869. inside a container.
  3870. type: string
  3871. required:
  3872. - name
  3873. type: object
  3874. type: array
  3875. x-kubernetes-list-map-keys:
  3876. - name
  3877. x-kubernetes-list-type: map
  3878. limits:
  3879. additionalProperties:
  3880. anyOf:
  3881. - type: integer
  3882. - type: string
  3883. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3884. x-kubernetes-int-or-string: true
  3885. description: 'Limits describes the maximum amount of
  3886. compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3887. type: object
  3888. requests:
  3889. additionalProperties:
  3890. anyOf:
  3891. - type: integer
  3892. - type: string
  3893. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3894. x-kubernetes-int-or-string: true
  3895. description: 'Requests describes the minimum amount
  3896. of compute resources required. If Requests is omitted
  3897. for a container, it defaults to Limits if that is
  3898. explicitly specified, otherwise to an implementation-defined
  3899. value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3900. type: object
  3901. type: object
  3902. type:
  3903. type: string
  3904. required:
  3905. - resources
  3906. - type
  3907. type: object
  3908. type: array
  3909. x-kubernetes-list-map-keys:
  3910. - type
  3911. x-kubernetes-list-type: map
  3912. supportedGuestAgentVersions:
  3913. description: deprecated
  3914. items:
  3915. type: string
  3916. type: array
  3917. tlsConfiguration:
  3918. description: TLSConfiguration holds TLS options
  3919. properties:
  3920. ciphers:
  3921. items:
  3922. type: string
  3923. type: array
  3924. x-kubernetes-list-type: set
  3925. minTLSVersion:
  3926. description: "MinTLSVersion is a way to specify the minimum
  3927. protocol version that is acceptable for TLS connections.
  3928. Protocol versions are based on the following most common
  3929. TLS configurations: \n https://ssl-config.mozilla.org/
  3930. \n Note that SSLv3.0 is not a supported protocol version
  3931. due to well known vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE"
  3932. enum:
  3933. - VersionTLS10
  3934. - VersionTLS11
  3935. - VersionTLS12
  3936. - VersionTLS13
  3937. type: string
  3938. type: object
  3939. virtualMachineInstancesPerNode:
  3940. type: integer
  3941. virtualMachineOptions:
  3942. description: VirtualMachineOptions holds the cluster level information
  3943. regarding the virtual machine.
  3944. properties:
  3945. disableFreePageReporting:
  3946. description: DisableFreePageReporting disable the free page
  3947. reporting of memory balloon device https://libvirt.org/formatdomain.html#memory-balloon-device.
  3948. This will have effect only if AutoattachMemBalloon is not
  3949. false and the vmi is not requesting any high performance
  3950. feature (dedicatedCPU/realtime/hugePages), in which free
  3951. page reporting is always disabled.
  3952. type: object
  3953. disableSerialConsoleLog:
  3954. description: DisableSerialConsoleLog disables logging the
  3955. auto-attached default serial console. If not set, serial
  3956. console logs will be written to a file and then streamed
  3957. from a container named 'guest-console-log'. The value can
  3958. be individually overridden for each VM, not relevant if
  3959. AutoattachSerialConsole is disabled.
  3960. type: object
  3961. type: object
  3962. vmStateStorageClass:
  3963. description: VMStateStorageClass is the name of the storage class
  3964. to use for the PVCs created to preserve VM state, like TPM.
  3965. The storage class must support RWX in filesystem mode.
  3966. type: string
  3967. webhookConfiguration:
  3968. description: ReloadableComponentConfiguration holds all generic
  3969. k8s configuration options which can be reloaded by components
  3970. without requiring a restart.
  3971. properties:
  3972. restClient:
  3973. description: RestClient can be used to tune certain aspects
  3974. of the k8s client in use.
  3975. properties:
  3976. rateLimiter:
  3977. description: RateLimiter allows selecting and configuring
  3978. different rate limiters for the k8s client.
  3979. properties:
  3980. tokenBucketRateLimiter:
  3981. properties:
  3982. burst:
  3983. description: Maximum burst for throttle. If it's
  3984. zero, the component default will be used
  3985. type: integer
  3986. qps:
  3987. description: QPS indicates the maximum QPS to
  3988. the apiserver from this client. If it's zero,
  3989. the component default will be used
  3990. type: number
  3991. required:
  3992. - burst
  3993. - qps
  3994. type: object
  3995. type: object
  3996. type: object
  3997. type: object
  3998. type: object
  3999. customizeComponents:
  4000. properties:
  4001. flags:
  4002. description: Configure the value used for deployment and daemonset
  4003. resources
  4004. properties:
  4005. api:
  4006. additionalProperties:
  4007. type: string
  4008. type: object
  4009. controller:
  4010. additionalProperties:
  4011. type: string
  4012. type: object
  4013. handler:
  4014. additionalProperties:
  4015. type: string
  4016. type: object
  4017. type: object
  4018. patches:
  4019. items:
  4020. properties:
  4021. patch:
  4022. type: string
  4023. resourceName:
  4024. minLength: 1
  4025. type: string
  4026. resourceType:
  4027. minLength: 1
  4028. type: string
  4029. type:
  4030. type: string
  4031. required:
  4032. - patch
  4033. - resourceName
  4034. - resourceType
  4035. - type
  4036. type: object
  4037. type: array
  4038. x-kubernetes-list-type: atomic
  4039. type: object
  4040. imagePullPolicy:
  4041. description: The ImagePullPolicy to use.
  4042. type: string
  4043. imagePullSecrets:
  4044. description: The imagePullSecrets to pull the container images from
  4045. Defaults to none
  4046. items:
  4047. description: LocalObjectReference contains enough information to
  4048. let you locate the referenced object inside the same namespace.
  4049. properties:
  4050. name:
  4051. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4052. TODO: Add other useful fields. apiVersion, kind, uid?'
  4053. type: string
  4054. type: object
  4055. type: array
  4056. x-kubernetes-list-type: atomic
  4057. imageRegistry:
  4058. description: The image registry to pull the container images from
  4059. Defaults to the same registry the operator's container image is
  4060. pulled from.
  4061. type: string
  4062. imageTag:
  4063. description: The image tag to use for the continer images installed.
  4064. Defaults to the same tag as the operator's container image.
  4065. type: string
  4066. infra:
  4067. description: selectors and tolerations that should apply to KubeVirt
  4068. infrastructure components
  4069. properties:
  4070. nodePlacement:
  4071. description: nodePlacement describes scheduling configuration
  4072. for specific KubeVirt components
  4073. properties:
  4074. affinity:
  4075. description: affinity enables pod affinity/anti-affinity placement
  4076. expanding the types of constraints that can be expressed
  4077. with nodeSelector. affinity is going to be applied to the
  4078. relevant kind of pods in parallel with nodeSelector See
  4079. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
  4080. properties:
  4081. nodeAffinity:
  4082. description: Describes node affinity scheduling rules
  4083. for the pod.
  4084. properties:
  4085. preferredDuringSchedulingIgnoredDuringExecution:
  4086. description: The scheduler will prefer to schedule
  4087. pods to nodes that satisfy the affinity expressions
  4088. specified by this field, but it may choose a node
  4089. that violates one or more of the expressions. The
  4090. node that is most preferred is the one with the
  4091. greatest sum of weights, i.e. for each node that
  4092. meets all of the scheduling requirements (resource
  4093. request, requiredDuringScheduling affinity expressions,
  4094. etc.), compute a sum by iterating through the elements
  4095. of this field and adding "weight" to the sum if
  4096. the node matches the corresponding matchExpressions;
  4097. the node(s) with the highest sum are the most preferred.
  4098. items:
  4099. description: An empty preferred scheduling term
  4100. matches all objects with implicit weight 0 (i.e.
  4101. it's a no-op). A null preferred scheduling term
  4102. matches no objects (i.e. is also a no-op).
  4103. properties:
  4104. preference:
  4105. description: A node selector term, associated
  4106. with the corresponding weight.
  4107. properties:
  4108. matchExpressions:
  4109. description: A list of node selector requirements
  4110. by node's labels.
  4111. items:
  4112. description: A node selector requirement
  4113. is a selector that contains values,
  4114. a key, and an operator that relates
  4115. the key and values.
  4116. properties:
  4117. key:
  4118. description: The label key that the
  4119. selector applies to.
  4120. type: string
  4121. operator:
  4122. description: Represents a key's relationship
  4123. to a set of values. Valid operators
  4124. are In, NotIn, Exists, DoesNotExist.
  4125. Gt, and Lt.
  4126. type: string
  4127. values:
  4128. description: An array of string values.
  4129. If the operator is In or NotIn,
  4130. the values array must be non-empty.
  4131. If the operator is Exists or DoesNotExist,
  4132. the values array must be empty.
  4133. If the operator is Gt or Lt, the
  4134. values array must have a single
  4135. element, which will be interpreted
  4136. as an integer. This array is replaced
  4137. during a strategic merge patch.
  4138. items:
  4139. type: string
  4140. type: array
  4141. required:
  4142. - key
  4143. - operator
  4144. type: object
  4145. type: array
  4146. matchFields:
  4147. description: A list of node selector requirements
  4148. by node's fields.
  4149. items:
  4150. description: A node selector requirement
  4151. is a selector that contains values,
  4152. a key, and an operator that relates
  4153. the key and values.
  4154. properties:
  4155. key:
  4156. description: The label key that the
  4157. selector applies to.
  4158. type: string
  4159. operator:
  4160. description: Represents a key's relationship
  4161. to a set of values. Valid operators
  4162. are In, NotIn, Exists, DoesNotExist.
  4163. Gt, and Lt.
  4164. type: string
  4165. values:
  4166. description: An array of string values.
  4167. If the operator is In or NotIn,
  4168. the values array must be non-empty.
  4169. If the operator is Exists or DoesNotExist,
  4170. the values array must be empty.
  4171. If the operator is Gt or Lt, the
  4172. values array must have a single
  4173. element, which will be interpreted
  4174. as an integer. This array is replaced
  4175. during a strategic merge patch.
  4176. items:
  4177. type: string
  4178. type: array
  4179. required:
  4180. - key
  4181. - operator
  4182. type: object
  4183. type: array
  4184. type: object
  4185. weight:
  4186. description: Weight associated with matching
  4187. the corresponding nodeSelectorTerm, in the
  4188. range 1-100.
  4189. format: int32
  4190. type: integer
  4191. required:
  4192. - preference
  4193. - weight
  4194. type: object
  4195. type: array
  4196. requiredDuringSchedulingIgnoredDuringExecution:
  4197. description: If the affinity requirements specified
  4198. by this field are not met at scheduling time, the
  4199. pod will not be scheduled onto the node. If the
  4200. affinity requirements specified by this field cease
  4201. to be met at some point during pod execution (e.g.
  4202. due to an update), the system may or may not try
  4203. to eventually evict the pod from its node.
  4204. properties:
  4205. nodeSelectorTerms:
  4206. description: Required. A list of node selector
  4207. terms. The terms are ORed.
  4208. items:
  4209. description: A null or empty node selector term
  4210. matches no objects. The requirements of them
  4211. are ANDed. The TopologySelectorTerm type implements
  4212. a subset of the NodeSelectorTerm.
  4213. properties:
  4214. matchExpressions:
  4215. description: A list of node selector requirements
  4216. by node's labels.
  4217. items:
  4218. description: A node selector requirement
  4219. is a selector that contains values,
  4220. a key, and an operator that relates
  4221. the key and values.
  4222. properties:
  4223. key:
  4224. description: The label key that the
  4225. selector applies to.
  4226. type: string
  4227. operator:
  4228. description: Represents a key's relationship
  4229. to a set of values. Valid operators
  4230. are In, NotIn, Exists, DoesNotExist.
  4231. Gt, and Lt.
  4232. type: string
  4233. values:
  4234. description: An array of string values.
  4235. If the operator is In or NotIn,
  4236. the values array must be non-empty.
  4237. If the operator is Exists or DoesNotExist,
  4238. the values array must be empty.
  4239. If the operator is Gt or Lt, the
  4240. values array must have a single
  4241. element, which will be interpreted
  4242. as an integer. This array is replaced
  4243. during a strategic merge patch.
  4244. items:
  4245. type: string
  4246. type: array
  4247. required:
  4248. - key
  4249. - operator
  4250. type: object
  4251. type: array
  4252. matchFields:
  4253. description: A list of node selector requirements
  4254. by node's fields.
  4255. items:
  4256. description: A node selector requirement
  4257. is a selector that contains values,
  4258. a key, and an operator that relates
  4259. the key and values.
  4260. properties:
  4261. key:
  4262. description: The label key that the
  4263. selector applies to.
  4264. type: string
  4265. operator:
  4266. description: Represents a key's relationship
  4267. to a set of values. Valid operators
  4268. are In, NotIn, Exists, DoesNotExist.
  4269. Gt, and Lt.
  4270. type: string
  4271. values:
  4272. description: An array of string values.
  4273. If the operator is In or NotIn,
  4274. the values array must be non-empty.
  4275. If the operator is Exists or DoesNotExist,
  4276. the values array must be empty.
  4277. If the operator is Gt or Lt, the
  4278. values array must have a single
  4279. element, which will be interpreted
  4280. as an integer. This array is replaced
  4281. during a strategic merge patch.
  4282. items:
  4283. type: string
  4284. type: array
  4285. required:
  4286. - key
  4287. - operator
  4288. type: object
  4289. type: array
  4290. type: object
  4291. type: array
  4292. required:
  4293. - nodeSelectorTerms
  4294. type: object
  4295. type: object
  4296. podAffinity:
  4297. description: Describes pod affinity scheduling rules (e.g.
  4298. co-locate this pod in the same node, zone, etc. as some
  4299. other pod(s)).
  4300. properties:
  4301. preferredDuringSchedulingIgnoredDuringExecution:
  4302. description: The scheduler will prefer to schedule
  4303. pods to nodes that satisfy the affinity expressions
  4304. specified by this field, but it may choose a node
  4305. that violates one or more of the expressions. The
  4306. node that is most preferred is the one with the
  4307. greatest sum of weights, i.e. for each node that
  4308. meets all of the scheduling requirements (resource
  4309. request, requiredDuringScheduling affinity expressions,
  4310. etc.), compute a sum by iterating through the elements
  4311. of this field and adding "weight" to the sum if
  4312. the node has pods which matches the corresponding
  4313. podAffinityTerm; the node(s) with the highest sum
  4314. are the most preferred.
  4315. items:
  4316. description: The weights of all of the matched WeightedPodAffinityTerm
  4317. fields are added per-node to find the most preferred
  4318. node(s)
  4319. properties:
  4320. podAffinityTerm:
  4321. description: Required. A pod affinity term,
  4322. associated with the corresponding weight.
  4323. properties:
  4324. labelSelector:
  4325. description: A label query over a set of
  4326. resources, in this case pods.
  4327. properties:
  4328. matchExpressions:
  4329. description: matchExpressions is a list
  4330. of label selector requirements. The
  4331. requirements are ANDed.
  4332. items:
  4333. description: A label selector requirement
  4334. is a selector that contains values,
  4335. a key, and an operator that relates
  4336. the key and values.
  4337. properties:
  4338. key:
  4339. description: key is the label
  4340. key that the selector applies
  4341. to.
  4342. type: string
  4343. operator:
  4344. description: operator represents
  4345. a key's relationship to a set
  4346. of values. Valid operators are
  4347. In, NotIn, Exists and DoesNotExist.
  4348. type: string
  4349. values:
  4350. description: values is an array
  4351. of string values. If the operator
  4352. is In or NotIn, the values array
  4353. must be non-empty. If the operator
  4354. is Exists or DoesNotExist, the
  4355. values array must be empty.
  4356. This array is replaced during
  4357. a strategic merge patch.
  4358. items:
  4359. type: string
  4360. type: array
  4361. required:
  4362. - key
  4363. - operator
  4364. type: object
  4365. type: array
  4366. matchLabels:
  4367. additionalProperties:
  4368. type: string
  4369. description: matchLabels is a map of
  4370. {key,value} pairs. A single {key,value}
  4371. in the matchLabels map is equivalent
  4372. to an element of matchExpressions,
  4373. whose key field is "key", the operator
  4374. is "In", and the values array contains
  4375. only "value". The requirements are
  4376. ANDed.
  4377. type: object
  4378. type: object
  4379. namespaceSelector:
  4380. description: A label query over the set
  4381. of namespaces that the term applies to.
  4382. The term is applied to the union of the
  4383. namespaces selected by this field and
  4384. the ones listed in the namespaces field.
  4385. null selector and null or empty namespaces
  4386. list means "this pod's namespace". An
  4387. empty selector ({}) matches all namespaces.
  4388. properties:
  4389. matchExpressions:
  4390. description: matchExpressions is a list
  4391. of label selector requirements. The
  4392. requirements are ANDed.
  4393. items:
  4394. description: A label selector requirement
  4395. is a selector that contains values,
  4396. a key, and an operator that relates
  4397. the key and values.
  4398. properties:
  4399. key:
  4400. description: key is the label
  4401. key that the selector applies
  4402. to.
  4403. type: string
  4404. operator:
  4405. description: operator represents
  4406. a key's relationship to a set
  4407. of values. Valid operators are
  4408. In, NotIn, Exists and DoesNotExist.
  4409. type: string
  4410. values:
  4411. description: values is an array
  4412. of string values. If the operator
  4413. is In or NotIn, the values array
  4414. must be non-empty. If the operator
  4415. is Exists or DoesNotExist, the
  4416. values array must be empty.
  4417. This array is replaced during
  4418. a strategic merge patch.
  4419. items:
  4420. type: string
  4421. type: array
  4422. required:
  4423. - key
  4424. - operator
  4425. type: object
  4426. type: array
  4427. matchLabels:
  4428. additionalProperties:
  4429. type: string
  4430. description: matchLabels is a map of
  4431. {key,value} pairs. A single {key,value}
  4432. in the matchLabels map is equivalent
  4433. to an element of matchExpressions,
  4434. whose key field is "key", the operator
  4435. is "In", and the values array contains
  4436. only "value". The requirements are
  4437. ANDed.
  4438. type: object
  4439. type: object
  4440. namespaces:
  4441. description: namespaces specifies a static
  4442. list of namespace names that the term
  4443. applies to. The term is applied to the
  4444. union of the namespaces listed in this
  4445. field and the ones selected by namespaceSelector.
  4446. null or empty namespaces list and null
  4447. namespaceSelector means "this pod's namespace".
  4448. items:
  4449. type: string
  4450. type: array
  4451. topologyKey:
  4452. description: This pod should be co-located
  4453. (affinity) or not co-located (anti-affinity)
  4454. with the pods matching the labelSelector
  4455. in the specified namespaces, where co-located
  4456. is defined as running on a node whose
  4457. value of the label with key topologyKey
  4458. matches that of any node on which any
  4459. of the selected pods is running. Empty
  4460. topologyKey is not allowed.
  4461. type: string
  4462. required:
  4463. - topologyKey
  4464. type: object
  4465. weight:
  4466. description: weight associated with matching
  4467. the corresponding podAffinityTerm, in the
  4468. range 1-100.
  4469. format: int32
  4470. type: integer
  4471. required:
  4472. - podAffinityTerm
  4473. - weight
  4474. type: object
  4475. type: array
  4476. requiredDuringSchedulingIgnoredDuringExecution:
  4477. description: If the affinity requirements specified
  4478. by this field are not met at scheduling time, the
  4479. pod will not be scheduled onto the node. If the
  4480. affinity requirements specified by this field cease
  4481. to be met at some point during pod execution (e.g.
  4482. due to a pod label update), the system may or may
  4483. not try to eventually evict the pod from its node.
  4484. When there are multiple elements, the lists of nodes
  4485. corresponding to each podAffinityTerm are intersected,
  4486. i.e. all terms must be satisfied.
  4487. items:
  4488. description: Defines a set of pods (namely those
  4489. matching the labelSelector relative to the given
  4490. namespace(s)) that this pod should be co-located
  4491. (affinity) or not co-located (anti-affinity) with,
  4492. where co-located is defined as running on a node
  4493. whose value of the label with key <topologyKey>
  4494. matches that of any node on which a pod of the
  4495. set of pods is running
  4496. properties:
  4497. labelSelector:
  4498. description: A label query over a set of resources,
  4499. in this case pods.
  4500. properties:
  4501. matchExpressions:
  4502. description: matchExpressions is a list
  4503. of label selector requirements. The requirements
  4504. are ANDed.
  4505. items:
  4506. description: A label selector requirement
  4507. is a selector that contains values,
  4508. a key, and an operator that relates
  4509. the key and values.
  4510. properties:
  4511. key:
  4512. description: key is the label key
  4513. that the selector applies to.
  4514. type: string
  4515. operator:
  4516. description: operator represents a
  4517. key's relationship to a set of values.
  4518. Valid operators are In, NotIn, Exists
  4519. and DoesNotExist.
  4520. type: string
  4521. values:
  4522. description: values is an array of
  4523. string values. If the operator is
  4524. In or NotIn, the values array must
  4525. be non-empty. If the operator is
  4526. Exists or DoesNotExist, the values
  4527. array must be empty. This array
  4528. is replaced during a strategic merge
  4529. patch.
  4530. items:
  4531. type: string
  4532. type: array
  4533. required:
  4534. - key
  4535. - operator
  4536. type: object
  4537. type: array
  4538. matchLabels:
  4539. additionalProperties:
  4540. type: string
  4541. description: matchLabels is a map of {key,value}
  4542. pairs. A single {key,value} in the matchLabels
  4543. map is equivalent to an element of matchExpressions,
  4544. whose key field is "key", the operator
  4545. is "In", and the values array contains
  4546. only "value". The requirements are ANDed.
  4547. type: object
  4548. type: object
  4549. namespaceSelector:
  4550. description: A label query over the set of namespaces
  4551. that the term applies to. The term is applied
  4552. to the union of the namespaces selected by
  4553. this field and the ones listed in the namespaces
  4554. field. null selector and null or empty namespaces
  4555. list means "this pod's namespace". An empty
  4556. selector ({}) matches all namespaces.
  4557. properties:
  4558. matchExpressions:
  4559. description: matchExpressions is a list
  4560. of label selector requirements. The requirements
  4561. are ANDed.
  4562. items:
  4563. description: A label selector requirement
  4564. is a selector that contains values,
  4565. a key, and an operator that relates
  4566. the key and values.
  4567. properties:
  4568. key:
  4569. description: key is the label key
  4570. that the selector applies to.
  4571. type: string
  4572. operator:
  4573. description: operator represents a
  4574. key's relationship to a set of values.
  4575. Valid operators are In, NotIn, Exists
  4576. and DoesNotExist.
  4577. type: string
  4578. values:
  4579. description: values is an array of
  4580. string values. If the operator is
  4581. In or NotIn, the values array must
  4582. be non-empty. If the operator is
  4583. Exists or DoesNotExist, the values
  4584. array must be empty. This array
  4585. is replaced during a strategic merge
  4586. patch.
  4587. items:
  4588. type: string
  4589. type: array
  4590. required:
  4591. - key
  4592. - operator
  4593. type: object
  4594. type: array
  4595. matchLabels:
  4596. additionalProperties:
  4597. type: string
  4598. description: matchLabels is a map of {key,value}
  4599. pairs. A single {key,value} in the matchLabels
  4600. map is equivalent to an element of matchExpressions,
  4601. whose key field is "key", the operator
  4602. is "In", and the values array contains
  4603. only "value". The requirements are ANDed.
  4604. type: object
  4605. type: object
  4606. namespaces:
  4607. description: namespaces specifies a static list
  4608. of namespace names that the term applies to.
  4609. The term is applied to the union of the namespaces
  4610. listed in this field and the ones selected
  4611. by namespaceSelector. null or empty namespaces
  4612. list and null namespaceSelector means "this
  4613. pod's namespace".
  4614. items:
  4615. type: string
  4616. type: array
  4617. topologyKey:
  4618. description: This pod should be co-located (affinity)
  4619. or not co-located (anti-affinity) with the
  4620. pods matching the labelSelector in the specified
  4621. namespaces, where co-located is defined as
  4622. running on a node whose value of the label
  4623. with key topologyKey matches that of any node
  4624. on which any of the selected pods is running.
  4625. Empty topologyKey is not allowed.
  4626. type: string
  4627. required:
  4628. - topologyKey
  4629. type: object
  4630. type: array
  4631. type: object
  4632. podAntiAffinity:
  4633. description: Describes pod anti-affinity scheduling rules
  4634. (e.g. avoid putting this pod in the same node, zone,
  4635. etc. as some other pod(s)).
  4636. properties:
  4637. preferredDuringSchedulingIgnoredDuringExecution:
  4638. description: The scheduler will prefer to schedule
  4639. pods to nodes that satisfy the anti-affinity expressions
  4640. specified by this field, but it may choose a node
  4641. that violates one or more of the expressions. The
  4642. node that is most preferred is the one with the
  4643. greatest sum of weights, i.e. for each node that
  4644. meets all of the scheduling requirements (resource
  4645. request, requiredDuringScheduling anti-affinity
  4646. expressions, etc.), compute a sum by iterating through
  4647. the elements of this field and adding "weight" to
  4648. the sum if the node has pods which matches the corresponding
  4649. podAffinityTerm; the node(s) with the highest sum
  4650. are the most preferred.
  4651. items:
  4652. description: The weights of all of the matched WeightedPodAffinityTerm
  4653. fields are added per-node to find the most preferred
  4654. node(s)
  4655. properties:
  4656. podAffinityTerm:
  4657. description: Required. A pod affinity term,
  4658. associated with the corresponding weight.
  4659. properties:
  4660. labelSelector:
  4661. description: A label query over a set of
  4662. resources, in this case pods.
  4663. properties:
  4664. matchExpressions:
  4665. description: matchExpressions is a list
  4666. of label selector requirements. The
  4667. requirements are ANDed.
  4668. items:
  4669. description: A label selector requirement
  4670. is a selector that contains values,
  4671. a key, and an operator that relates
  4672. the key and values.
  4673. properties:
  4674. key:
  4675. description: key is the label
  4676. key that the selector applies
  4677. to.
  4678. type: string
  4679. operator:
  4680. description: operator represents
  4681. a key's relationship to a set
  4682. of values. Valid operators are
  4683. In, NotIn, Exists and DoesNotExist.
  4684. type: string
  4685. values:
  4686. description: values is an array
  4687. of string values. If the operator
  4688. is In or NotIn, the values array
  4689. must be non-empty. If the operator
  4690. is Exists or DoesNotExist, the
  4691. values array must be empty.
  4692. This array is replaced during
  4693. a strategic merge patch.
  4694. items:
  4695. type: string
  4696. type: array
  4697. required:
  4698. - key
  4699. - operator
  4700. type: object
  4701. type: array
  4702. matchLabels:
  4703. additionalProperties:
  4704. type: string
  4705. description: matchLabels is a map of
  4706. {key,value} pairs. A single {key,value}
  4707. in the matchLabels map is equivalent
  4708. to an element of matchExpressions,
  4709. whose key field is "key", the operator
  4710. is "In", and the values array contains
  4711. only "value". The requirements are
  4712. ANDed.
  4713. type: object
  4714. type: object
  4715. namespaceSelector:
  4716. description: A label query over the set
  4717. of namespaces that the term applies to.
  4718. The term is applied to the union of the
  4719. namespaces selected by this field and
  4720. the ones listed in the namespaces field.
  4721. null selector and null or empty namespaces
  4722. list means "this pod's namespace". An
  4723. empty selector ({}) matches all namespaces.
  4724. properties:
  4725. matchExpressions:
  4726. description: matchExpressions is a list
  4727. of label selector requirements. The
  4728. requirements are ANDed.
  4729. items:
  4730. description: A label selector requirement
  4731. is a selector that contains values,
  4732. a key, and an operator that relates
  4733. the key and values.
  4734. properties:
  4735. key:
  4736. description: key is the label
  4737. key that the selector applies
  4738. to.
  4739. type: string
  4740. operator:
  4741. description: operator represents
  4742. a key's relationship to a set
  4743. of values. Valid operators are
  4744. In, NotIn, Exists and DoesNotExist.
  4745. type: string
  4746. values:
  4747. description: values is an array
  4748. of string values. If the operator
  4749. is In or NotIn, the values array
  4750. must be non-empty. If the operator
  4751. is Exists or DoesNotExist, the
  4752. values array must be empty.
  4753. This array is replaced during
  4754. a strategic merge patch.
  4755. items:
  4756. type: string
  4757. type: array
  4758. required:
  4759. - key
  4760. - operator
  4761. type: object
  4762. type: array
  4763. matchLabels:
  4764. additionalProperties:
  4765. type: string
  4766. description: matchLabels is a map of
  4767. {key,value} pairs. A single {key,value}
  4768. in the matchLabels map is equivalent
  4769. to an element of matchExpressions,
  4770. whose key field is "key", the operator
  4771. is "In", and the values array contains
  4772. only "value". The requirements are
  4773. ANDed.
  4774. type: object
  4775. type: object
  4776. namespaces:
  4777. description: namespaces specifies a static
  4778. list of namespace names that the term
  4779. applies to. The term is applied to the
  4780. union of the namespaces listed in this
  4781. field and the ones selected by namespaceSelector.
  4782. null or empty namespaces list and null
  4783. namespaceSelector means "this pod's namespace".
  4784. items:
  4785. type: string
  4786. type: array
  4787. topologyKey:
  4788. description: This pod should be co-located
  4789. (affinity) or not co-located (anti-affinity)
  4790. with the pods matching the labelSelector
  4791. in the specified namespaces, where co-located
  4792. is defined as running on a node whose
  4793. value of the label with key topologyKey
  4794. matches that of any node on which any
  4795. of the selected pods is running. Empty
  4796. topologyKey is not allowed.
  4797. type: string
  4798. required:
  4799. - topologyKey
  4800. type: object
  4801. weight:
  4802. description: weight associated with matching
  4803. the corresponding podAffinityTerm, in the
  4804. range 1-100.
  4805. format: int32
  4806. type: integer
  4807. required:
  4808. - podAffinityTerm
  4809. - weight
  4810. type: object
  4811. type: array
  4812. requiredDuringSchedulingIgnoredDuringExecution:
  4813. description: If the anti-affinity requirements specified
  4814. by this field are not met at scheduling time, the
  4815. pod will not be scheduled onto the node. If the
  4816. anti-affinity requirements specified by this field
  4817. cease to be met at some point during pod execution
  4818. (e.g. due to a pod label update), the system may
  4819. or may not try to eventually evict the pod from
  4820. its node. When there are multiple elements, the
  4821. lists of nodes corresponding to each podAffinityTerm
  4822. are intersected, i.e. all terms must be satisfied.
  4823. items:
  4824. description: Defines a set of pods (namely those
  4825. matching the labelSelector relative to the given
  4826. namespace(s)) that this pod should be co-located
  4827. (affinity) or not co-located (anti-affinity) with,
  4828. where co-located is defined as running on a node
  4829. whose value of the label with key <topologyKey>
  4830. matches that of any node on which a pod of the
  4831. set of pods is running
  4832. properties:
  4833. labelSelector:
  4834. description: A label query over a set of resources,
  4835. in this case pods.
  4836. properties:
  4837. matchExpressions:
  4838. description: matchExpressions is a list
  4839. of label selector requirements. The requirements
  4840. are ANDed.
  4841. items:
  4842. description: A label selector requirement
  4843. is a selector that contains values,
  4844. a key, and an operator that relates
  4845. the key and values.
  4846. properties:
  4847. key:
  4848. description: key is the label key
  4849. that the selector applies to.
  4850. type: string
  4851. operator:
  4852. description: operator represents a
  4853. key's relationship to a set of values.
  4854. Valid operators are In, NotIn, Exists
  4855. and DoesNotExist.
  4856. type: string
  4857. values:
  4858. description: values is an array of
  4859. string values. If the operator is
  4860. In or NotIn, the values array must
  4861. be non-empty. If the operator is
  4862. Exists or DoesNotExist, the values
  4863. array must be empty. This array
  4864. is replaced during a strategic merge
  4865. patch.
  4866. items:
  4867. type: string
  4868. type: array
  4869. required:
  4870. - key
  4871. - operator
  4872. type: object
  4873. type: array
  4874. matchLabels:
  4875. additionalProperties:
  4876. type: string
  4877. description: matchLabels is a map of {key,value}
  4878. pairs. A single {key,value} in the matchLabels
  4879. map is equivalent to an element of matchExpressions,
  4880. whose key field is "key", the operator
  4881. is "In", and the values array contains
  4882. only "value". The requirements are ANDed.
  4883. type: object
  4884. type: object
  4885. namespaceSelector:
  4886. description: A label query over the set of namespaces
  4887. that the term applies to. The term is applied
  4888. to the union of the namespaces selected by
  4889. this field and the ones listed in the namespaces
  4890. field. null selector and null or empty namespaces
  4891. list means "this pod's namespace". An empty
  4892. selector ({}) matches all namespaces.
  4893. properties:
  4894. matchExpressions:
  4895. description: matchExpressions is a list
  4896. of label selector requirements. The requirements
  4897. are ANDed.
  4898. items:
  4899. description: A label selector requirement
  4900. is a selector that contains values,
  4901. a key, and an operator that relates
  4902. the key and values.
  4903. properties:
  4904. key:
  4905. description: key is the label key
  4906. that the selector applies to.
  4907. type: string
  4908. operator:
  4909. description: operator represents a
  4910. key's relationship to a set of values.
  4911. Valid operators are In, NotIn, Exists
  4912. and DoesNotExist.
  4913. type: string
  4914. values:
  4915. description: values is an array of
  4916. string values. If the operator is
  4917. In or NotIn, the values array must
  4918. be non-empty. If the operator is
  4919. Exists or DoesNotExist, the values
  4920. array must be empty. This array
  4921. is replaced during a strategic merge
  4922. patch.
  4923. items:
  4924. type: string
  4925. type: array
  4926. required:
  4927. - key
  4928. - operator
  4929. type: object
  4930. type: array
  4931. matchLabels:
  4932. additionalProperties:
  4933. type: string
  4934. description: matchLabels is a map of {key,value}
  4935. pairs. A single {key,value} in the matchLabels
  4936. map is equivalent to an element of matchExpressions,
  4937. whose key field is "key", the operator
  4938. is "In", and the values array contains
  4939. only "value". The requirements are ANDed.
  4940. type: object
  4941. type: object
  4942. namespaces:
  4943. description: namespaces specifies a static list
  4944. of namespace names that the term applies to.
  4945. The term is applied to the union of the namespaces
  4946. listed in this field and the ones selected
  4947. by namespaceSelector. null or empty namespaces
  4948. list and null namespaceSelector means "this
  4949. pod's namespace".
  4950. items:
  4951. type: string
  4952. type: array
  4953. topologyKey:
  4954. description: This pod should be co-located (affinity)
  4955. or not co-located (anti-affinity) with the
  4956. pods matching the labelSelector in the specified
  4957. namespaces, where co-located is defined as
  4958. running on a node whose value of the label
  4959. with key topologyKey matches that of any node
  4960. on which any of the selected pods is running.
  4961. Empty topologyKey is not allowed.
  4962. type: string
  4963. required:
  4964. - topologyKey
  4965. type: object
  4966. type: array
  4967. type: object
  4968. type: object
  4969. nodeSelector:
  4970. additionalProperties:
  4971. type: string
  4972. description: 'nodeSelector is the node selector applied to
  4973. the relevant kind of pods It specifies a map of key-value
  4974. pairs: for the pod to be eligible to run on a node, the
  4975. node must have each of the indicated key-value pairs as
  4976. labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
  4977. type: object
  4978. tolerations:
  4979. description: tolerations is a list of tolerations applied
  4980. to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  4981. for more info. These are additional tolerations other than
  4982. default ones.
  4983. items:
  4984. description: The pod this Toleration is attached to tolerates
  4985. any taint that matches the triple <key,value,effect> using
  4986. the matching operator <operator>.
  4987. properties:
  4988. effect:
  4989. description: Effect indicates the taint effect to match.
  4990. Empty means match all taint effects. When specified,
  4991. allowed values are NoSchedule, PreferNoSchedule and
  4992. NoExecute.
  4993. type: string
  4994. key:
  4995. description: Key is the taint key that the toleration
  4996. applies to. Empty means match all taint keys. If the
  4997. key is empty, operator must be Exists; this combination
  4998. means to match all values and all keys.
  4999. type: string
  5000. operator:
  5001. description: Operator represents a key's relationship
  5002. to the value. Valid operators are Exists and Equal.
  5003. Defaults to Equal. Exists is equivalent to wildcard
  5004. for value, so that a pod can tolerate all taints of
  5005. a particular category.
  5006. type: string
  5007. tolerationSeconds:
  5008. description: TolerationSeconds represents the period
  5009. of time the toleration (which must be of effect NoExecute,
  5010. otherwise this field is ignored) tolerates the taint.
  5011. By default, it is not set, which means tolerate the
  5012. taint forever (do not evict). Zero and negative values
  5013. will be treated as 0 (evict immediately) by the system.
  5014. format: int64
  5015. type: integer
  5016. value:
  5017. description: Value is the taint value the toleration
  5018. matches to. If the operator is Exists, the value should
  5019. be empty, otherwise just a regular string.
  5020. type: string
  5021. type: object
  5022. type: array
  5023. type: object
  5024. replicas:
  5025. description: 'replicas indicates how many replicas should be created
  5026. for each KubeVirt infrastructure component (like virt-api or
  5027. virt-controller). Defaults to 2. WARNING: this is an advanced
  5028. feature that prevents auto-scaling for core kubevirt components.
  5029. Please use with caution!'
  5030. type: integer
  5031. type: object
  5032. monitorAccount:
  5033. description: The name of the Prometheus service account that needs
  5034. read-access to KubeVirt endpoints Defaults to prometheus-k8s
  5035. type: string
  5036. monitorNamespace:
  5037. description: The namespace Prometheus is deployed in Defaults to openshift-monitor
  5038. type: string
  5039. productComponent:
  5040. description: Designate the apps.kubevirt.io/component label for KubeVirt
  5041. components. Useful if KubeVirt is included as part of a product.
  5042. If ProductComponent is not specified, the component label default
  5043. value is kubevirt.
  5044. type: string
  5045. productName:
  5046. description: Designate the apps.kubevirt.io/part-of label for KubeVirt
  5047. components. Useful if KubeVirt is included as part of a product.
  5048. If ProductName is not specified, the part-of label will be omitted.
  5049. type: string
  5050. productVersion:
  5051. description: Designate the apps.kubevirt.io/version label for KubeVirt
  5052. components. Useful if KubeVirt is included as part of a product.
  5053. If ProductVersion is not specified, KubeVirt's version will be used.
  5054. type: string
  5055. serviceMonitorNamespace:
  5056. description: The namespace the service monitor will be deployed When
  5057. ServiceMonitorNamespace is set, then we'll install the service monitor
  5058. object in that namespace otherwise we will use the monitoring namespace.
  5059. type: string
  5060. uninstallStrategy:
  5061. description: Specifies if kubevirt can be deleted if workloads are
  5062. still present. This is mainly a precaution to avoid accidental data
  5063. loss
  5064. type: string
  5065. workloadUpdateStrategy:
  5066. description: WorkloadUpdateStrategy defines at the cluster level how
  5067. to handle automated workload updates
  5068. properties:
  5069. batchEvictionInterval:
  5070. description: "BatchEvictionInterval Represents the interval to
  5071. wait before issuing the next batch of shutdowns \n Defaults
  5072. to 1 minute"
  5073. type: string
  5074. batchEvictionSize:
  5075. description: "BatchEvictionSize Represents the number of VMIs
  5076. that can be forced updated per the BatchShutdownInteral interval
  5077. \n Defaults to 10"
  5078. type: integer
  5079. workloadUpdateMethods:
  5080. description: "WorkloadUpdateMethods defines the methods that can
  5081. be used to disrupt workloads during automated workload updates.
  5082. When multiple methods are present, the least disruptive method
  5083. takes precedence over more disruptive methods. For example if
  5084. both LiveMigrate and Shutdown methods are listed, only VMs which
  5085. are not live migratable will be restarted/shutdown \n An empty
  5086. list defaults to no automated workload updating"
  5087. items:
  5088. type: string
  5089. type: array
  5090. x-kubernetes-list-type: atomic
  5091. type: object
  5092. workloads:
  5093. description: selectors and tolerations that should apply to KubeVirt
  5094. workloads
  5095. properties:
  5096. nodePlacement:
  5097. description: nodePlacement describes scheduling configuration
  5098. for specific KubeVirt components
  5099. properties:
  5100. affinity:
  5101. description: affinity enables pod affinity/anti-affinity placement
  5102. expanding the types of constraints that can be expressed
  5103. with nodeSelector. affinity is going to be applied to the
  5104. relevant kind of pods in parallel with nodeSelector See
  5105. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
  5106. properties:
  5107. nodeAffinity:
  5108. description: Describes node affinity scheduling rules
  5109. for the pod.
  5110. properties:
  5111. preferredDuringSchedulingIgnoredDuringExecution:
  5112. description: The scheduler will prefer to schedule
  5113. pods to nodes that satisfy the affinity expressions
  5114. specified by this field, but it may choose a node
  5115. that violates one or more of the expressions. The
  5116. node that is most preferred is the one with the
  5117. greatest sum of weights, i.e. for each node that
  5118. meets all of the scheduling requirements (resource
  5119. request, requiredDuringScheduling affinity expressions,
  5120. etc.), compute a sum by iterating through the elements
  5121. of this field and adding "weight" to the sum if
  5122. the node matches the corresponding matchExpressions;
  5123. the node(s) with the highest sum are the most preferred.
  5124. items:
  5125. description: An empty preferred scheduling term
  5126. matches all objects with implicit weight 0 (i.e.
  5127. it's a no-op). A null preferred scheduling term
  5128. matches no objects (i.e. is also a no-op).
  5129. properties:
  5130. preference:
  5131. description: A node selector term, associated
  5132. with the corresponding weight.
  5133. properties:
  5134. matchExpressions:
  5135. description: A list of node selector requirements
  5136. by node's labels.
  5137. items:
  5138. description: A node selector requirement
  5139. is a selector that contains values,
  5140. a key, and an operator that relates
  5141. the key and values.
  5142. properties:
  5143. key:
  5144. description: The label key that the
  5145. selector applies to.
  5146. type: string
  5147. operator:
  5148. description: Represents a key's relationship
  5149. to a set of values. Valid operators
  5150. are In, NotIn, Exists, DoesNotExist.
  5151. Gt, and Lt.
  5152. type: string
  5153. values:
  5154. description: An array of string values.
  5155. If the operator is In or NotIn,
  5156. the values array must be non-empty.
  5157. If the operator is Exists or DoesNotExist,
  5158. the values array must be empty.
  5159. If the operator is Gt or Lt, the
  5160. values array must have a single
  5161. element, which will be interpreted
  5162. as an integer. This array is replaced
  5163. during a strategic merge patch.
  5164. items:
  5165. type: string
  5166. type: array
  5167. required:
  5168. - key
  5169. - operator
  5170. type: object
  5171. type: array
  5172. matchFields:
  5173. description: A list of node selector requirements
  5174. by node's fields.
  5175. items:
  5176. description: A node selector requirement
  5177. is a selector that contains values,
  5178. a key, and an operator that relates
  5179. the key and values.
  5180. properties:
  5181. key:
  5182. description: The label key that the
  5183. selector applies to.
  5184. type: string
  5185. operator:
  5186. description: Represents a key's relationship
  5187. to a set of values. Valid operators
  5188. are In, NotIn, Exists, DoesNotExist.
  5189. Gt, and Lt.
  5190. type: string
  5191. values:
  5192. description: An array of string values.
  5193. If the operator is In or NotIn,
  5194. the values array must be non-empty.
  5195. If the operator is Exists or DoesNotExist,
  5196. the values array must be empty.
  5197. If the operator is Gt or Lt, the
  5198. values array must have a single
  5199. element, which will be interpreted
  5200. as an integer. This array is replaced
  5201. during a strategic merge patch.
  5202. items:
  5203. type: string
  5204. type: array
  5205. required:
  5206. - key
  5207. - operator
  5208. type: object
  5209. type: array
  5210. type: object
  5211. weight:
  5212. description: Weight associated with matching
  5213. the corresponding nodeSelectorTerm, in the
  5214. range 1-100.
  5215. format: int32
  5216. type: integer
  5217. required:
  5218. - preference
  5219. - weight
  5220. type: object
  5221. type: array
  5222. requiredDuringSchedulingIgnoredDuringExecution:
  5223. description: If the affinity requirements specified
  5224. by this field are not met at scheduling time, the
  5225. pod will not be scheduled onto the node. If the
  5226. affinity requirements specified by this field cease
  5227. to be met at some point during pod execution (e.g.
  5228. due to an update), the system may or may not try
  5229. to eventually evict the pod from its node.
  5230. properties:
  5231. nodeSelectorTerms:
  5232. description: Required. A list of node selector
  5233. terms. The terms are ORed.
  5234. items:
  5235. description: A null or empty node selector term
  5236. matches no objects. The requirements of them
  5237. are ANDed. The TopologySelectorTerm type implements
  5238. a subset of the NodeSelectorTerm.
  5239. properties:
  5240. matchExpressions:
  5241. description: A list of node selector requirements
  5242. by node's labels.
  5243. items:
  5244. description: A node selector requirement
  5245. is a selector that contains values,
  5246. a key, and an operator that relates
  5247. the key and values.
  5248. properties:
  5249. key:
  5250. description: The label key that the
  5251. selector applies to.
  5252. type: string
  5253. operator:
  5254. description: Represents a key's relationship
  5255. to a set of values. Valid operators
  5256. are In, NotIn, Exists, DoesNotExist.
  5257. Gt, and Lt.
  5258. type: string
  5259. values:
  5260. description: An array of string values.
  5261. If the operator is In or NotIn,
  5262. the values array must be non-empty.
  5263. If the operator is Exists or DoesNotExist,
  5264. the values array must be empty.
  5265. If the operator is Gt or Lt, the
  5266. values array must have a single
  5267. element, which will be interpreted
  5268. as an integer. This array is replaced
  5269. during a strategic merge patch.
  5270. items:
  5271. type: string
  5272. type: array
  5273. required:
  5274. - key
  5275. - operator
  5276. type: object
  5277. type: array
  5278. matchFields:
  5279. description: A list of node selector requirements
  5280. by node's fields.
  5281. items:
  5282. description: A node selector requirement
  5283. is a selector that contains values,
  5284. a key, and an operator that relates
  5285. the key and values.
  5286. properties:
  5287. key:
  5288. description: The label key that the
  5289. selector applies to.
  5290. type: string
  5291. operator:
  5292. description: Represents a key's relationship
  5293. to a set of values. Valid operators
  5294. are In, NotIn, Exists, DoesNotExist.
  5295. Gt, and Lt.
  5296. type: string
  5297. values:
  5298. description: An array of string values.
  5299. If the operator is In or NotIn,
  5300. the values array must be non-empty.
  5301. If the operator is Exists or DoesNotExist,
  5302. the values array must be empty.
  5303. If the operator is Gt or Lt, the
  5304. values array must have a single
  5305. element, which will be interpreted
  5306. as an integer. This array is replaced
  5307. during a strategic merge patch.
  5308. items:
  5309. type: string
  5310. type: array
  5311. required:
  5312. - key
  5313. - operator
  5314. type: object
  5315. type: array
  5316. type: object
  5317. type: array
  5318. required:
  5319. - nodeSelectorTerms
  5320. type: object
  5321. type: object
  5322. podAffinity:
  5323. description: Describes pod affinity scheduling rules (e.g.
  5324. co-locate this pod in the same node, zone, etc. as some
  5325. other pod(s)).
  5326. properties:
  5327. preferredDuringSchedulingIgnoredDuringExecution:
  5328. description: The scheduler will prefer to schedule
  5329. pods to nodes that satisfy the affinity expressions
  5330. specified by this field, but it may choose a node
  5331. that violates one or more of the expressions. The
  5332. node that is most preferred is the one with the
  5333. greatest sum of weights, i.e. for each node that
  5334. meets all of the scheduling requirements (resource
  5335. request, requiredDuringScheduling affinity expressions,
  5336. etc.), compute a sum by iterating through the elements
  5337. of this field and adding "weight" to the sum if
  5338. the node has pods which matches the corresponding
  5339. podAffinityTerm; the node(s) with the highest sum
  5340. are the most preferred.
  5341. items:
  5342. description: The weights of all of the matched WeightedPodAffinityTerm
  5343. fields are added per-node to find the most preferred
  5344. node(s)
  5345. properties:
  5346. podAffinityTerm:
  5347. description: Required. A pod affinity term,
  5348. associated with the corresponding weight.
  5349. properties:
  5350. labelSelector:
  5351. description: A label query over a set of
  5352. resources, in this case pods.
  5353. properties:
  5354. matchExpressions:
  5355. description: matchExpressions is a list
  5356. of label selector requirements. The
  5357. requirements are ANDed.
  5358. items:
  5359. description: A label selector requirement
  5360. is a selector that contains values,
  5361. a key, and an operator that relates
  5362. the key and values.
  5363. properties:
  5364. key:
  5365. description: key is the label
  5366. key that the selector applies
  5367. to.
  5368. type: string
  5369. operator:
  5370. description: operator represents
  5371. a key's relationship to a set
  5372. of values. Valid operators are
  5373. In, NotIn, Exists and DoesNotExist.
  5374. type: string
  5375. values:
  5376. description: values is an array
  5377. of string values. If the operator
  5378. is In or NotIn, the values array
  5379. must be non-empty. If the operator
  5380. is Exists or DoesNotExist, the
  5381. values array must be empty.
  5382. This array is replaced during
  5383. a strategic merge patch.
  5384. items:
  5385. type: string
  5386. type: array
  5387. required:
  5388. - key
  5389. - operator
  5390. type: object
  5391. type: array
  5392. matchLabels:
  5393. additionalProperties:
  5394. type: string
  5395. description: matchLabels is a map of
  5396. {key,value} pairs. A single {key,value}
  5397. in the matchLabels map is equivalent
  5398. to an element of matchExpressions,
  5399. whose key field is "key", the operator
  5400. is "In", and the values array contains
  5401. only "value". The requirements are
  5402. ANDed.
  5403. type: object
  5404. type: object
  5405. namespaceSelector:
  5406. description: A label query over the set
  5407. of namespaces that the term applies to.
  5408. The term is applied to the union of the
  5409. namespaces selected by this field and
  5410. the ones listed in the namespaces field.
  5411. null selector and null or empty namespaces
  5412. list means "this pod's namespace". An
  5413. empty selector ({}) matches all namespaces.
  5414. properties:
  5415. matchExpressions:
  5416. description: matchExpressions is a list
  5417. of label selector requirements. The
  5418. requirements are ANDed.
  5419. items:
  5420. description: A label selector requirement
  5421. is a selector that contains values,
  5422. a key, and an operator that relates
  5423. the key and values.
  5424. properties:
  5425. key:
  5426. description: key is the label
  5427. key that the selector applies
  5428. to.
  5429. type: string
  5430. operator:
  5431. description: operator represents
  5432. a key's relationship to a set
  5433. of values. Valid operators are
  5434. In, NotIn, Exists and DoesNotExist.
  5435. type: string
  5436. values:
  5437. description: values is an array
  5438. of string values. If the operator
  5439. is In or NotIn, the values array
  5440. must be non-empty. If the operator
  5441. is Exists or DoesNotExist, the
  5442. values array must be empty.
  5443. This array is replaced during
  5444. a strategic merge patch.
  5445. items:
  5446. type: string
  5447. type: array
  5448. required:
  5449. - key
  5450. - operator
  5451. type: object
  5452. type: array
  5453. matchLabels:
  5454. additionalProperties:
  5455. type: string
  5456. description: matchLabels is a map of
  5457. {key,value} pairs. A single {key,value}
  5458. in the matchLabels map is equivalent
  5459. to an element of matchExpressions,
  5460. whose key field is "key", the operator
  5461. is "In", and the values array contains
  5462. only "value". The requirements are
  5463. ANDed.
  5464. type: object
  5465. type: object
  5466. namespaces:
  5467. description: namespaces specifies a static
  5468. list of namespace names that the term
  5469. applies to. The term is applied to the
  5470. union of the namespaces listed in this
  5471. field and the ones selected by namespaceSelector.
  5472. null or empty namespaces list and null
  5473. namespaceSelector means "this pod's namespace".
  5474. items:
  5475. type: string
  5476. type: array
  5477. topologyKey:
  5478. description: This pod should be co-located
  5479. (affinity) or not co-located (anti-affinity)
  5480. with the pods matching the labelSelector
  5481. in the specified namespaces, where co-located
  5482. is defined as running on a node whose
  5483. value of the label with key topologyKey
  5484. matches that of any node on which any
  5485. of the selected pods is running. Empty
  5486. topologyKey is not allowed.
  5487. type: string
  5488. required:
  5489. - topologyKey
  5490. type: object
  5491. weight:
  5492. description: weight associated with matching
  5493. the corresponding podAffinityTerm, in the
  5494. range 1-100.
  5495. format: int32
  5496. type: integer
  5497. required:
  5498. - podAffinityTerm
  5499. - weight
  5500. type: object
  5501. type: array
  5502. requiredDuringSchedulingIgnoredDuringExecution:
  5503. description: If the affinity requirements specified
  5504. by this field are not met at scheduling time, the
  5505. pod will not be scheduled onto the node. If the
  5506. affinity requirements specified by this field cease
  5507. to be met at some point during pod execution (e.g.
  5508. due to a pod label update), the system may or may
  5509. not try to eventually evict the pod from its node.
  5510. When there are multiple elements, the lists of nodes
  5511. corresponding to each podAffinityTerm are intersected,
  5512. i.e. all terms must be satisfied.
  5513. items:
  5514. description: Defines a set of pods (namely those
  5515. matching the labelSelector relative to the given
  5516. namespace(s)) that this pod should be co-located
  5517. (affinity) or not co-located (anti-affinity) with,
  5518. where co-located is defined as running on a node
  5519. whose value of the label with key <topologyKey>
  5520. matches that of any node on which a pod of the
  5521. set of pods is running
  5522. properties:
  5523. labelSelector:
  5524. description: A label query over a set of resources,
  5525. in this case pods.
  5526. properties:
  5527. matchExpressions:
  5528. description: matchExpressions is a list
  5529. of label selector requirements. The requirements
  5530. are ANDed.
  5531. items:
  5532. description: A label selector requirement
  5533. is a selector that contains values,
  5534. a key, and an operator that relates
  5535. the key and values.
  5536. properties:
  5537. key:
  5538. description: key is the label key
  5539. that the selector applies to.
  5540. type: string
  5541. operator:
  5542. description: operator represents a
  5543. key's relationship to a set of values.
  5544. Valid operators are In, NotIn, Exists
  5545. and DoesNotExist.
  5546. type: string
  5547. values:
  5548. description: values is an array of
  5549. string values. If the operator is
  5550. In or NotIn, the values array must
  5551. be non-empty. If the operator is
  5552. Exists or DoesNotExist, the values
  5553. array must be empty. This array
  5554. is replaced during a strategic merge
  5555. patch.
  5556. items:
  5557. type: string
  5558. type: array
  5559. required:
  5560. - key
  5561. - operator
  5562. type: object
  5563. type: array
  5564. matchLabels:
  5565. additionalProperties:
  5566. type: string
  5567. description: matchLabels is a map of {key,value}
  5568. pairs. A single {key,value} in the matchLabels
  5569. map is equivalent to an element of matchExpressions,
  5570. whose key field is "key", the operator
  5571. is "In", and the values array contains
  5572. only "value". The requirements are ANDed.
  5573. type: object
  5574. type: object
  5575. namespaceSelector:
  5576. description: A label query over the set of namespaces
  5577. that the term applies to. The term is applied
  5578. to the union of the namespaces selected by
  5579. this field and the ones listed in the namespaces
  5580. field. null selector and null or empty namespaces
  5581. list means "this pod's namespace". An empty
  5582. selector ({}) matches all namespaces.
  5583. properties:
  5584. matchExpressions:
  5585. description: matchExpressions is a list
  5586. of label selector requirements. The requirements
  5587. are ANDed.
  5588. items:
  5589. description: A label selector requirement
  5590. is a selector that contains values,
  5591. a key, and an operator that relates
  5592. the key and values.
  5593. properties:
  5594. key:
  5595. description: key is the label key
  5596. that the selector applies to.
  5597. type: string
  5598. operator:
  5599. description: operator represents a
  5600. key's relationship to a set of values.
  5601. Valid operators are In, NotIn, Exists
  5602. and DoesNotExist.
  5603. type: string
  5604. values:
  5605. description: values is an array of
  5606. string values. If the operator is
  5607. In or NotIn, the values array must
  5608. be non-empty. If the operator is
  5609. Exists or DoesNotExist, the values
  5610. array must be empty. This array
  5611. is replaced during a strategic merge
  5612. patch.
  5613. items:
  5614. type: string
  5615. type: array
  5616. required:
  5617. - key
  5618. - operator
  5619. type: object
  5620. type: array
  5621. matchLabels:
  5622. additionalProperties:
  5623. type: string
  5624. description: matchLabels is a map of {key,value}
  5625. pairs. A single {key,value} in the matchLabels
  5626. map is equivalent to an element of matchExpressions,
  5627. whose key field is "key", the operator
  5628. is "In", and the values array contains
  5629. only "value". The requirements are ANDed.
  5630. type: object
  5631. type: object
  5632. namespaces:
  5633. description: namespaces specifies a static list
  5634. of namespace names that the term applies to.
  5635. The term is applied to the union of the namespaces
  5636. listed in this field and the ones selected
  5637. by namespaceSelector. null or empty namespaces
  5638. list and null namespaceSelector means "this
  5639. pod's namespace".
  5640. items:
  5641. type: string
  5642. type: array
  5643. topologyKey:
  5644. description: This pod should be co-located (affinity)
  5645. or not co-located (anti-affinity) with the
  5646. pods matching the labelSelector in the specified
  5647. namespaces, where co-located is defined as
  5648. running on a node whose value of the label
  5649. with key topologyKey matches that of any node
  5650. on which any of the selected pods is running.
  5651. Empty topologyKey is not allowed.
  5652. type: string
  5653. required:
  5654. - topologyKey
  5655. type: object
  5656. type: array
  5657. type: object
  5658. podAntiAffinity:
  5659. description: Describes pod anti-affinity scheduling rules
  5660. (e.g. avoid putting this pod in the same node, zone,
  5661. etc. as some other pod(s)).
  5662. properties:
  5663. preferredDuringSchedulingIgnoredDuringExecution:
  5664. description: The scheduler will prefer to schedule
  5665. pods to nodes that satisfy the anti-affinity expressions
  5666. specified by this field, but it may choose a node
  5667. that violates one or more of the expressions. The
  5668. node that is most preferred is the one with the
  5669. greatest sum of weights, i.e. for each node that
  5670. meets all of the scheduling requirements (resource
  5671. request, requiredDuringScheduling anti-affinity
  5672. expressions, etc.), compute a sum by iterating through
  5673. the elements of this field and adding "weight" to
  5674. the sum if the node has pods which matches the corresponding
  5675. podAffinityTerm; the node(s) with the highest sum
  5676. are the most preferred.
  5677. items:
  5678. description: The weights of all of the matched WeightedPodAffinityTerm
  5679. fields are added per-node to find the most preferred
  5680. node(s)
  5681. properties:
  5682. podAffinityTerm:
  5683. description: Required. A pod affinity term,
  5684. associated with the corresponding weight.
  5685. properties:
  5686. labelSelector:
  5687. description: A label query over a set of
  5688. resources, in this case pods.
  5689. properties:
  5690. matchExpressions:
  5691. description: matchExpressions is a list
  5692. of label selector requirements. The
  5693. requirements are ANDed.
  5694. items:
  5695. description: A label selector requirement
  5696. is a selector that contains values,
  5697. a key, and an operator that relates
  5698. the key and values.
  5699. properties:
  5700. key:
  5701. description: key is the label
  5702. key that the selector applies
  5703. to.
  5704. type: string
  5705. operator:
  5706. description: operator represents
  5707. a key's relationship to a set
  5708. of values. Valid operators are
  5709. In, NotIn, Exists and DoesNotExist.
  5710. type: string
  5711. values:
  5712. description: values is an array
  5713. of string values. If the operator
  5714. is In or NotIn, the values array
  5715. must be non-empty. If the operator
  5716. is Exists or DoesNotExist, the
  5717. values array must be empty.
  5718. This array is replaced during
  5719. a strategic merge patch.
  5720. items:
  5721. type: string
  5722. type: array
  5723. required:
  5724. - key
  5725. - operator
  5726. type: object
  5727. type: array
  5728. matchLabels:
  5729. additionalProperties:
  5730. type: string
  5731. description: matchLabels is a map of
  5732. {key,value} pairs. A single {key,value}
  5733. in the matchLabels map is equivalent
  5734. to an element of matchExpressions,
  5735. whose key field is "key", the operator
  5736. is "In", and the values array contains
  5737. only "value". The requirements are
  5738. ANDed.
  5739. type: object
  5740. type: object
  5741. namespaceSelector:
  5742. description: A label query over the set
  5743. of namespaces that the term applies to.
  5744. The term is applied to the union of the
  5745. namespaces selected by this field and
  5746. the ones listed in the namespaces field.
  5747. null selector and null or empty namespaces
  5748. list means "this pod's namespace". An
  5749. empty selector ({}) matches all namespaces.
  5750. properties:
  5751. matchExpressions:
  5752. description: matchExpressions is a list
  5753. of label selector requirements. The
  5754. requirements are ANDed.
  5755. items:
  5756. description: A label selector requirement
  5757. is a selector that contains values,
  5758. a key, and an operator that relates
  5759. the key and values.
  5760. properties:
  5761. key:
  5762. description: key is the label
  5763. key that the selector applies
  5764. to.
  5765. type: string
  5766. operator:
  5767. description: operator represents
  5768. a key's relationship to a set
  5769. of values. Valid operators are
  5770. In, NotIn, Exists and DoesNotExist.
  5771. type: string
  5772. values:
  5773. description: values is an array
  5774. of string values. If the operator
  5775. is In or NotIn, the values array
  5776. must be non-empty. If the operator
  5777. is Exists or DoesNotExist, the
  5778. values array must be empty.
  5779. This array is replaced during
  5780. a strategic merge patch.
  5781. items:
  5782. type: string
  5783. type: array
  5784. required:
  5785. - key
  5786. - operator
  5787. type: object
  5788. type: array
  5789. matchLabels:
  5790. additionalProperties:
  5791. type: string
  5792. description: matchLabels is a map of
  5793. {key,value} pairs. A single {key,value}
  5794. in the matchLabels map is equivalent
  5795. to an element of matchExpressions,
  5796. whose key field is "key", the operator
  5797. is "In", and the values array contains
  5798. only "value". The requirements are
  5799. ANDed.
  5800. type: object
  5801. type: object
  5802. namespaces:
  5803. description: namespaces specifies a static
  5804. list of namespace names that the term
  5805. applies to. The term is applied to the
  5806. union of the namespaces listed in this
  5807. field and the ones selected by namespaceSelector.
  5808. null or empty namespaces list and null
  5809. namespaceSelector means "this pod's namespace".
  5810. items:
  5811. type: string
  5812. type: array
  5813. topologyKey:
  5814. description: This pod should be co-located
  5815. (affinity) or not co-located (anti-affinity)
  5816. with the pods matching the labelSelector
  5817. in the specified namespaces, where co-located
  5818. is defined as running on a node whose
  5819. value of the label with key topologyKey
  5820. matches that of any node on which any
  5821. of the selected pods is running. Empty
  5822. topologyKey is not allowed.
  5823. type: string
  5824. required:
  5825. - topologyKey
  5826. type: object
  5827. weight:
  5828. description: weight associated with matching
  5829. the corresponding podAffinityTerm, in the
  5830. range 1-100.
  5831. format: int32
  5832. type: integer
  5833. required:
  5834. - podAffinityTerm
  5835. - weight
  5836. type: object
  5837. type: array
  5838. requiredDuringSchedulingIgnoredDuringExecution:
  5839. description: If the anti-affinity requirements specified
  5840. by this field are not met at scheduling time, the
  5841. pod will not be scheduled onto the node. If the
  5842. anti-affinity requirements specified by this field
  5843. cease to be met at some point during pod execution
  5844. (e.g. due to a pod label update), the system may
  5845. or may not try to eventually evict the pod from
  5846. its node. When there are multiple elements, the
  5847. lists of nodes corresponding to each podAffinityTerm
  5848. are intersected, i.e. all terms must be satisfied.
  5849. items:
  5850. description: Defines a set of pods (namely those
  5851. matching the labelSelector relative to the given
  5852. namespace(s)) that this pod should be co-located
  5853. (affinity) or not co-located (anti-affinity) with,
  5854. where co-located is defined as running on a node
  5855. whose value of the label with key <topologyKey>
  5856. matches that of any node on which a pod of the
  5857. set of pods is running
  5858. properties:
  5859. labelSelector:
  5860. description: A label query over a set of resources,
  5861. in this case pods.
  5862. properties:
  5863. matchExpressions:
  5864. description: matchExpressions is a list
  5865. of label selector requirements. The requirements
  5866. are ANDed.
  5867. items:
  5868. description: A label selector requirement
  5869. is a selector that contains values,
  5870. a key, and an operator that relates
  5871. the key and values.
  5872. properties:
  5873. key:
  5874. description: key is the label key
  5875. that the selector applies to.
  5876. type: string
  5877. operator:
  5878. description: operator represents a
  5879. key's relationship to a set of values.
  5880. Valid operators are In, NotIn, Exists
  5881. and DoesNotExist.
  5882. type: string
  5883. values:
  5884. description: values is an array of
  5885. string values. If the operator is
  5886. In or NotIn, the values array must
  5887. be non-empty. If the operator is
  5888. Exists or DoesNotExist, the values
  5889. array must be empty. This array
  5890. is replaced during a strategic merge
  5891. patch.
  5892. items:
  5893. type: string
  5894. type: array
  5895. required:
  5896. - key
  5897. - operator
  5898. type: object
  5899. type: array
  5900. matchLabels:
  5901. additionalProperties:
  5902. type: string
  5903. description: matchLabels is a map of {key,value}
  5904. pairs. A single {key,value} in the matchLabels
  5905. map is equivalent to an element of matchExpressions,
  5906. whose key field is "key", the operator
  5907. is "In", and the values array contains
  5908. only "value". The requirements are ANDed.
  5909. type: object
  5910. type: object
  5911. namespaceSelector:
  5912. description: A label query over the set of namespaces
  5913. that the term applies to. The term is applied
  5914. to the union of the namespaces selected by
  5915. this field and the ones listed in the namespaces
  5916. field. null selector and null or empty namespaces
  5917. list means "this pod's namespace". An empty
  5918. selector ({}) matches all namespaces.
  5919. properties:
  5920. matchExpressions:
  5921. description: matchExpressions is a list
  5922. of label selector requirements. The requirements
  5923. are ANDed.
  5924. items:
  5925. description: A label selector requirement
  5926. is a selector that contains values,
  5927. a key, and an operator that relates
  5928. the key and values.
  5929. properties:
  5930. key:
  5931. description: key is the label key
  5932. that the selector applies to.
  5933. type: string
  5934. operator:
  5935. description: operator represents a
  5936. key's relationship to a set of values.
  5937. Valid operators are In, NotIn, Exists
  5938. and DoesNotExist.
  5939. type: string
  5940. values:
  5941. description: values is an array of
  5942. string values. If the operator is
  5943. In or NotIn, the values array must
  5944. be non-empty. If the operator is
  5945. Exists or DoesNotExist, the values
  5946. array must be empty. This array
  5947. is replaced during a strategic merge
  5948. patch.
  5949. items:
  5950. type: string
  5951. type: array
  5952. required:
  5953. - key
  5954. - operator
  5955. type: object
  5956. type: array
  5957. matchLabels:
  5958. additionalProperties:
  5959. type: string
  5960. description: matchLabels is a map of {key,value}
  5961. pairs. A single {key,value} in the matchLabels
  5962. map is equivalent to an element of matchExpressions,
  5963. whose key field is "key", the operator
  5964. is "In", and the values array contains
  5965. only "value". The requirements are ANDed.
  5966. type: object
  5967. type: object
  5968. namespaces:
  5969. description: namespaces specifies a static list
  5970. of namespace names that the term applies to.
  5971. The term is applied to the union of the namespaces
  5972. listed in this field and the ones selected
  5973. by namespaceSelector. null or empty namespaces
  5974. list and null namespaceSelector means "this
  5975. pod's namespace".
  5976. items:
  5977. type: string
  5978. type: array
  5979. topologyKey:
  5980. description: This pod should be co-located (affinity)
  5981. or not co-located (anti-affinity) with the
  5982. pods matching the labelSelector in the specified
  5983. namespaces, where co-located is defined as
  5984. running on a node whose value of the label
  5985. with key topologyKey matches that of any node
  5986. on which any of the selected pods is running.
  5987. Empty topologyKey is not allowed.
  5988. type: string
  5989. required:
  5990. - topologyKey
  5991. type: object
  5992. type: array
  5993. type: object
  5994. type: object
  5995. nodeSelector:
  5996. additionalProperties:
  5997. type: string
  5998. description: 'nodeSelector is the node selector applied to
  5999. the relevant kind of pods It specifies a map of key-value
  6000. pairs: for the pod to be eligible to run on a node, the
  6001. node must have each of the indicated key-value pairs as
  6002. labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
  6003. type: object
  6004. tolerations:
  6005. description: tolerations is a list of tolerations applied
  6006. to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  6007. for more info. These are additional tolerations other than
  6008. default ones.
  6009. items:
  6010. description: The pod this Toleration is attached to tolerates
  6011. any taint that matches the triple <key,value,effect> using
  6012. the matching operator <operator>.
  6013. properties:
  6014. effect:
  6015. description: Effect indicates the taint effect to match.
  6016. Empty means match all taint effects. When specified,
  6017. allowed values are NoSchedule, PreferNoSchedule and
  6018. NoExecute.
  6019. type: string
  6020. key:
  6021. description: Key is the taint key that the toleration
  6022. applies to. Empty means match all taint keys. If the
  6023. key is empty, operator must be Exists; this combination
  6024. means to match all values and all keys.
  6025. type: string
  6026. operator:
  6027. description: Operator represents a key's relationship
  6028. to the value. Valid operators are Exists and Equal.
  6029. Defaults to Equal. Exists is equivalent to wildcard
  6030. for value, so that a pod can tolerate all taints of
  6031. a particular category.
  6032. type: string
  6033. tolerationSeconds:
  6034. description: TolerationSeconds represents the period
  6035. of time the toleration (which must be of effect NoExecute,
  6036. otherwise this field is ignored) tolerates the taint.
  6037. By default, it is not set, which means tolerate the
  6038. taint forever (do not evict). Zero and negative values
  6039. will be treated as 0 (evict immediately) by the system.
  6040. format: int64
  6041. type: integer
  6042. value:
  6043. description: Value is the taint value the toleration
  6044. matches to. If the operator is Exists, the value should
  6045. be empty, otherwise just a regular string.
  6046. type: string
  6047. type: object
  6048. type: array
  6049. type: object
  6050. replicas:
  6051. description: 'replicas indicates how many replicas should be created
  6052. for each KubeVirt infrastructure component (like virt-api or
  6053. virt-controller). Defaults to 2. WARNING: this is an advanced
  6054. feature that prevents auto-scaling for core kubevirt components.
  6055. Please use with caution!'
  6056. type: integer
  6057. type: object
  6058. type: object
  6059. status:
  6060. description: KubeVirtStatus represents information pertaining to a KubeVirt
  6061. deployment.
  6062. properties:
  6063. conditions:
  6064. items:
  6065. description: KubeVirtCondition represents a condition of a KubeVirt
  6066. deployment
  6067. properties:
  6068. lastProbeTime:
  6069. format: date-time
  6070. nullable: true
  6071. type: string
  6072. lastTransitionTime:
  6073. format: date-time
  6074. nullable: true
  6075. type: string
  6076. message:
  6077. type: string
  6078. reason:
  6079. type: string
  6080. status:
  6081. type: string
  6082. type:
  6083. type: string
  6084. required:
  6085. - status
  6086. - type
  6087. type: object
  6088. type: array
  6089. defaultArchitecture:
  6090. type: string
  6091. generations:
  6092. items:
  6093. description: GenerationStatus keeps track of the generation for
  6094. a given resource so that decisions about forced updates can be
  6095. made.
  6096. properties:
  6097. group:
  6098. description: group is the group of the thing you're tracking
  6099. type: string
  6100. hash:
  6101. description: hash is an optional field set for resources without
  6102. generation that are content sensitive like secrets and configmaps
  6103. type: string
  6104. lastGeneration:
  6105. description: lastGeneration is the last generation of the workload
  6106. controller involved
  6107. format: int64
  6108. type: integer
  6109. name:
  6110. description: name is the name of the thing you're tracking
  6111. type: string
  6112. namespace:
  6113. description: namespace is where the thing you're tracking is
  6114. type: string
  6115. resource:
  6116. description: resource is the resource type of the thing you're
  6117. tracking
  6118. type: string
  6119. required:
  6120. - group
  6121. - lastGeneration
  6122. - name
  6123. - resource
  6124. type: object
  6125. type: array
  6126. x-kubernetes-list-type: atomic
  6127. observedDeploymentConfig:
  6128. type: string
  6129. observedDeploymentID:
  6130. type: string
  6131. observedGeneration:
  6132. format: int64
  6133. type: integer
  6134. observedKubeVirtRegistry:
  6135. type: string
  6136. observedKubeVirtVersion:
  6137. type: string
  6138. operatorVersion:
  6139. type: string
  6140. outdatedVirtualMachineInstanceWorkloads:
  6141. type: integer
  6142. phase:
  6143. description: KubeVirtPhase is a label for the phase of a KubeVirt
  6144. deployment at the current time.
  6145. type: string
  6146. targetDeploymentConfig:
  6147. type: string
  6148. targetDeploymentID:
  6149. type: string
  6150. targetKubeVirtRegistry:
  6151. type: string
  6152. targetKubeVirtVersion:
  6153. type: string
  6154. type: object
  6155. required:
  6156. - spec
  6157. type: object
  6158. served: true
  6159. storage: false
  6160. subresources:
  6161. status: {}
  6162. ---
  6163. apiVersion: scheduling.k8s.io/v1
  6164. kind: PriorityClass
  6165. metadata:
  6166. name: kubevirt-cluster-critical
  6167. value: 1000000000
  6168. globalDefault: false
  6169. description: "This priority class should be used for core kubevirt components only."
  6170. ---
  6171. apiVersion: rbac.authorization.k8s.io/v1
  6172. kind: ClusterRole
  6173. metadata:
  6174. name: kubevirt.io:operator
  6175. labels:
  6176. operator.kubevirt.io: ""
  6177. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  6178. rules:
  6179. - apiGroups:
  6180. - kubevirt.io
  6181. resources:
  6182. - kubevirts
  6183. verbs:
  6184. - get
  6185. - delete
  6186. - create
  6187. - update
  6188. - patch
  6189. - list
  6190. - watch
  6191. - deletecollection
  6192. ---
  6193. apiVersion: v1
  6194. kind: ServiceAccount
  6195. metadata:
  6196. labels:
  6197. kubevirt.io: ""
  6198. name: kubevirt-operator
  6199. namespace: kubevirt
  6200. ---
  6201. apiVersion: rbac.authorization.k8s.io/v1
  6202. kind: Role
  6203. metadata:
  6204. labels:
  6205. kubevirt.io: ""
  6206. name: kubevirt-operator
  6207. namespace: kubevirt
  6208. rules:
  6209. - apiGroups:
  6210. - ""
  6211. resourceNames:
  6212. - kubevirt-ca
  6213. - kubevirt-export-ca
  6214. - kubevirt-virt-handler-certs
  6215. - kubevirt-virt-handler-server-certs
  6216. - kubevirt-operator-certs
  6217. - kubevirt-virt-api-certs
  6218. - kubevirt-controller-certs
  6219. - kubevirt-exportproxy-certs
  6220. resources:
  6221. - secrets
  6222. verbs:
  6223. - create
  6224. - get
  6225. - list
  6226. - watch
  6227. - patch
  6228. - delete
  6229. - apiGroups:
  6230. - ""
  6231. resources:
  6232. - configmaps
  6233. verbs:
  6234. - create
  6235. - get
  6236. - list
  6237. - watch
  6238. - patch
  6239. - delete
  6240. - apiGroups:
  6241. - route.openshift.io
  6242. resources:
  6243. - routes
  6244. verbs:
  6245. - create
  6246. - get
  6247. - list
  6248. - watch
  6249. - patch
  6250. - delete
  6251. - apiGroups:
  6252. - route.openshift.io
  6253. resources:
  6254. - routes/custom-host
  6255. verbs:
  6256. - create
  6257. - apiGroups:
  6258. - coordination.k8s.io
  6259. resources:
  6260. - leases
  6261. verbs:
  6262. - get
  6263. - list
  6264. - watch
  6265. - delete
  6266. - update
  6267. - create
  6268. - patch
  6269. ---
  6270. apiVersion: rbac.authorization.k8s.io/v1
  6271. kind: RoleBinding
  6272. metadata:
  6273. labels:
  6274. kubevirt.io: ""
  6275. name: kubevirt-operator-rolebinding
  6276. namespace: kubevirt
  6277. roleRef:
  6278. apiGroup: rbac.authorization.k8s.io
  6279. kind: Role
  6280. name: kubevirt-operator
  6281. subjects:
  6282. - kind: ServiceAccount
  6283. name: kubevirt-operator
  6284. namespace: kubevirt
  6285. ---
  6286. apiVersion: rbac.authorization.k8s.io/v1
  6287. kind: ClusterRole
  6288. metadata:
  6289. labels:
  6290. kubevirt.io: ""
  6291. name: kubevirt-operator
  6292. rules:
  6293. - apiGroups:
  6294. - kubevirt.io
  6295. resources:
  6296. - kubevirts
  6297. verbs:
  6298. - get
  6299. - list
  6300. - watch
  6301. - patch
  6302. - update
  6303. - patch
  6304. - apiGroups:
  6305. - ""
  6306. resources:
  6307. - serviceaccounts
  6308. - services
  6309. - endpoints
  6310. - pods/exec
  6311. verbs:
  6312. - get
  6313. - list
  6314. - watch
  6315. - create
  6316. - update
  6317. - delete
  6318. - patch
  6319. - apiGroups:
  6320. - ""
  6321. resources:
  6322. - configmaps
  6323. verbs:
  6324. - patch
  6325. - delete
  6326. - apiGroups:
  6327. - batch
  6328. resources:
  6329. - jobs
  6330. verbs:
  6331. - get
  6332. - list
  6333. - watch
  6334. - create
  6335. - delete
  6336. - patch
  6337. - apiGroups:
  6338. - apps
  6339. resources:
  6340. - controllerrevisions
  6341. verbs:
  6342. - watch
  6343. - list
  6344. - create
  6345. - delete
  6346. - patch
  6347. - apiGroups:
  6348. - apps
  6349. resources:
  6350. - deployments
  6351. - daemonsets
  6352. verbs:
  6353. - get
  6354. - list
  6355. - watch
  6356. - create
  6357. - delete
  6358. - patch
  6359. - apiGroups:
  6360. - rbac.authorization.k8s.io
  6361. resources:
  6362. - clusterroles
  6363. - clusterrolebindings
  6364. - roles
  6365. - rolebindings
  6366. verbs:
  6367. - get
  6368. - list
  6369. - watch
  6370. - create
  6371. - delete
  6372. - patch
  6373. - update
  6374. - apiGroups:
  6375. - apiextensions.k8s.io
  6376. resources:
  6377. - customresourcedefinitions
  6378. verbs:
  6379. - get
  6380. - list
  6381. - watch
  6382. - create
  6383. - delete
  6384. - patch
  6385. - apiGroups:
  6386. - security.openshift.io
  6387. resources:
  6388. - securitycontextconstraints
  6389. verbs:
  6390. - create
  6391. - get
  6392. - list
  6393. - watch
  6394. - apiGroups:
  6395. - security.openshift.io
  6396. resourceNames:
  6397. - privileged
  6398. resources:
  6399. - securitycontextconstraints
  6400. verbs:
  6401. - get
  6402. - patch
  6403. - update
  6404. - apiGroups:
  6405. - security.openshift.io
  6406. resourceNames:
  6407. - kubevirt-handler
  6408. - kubevirt-controller
  6409. resources:
  6410. - securitycontextconstraints
  6411. verbs:
  6412. - get
  6413. - list
  6414. - watch
  6415. - update
  6416. - delete
  6417. - apiGroups:
  6418. - admissionregistration.k8s.io
  6419. resources:
  6420. - validatingwebhookconfigurations
  6421. - mutatingwebhookconfigurations
  6422. verbs:
  6423. - get
  6424. - list
  6425. - watch
  6426. - create
  6427. - delete
  6428. - update
  6429. - patch
  6430. - apiGroups:
  6431. - apiregistration.k8s.io
  6432. resources:
  6433. - apiservices
  6434. verbs:
  6435. - get
  6436. - list
  6437. - watch
  6438. - create
  6439. - delete
  6440. - update
  6441. - patch
  6442. - apiGroups:
  6443. - monitoring.coreos.com
  6444. resources:
  6445. - servicemonitors
  6446. - prometheusrules
  6447. verbs:
  6448. - get
  6449. - list
  6450. - watch
  6451. - create
  6452. - delete
  6453. - update
  6454. - patch
  6455. - apiGroups:
  6456. - ""
  6457. resources:
  6458. - namespaces
  6459. verbs:
  6460. - get
  6461. - list
  6462. - watch
  6463. - patch
  6464. - apiGroups:
  6465. - ""
  6466. resources:
  6467. - pods
  6468. verbs:
  6469. - get
  6470. - list
  6471. - delete
  6472. - patch
  6473. - apiGroups:
  6474. - kubevirt.io
  6475. resources:
  6476. - virtualmachines
  6477. - virtualmachineinstances
  6478. verbs:
  6479. - get
  6480. - list
  6481. - watch
  6482. - patch
  6483. - update
  6484. - apiGroups:
  6485. - ""
  6486. resources:
  6487. - persistentvolumeclaims
  6488. verbs:
  6489. - get
  6490. - apiGroups:
  6491. - kubevirt.io
  6492. resources:
  6493. - virtualmachines/status
  6494. verbs:
  6495. - patch
  6496. - apiGroups:
  6497. - kubevirt.io
  6498. resources:
  6499. - virtualmachineinstancemigrations
  6500. verbs:
  6501. - create
  6502. - get
  6503. - list
  6504. - watch
  6505. - patch
  6506. - apiGroups:
  6507. - kubevirt.io
  6508. resources:
  6509. - virtualmachineinstancepresets
  6510. verbs:
  6511. - watch
  6512. - list
  6513. - apiGroups:
  6514. - ""
  6515. resources:
  6516. - configmaps
  6517. verbs:
  6518. - get
  6519. - list
  6520. - watch
  6521. - apiGroups:
  6522. - ""
  6523. resources:
  6524. - limitranges
  6525. verbs:
  6526. - watch
  6527. - list
  6528. - apiGroups:
  6529. - apiextensions.k8s.io
  6530. resources:
  6531. - customresourcedefinitions
  6532. verbs:
  6533. - get
  6534. - list
  6535. - watch
  6536. - apiGroups:
  6537. - kubevirt.io
  6538. resources:
  6539. - kubevirts
  6540. verbs:
  6541. - get
  6542. - list
  6543. - watch
  6544. - apiGroups:
  6545. - snapshot.kubevirt.io
  6546. resources:
  6547. - virtualmachinesnapshots
  6548. - virtualmachinerestores
  6549. - virtualmachinesnapshotcontents
  6550. verbs:
  6551. - get
  6552. - list
  6553. - watch
  6554. - apiGroups:
  6555. - cdi.kubevirt.io
  6556. resources:
  6557. - datasources
  6558. - datavolumes
  6559. verbs:
  6560. - get
  6561. - list
  6562. - watch
  6563. - apiGroups:
  6564. - ""
  6565. resources:
  6566. - namespaces
  6567. verbs:
  6568. - get
  6569. - list
  6570. - watch
  6571. - apiGroups:
  6572. - instancetype.kubevirt.io
  6573. resources:
  6574. - virtualmachineinstancetypes
  6575. - virtualmachineclusterinstancetypes
  6576. - virtualmachinepreferences
  6577. - virtualmachineclusterpreferences
  6578. verbs:
  6579. - get
  6580. - list
  6581. - watch
  6582. - apiGroups:
  6583. - migrations.kubevirt.io
  6584. resources:
  6585. - migrationpolicies
  6586. verbs:
  6587. - get
  6588. - list
  6589. - watch
  6590. - apiGroups:
  6591. - apps
  6592. resources:
  6593. - controllerrevisions
  6594. verbs:
  6595. - create
  6596. - list
  6597. - get
  6598. - apiGroups:
  6599. - ""
  6600. resources:
  6601. - configmaps
  6602. verbs:
  6603. - get
  6604. - list
  6605. - watch
  6606. - apiGroups:
  6607. - ""
  6608. resources:
  6609. - namespaces
  6610. verbs:
  6611. - get
  6612. - list
  6613. - watch
  6614. - patch
  6615. - apiGroups:
  6616. - policy
  6617. resources:
  6618. - poddisruptionbudgets
  6619. verbs:
  6620. - get
  6621. - list
  6622. - watch
  6623. - delete
  6624. - create
  6625. - patch
  6626. - apiGroups:
  6627. - ""
  6628. resources:
  6629. - pods
  6630. - configmaps
  6631. - endpoints
  6632. - services
  6633. verbs:
  6634. - get
  6635. - list
  6636. - watch
  6637. - delete
  6638. - update
  6639. - create
  6640. - patch
  6641. - apiGroups:
  6642. - ""
  6643. resources:
  6644. - events
  6645. verbs:
  6646. - update
  6647. - create
  6648. - patch
  6649. - apiGroups:
  6650. - ""
  6651. resources:
  6652. - secrets
  6653. verbs:
  6654. - create
  6655. - apiGroups:
  6656. - ""
  6657. resources:
  6658. - pods/finalizers
  6659. verbs:
  6660. - update
  6661. - apiGroups:
  6662. - ""
  6663. resources:
  6664. - pods/eviction
  6665. verbs:
  6666. - create
  6667. - apiGroups:
  6668. - ""
  6669. resources:
  6670. - pods/status
  6671. verbs:
  6672. - patch
  6673. - apiGroups:
  6674. - ""
  6675. resources:
  6676. - nodes
  6677. verbs:
  6678. - get
  6679. - list
  6680. - watch
  6681. - update
  6682. - patch
  6683. - apiGroups:
  6684. - apps
  6685. resources:
  6686. - daemonsets
  6687. verbs:
  6688. - list
  6689. - apiGroups:
  6690. - apps
  6691. resources:
  6692. - controllerrevisions
  6693. verbs:
  6694. - watch
  6695. - list
  6696. - create
  6697. - delete
  6698. - get
  6699. - update
  6700. - apiGroups:
  6701. - ""
  6702. resources:
  6703. - persistentvolumeclaims
  6704. verbs:
  6705. - get
  6706. - list
  6707. - watch
  6708. - create
  6709. - update
  6710. - delete
  6711. - patch
  6712. - apiGroups:
  6713. - snapshot.kubevirt.io
  6714. resources:
  6715. - '*'
  6716. verbs:
  6717. - '*'
  6718. - apiGroups:
  6719. - export.kubevirt.io
  6720. resources:
  6721. - '*'
  6722. verbs:
  6723. - '*'
  6724. - apiGroups:
  6725. - pool.kubevirt.io
  6726. resources:
  6727. - virtualmachinepools
  6728. - virtualmachinepools/finalizers
  6729. - virtualmachinepools/status
  6730. - virtualmachinepools/scale
  6731. verbs:
  6732. - watch
  6733. - list
  6734. - create
  6735. - delete
  6736. - update
  6737. - patch
  6738. - get
  6739. - apiGroups:
  6740. - kubevirt.io
  6741. resources:
  6742. - '*'
  6743. verbs:
  6744. - '*'
  6745. - apiGroups:
  6746. - subresources.kubevirt.io
  6747. resources:
  6748. - virtualmachineinstances/addvolume
  6749. - virtualmachineinstances/removevolume
  6750. - virtualmachineinstances/freeze
  6751. - virtualmachineinstances/unfreeze
  6752. - virtualmachineinstances/softreboot
  6753. - virtualmachineinstances/sev/setupsession
  6754. - virtualmachineinstances/sev/injectlaunchsecret
  6755. verbs:
  6756. - update
  6757. - apiGroups:
  6758. - cdi.kubevirt.io
  6759. resources:
  6760. - '*'
  6761. verbs:
  6762. - '*'
  6763. - apiGroups:
  6764. - k8s.cni.cncf.io
  6765. resources:
  6766. - network-attachment-definitions
  6767. verbs:
  6768. - get
  6769. - apiGroups:
  6770. - apiextensions.k8s.io
  6771. resources:
  6772. - customresourcedefinitions
  6773. verbs:
  6774. - get
  6775. - list
  6776. - watch
  6777. - apiGroups:
  6778. - authorization.k8s.io
  6779. resources:
  6780. - subjectaccessreviews
  6781. verbs:
  6782. - create
  6783. - apiGroups:
  6784. - snapshot.storage.k8s.io
  6785. resources:
  6786. - volumesnapshotclasses
  6787. verbs:
  6788. - get
  6789. - list
  6790. - watch
  6791. - apiGroups:
  6792. - snapshot.storage.k8s.io
  6793. resources:
  6794. - volumesnapshots
  6795. verbs:
  6796. - get
  6797. - list
  6798. - watch
  6799. - create
  6800. - update
  6801. - delete
  6802. - apiGroups:
  6803. - storage.k8s.io
  6804. resources:
  6805. - storageclasses
  6806. verbs:
  6807. - get
  6808. - list
  6809. - watch
  6810. - apiGroups:
  6811. - instancetype.kubevirt.io
  6812. resources:
  6813. - virtualmachineinstancetypes
  6814. - virtualmachineclusterinstancetypes
  6815. - virtualmachinepreferences
  6816. - virtualmachineclusterpreferences
  6817. verbs:
  6818. - get
  6819. - list
  6820. - watch
  6821. - apiGroups:
  6822. - migrations.kubevirt.io
  6823. resources:
  6824. - migrationpolicies
  6825. verbs:
  6826. - get
  6827. - list
  6828. - watch
  6829. - apiGroups:
  6830. - clone.kubevirt.io
  6831. resources:
  6832. - virtualmachineclones
  6833. - virtualmachineclones/status
  6834. - virtualmachineclones/finalizers
  6835. verbs:
  6836. - get
  6837. - list
  6838. - watch
  6839. - update
  6840. - patch
  6841. - delete
  6842. - apiGroups:
  6843. - ""
  6844. resources:
  6845. - namespaces
  6846. verbs:
  6847. - get
  6848. - apiGroups:
  6849. - ""
  6850. resources:
  6851. - resourcequotas
  6852. verbs:
  6853. - list
  6854. - watch
  6855. - apiGroups:
  6856. - route.openshift.io
  6857. resources:
  6858. - routes
  6859. verbs:
  6860. - list
  6861. - get
  6862. - watch
  6863. - apiGroups:
  6864. - ""
  6865. resources:
  6866. - secrets
  6867. verbs:
  6868. - list
  6869. - get
  6870. - watch
  6871. - apiGroups:
  6872. - networking.k8s.io
  6873. resources:
  6874. - ingresses
  6875. verbs:
  6876. - list
  6877. - get
  6878. - watch
  6879. - apiGroups:
  6880. - coordination.k8s.io
  6881. resources:
  6882. - leases
  6883. verbs:
  6884. - get
  6885. - list
  6886. - watch
  6887. - delete
  6888. - update
  6889. - create
  6890. - patch
  6891. - apiGroups:
  6892. - kubevirt.io
  6893. resources:
  6894. - virtualmachineinstances
  6895. verbs:
  6896. - update
  6897. - list
  6898. - watch
  6899. - apiGroups:
  6900. - ""
  6901. resources:
  6902. - nodes
  6903. verbs:
  6904. - patch
  6905. - list
  6906. - watch
  6907. - get
  6908. - apiGroups:
  6909. - ""
  6910. resources:
  6911. - configmaps
  6912. verbs:
  6913. - get
  6914. - list
  6915. - watch
  6916. - apiGroups:
  6917. - ""
  6918. resources:
  6919. - events
  6920. verbs:
  6921. - create
  6922. - patch
  6923. - apiGroups:
  6924. - apiextensions.k8s.io
  6925. resources:
  6926. - customresourcedefinitions
  6927. verbs:
  6928. - get
  6929. - list
  6930. - watch
  6931. - apiGroups:
  6932. - kubevirt.io
  6933. resources:
  6934. - kubevirts
  6935. verbs:
  6936. - get
  6937. - list
  6938. - watch
  6939. - apiGroups:
  6940. - migrations.kubevirt.io
  6941. resources:
  6942. - migrationpolicies
  6943. verbs:
  6944. - get
  6945. - list
  6946. - watch
  6947. - apiGroups:
  6948. - ""
  6949. resources:
  6950. - configmaps
  6951. verbs:
  6952. - get
  6953. - list
  6954. - watch
  6955. - apiGroups:
  6956. - export.kubevirt.io
  6957. resources:
  6958. - virtualmachineexports
  6959. verbs:
  6960. - get
  6961. - list
  6962. - watch
  6963. - apiGroups:
  6964. - kubevirt.io
  6965. resources:
  6966. - kubevirts
  6967. verbs:
  6968. - list
  6969. - watch
  6970. - apiGroups:
  6971. - ""
  6972. resourceNames:
  6973. - kubevirt-export-ca
  6974. resources:
  6975. - configmaps
  6976. verbs:
  6977. - get
  6978. - list
  6979. - watch
  6980. - apiGroups:
  6981. - subresources.kubevirt.io
  6982. resources:
  6983. - version
  6984. - guestfs
  6985. verbs:
  6986. - get
  6987. - list
  6988. - apiGroups:
  6989. - subresources.kubevirt.io
  6990. resources:
  6991. - virtualmachineinstances/console
  6992. - virtualmachineinstances/vnc
  6993. - virtualmachineinstances/vnc/screenshot
  6994. - virtualmachineinstances/portforward
  6995. - virtualmachineinstances/guestosinfo
  6996. - virtualmachineinstances/filesystemlist
  6997. - virtualmachineinstances/userlist
  6998. - virtualmachineinstances/sev/fetchcertchain
  6999. - virtualmachineinstances/sev/querylaunchmeasurement
  7000. verbs:
  7001. - get
  7002. - apiGroups:
  7003. - subresources.kubevirt.io
  7004. resources:
  7005. - virtualmachineinstances/pause
  7006. - virtualmachineinstances/unpause
  7007. - virtualmachineinstances/addvolume
  7008. - virtualmachineinstances/removevolume
  7009. - virtualmachineinstances/freeze
  7010. - virtualmachineinstances/unfreeze
  7011. - virtualmachineinstances/softreboot
  7012. - virtualmachineinstances/sev/setupsession
  7013. - virtualmachineinstances/sev/injectlaunchsecret
  7014. verbs:
  7015. - update
  7016. - apiGroups:
  7017. - subresources.kubevirt.io
  7018. resources:
  7019. - virtualmachines/expand-spec
  7020. - virtualmachines/portforward
  7021. verbs:
  7022. - get
  7023. - apiGroups:
  7024. - subresources.kubevirt.io
  7025. resources:
  7026. - virtualmachines/start
  7027. - virtualmachines/stop
  7028. - virtualmachines/restart
  7029. - virtualmachines/addvolume
  7030. - virtualmachines/removevolume
  7031. - virtualmachines/migrate
  7032. - virtualmachines/memorydump
  7033. verbs:
  7034. - update
  7035. - apiGroups:
  7036. - subresources.kubevirt.io
  7037. resources:
  7038. - expand-vm-spec
  7039. verbs:
  7040. - update
  7041. - apiGroups:
  7042. - kubevirt.io
  7043. resources:
  7044. - virtualmachines
  7045. - virtualmachineinstances
  7046. - virtualmachineinstancepresets
  7047. - virtualmachineinstancereplicasets
  7048. - virtualmachineinstancemigrations
  7049. verbs:
  7050. - get
  7051. - delete
  7052. - create
  7053. - update
  7054. - patch
  7055. - list
  7056. - watch
  7057. - deletecollection
  7058. - apiGroups:
  7059. - snapshot.kubevirt.io
  7060. resources:
  7061. - virtualmachinesnapshots
  7062. - virtualmachinesnapshotcontents
  7063. - virtualmachinerestores
  7064. verbs:
  7065. - get
  7066. - delete
  7067. - create
  7068. - update
  7069. - patch
  7070. - list
  7071. - watch
  7072. - deletecollection
  7073. - apiGroups:
  7074. - export.kubevirt.io
  7075. resources:
  7076. - virtualmachineexports
  7077. verbs:
  7078. - get
  7079. - delete
  7080. - create
  7081. - update
  7082. - patch
  7083. - list
  7084. - watch
  7085. - deletecollection
  7086. - apiGroups:
  7087. - clone.kubevirt.io
  7088. resources:
  7089. - virtualmachineclones
  7090. verbs:
  7091. - get
  7092. - delete
  7093. - create
  7094. - update
  7095. - patch
  7096. - list
  7097. - watch
  7098. - deletecollection
  7099. - apiGroups:
  7100. - instancetype.kubevirt.io
  7101. resources:
  7102. - virtualmachineinstancetypes
  7103. - virtualmachineclusterinstancetypes
  7104. - virtualmachinepreferences
  7105. - virtualmachineclusterpreferences
  7106. verbs:
  7107. - get
  7108. - delete
  7109. - create
  7110. - update
  7111. - patch
  7112. - list
  7113. - watch
  7114. - deletecollection
  7115. - apiGroups:
  7116. - pool.kubevirt.io
  7117. resources:
  7118. - virtualmachinepools
  7119. verbs:
  7120. - get
  7121. - delete
  7122. - create
  7123. - update
  7124. - patch
  7125. - list
  7126. - watch
  7127. - deletecollection
  7128. - apiGroups:
  7129. - migrations.kubevirt.io
  7130. resources:
  7131. - migrationpolicies
  7132. verbs:
  7133. - get
  7134. - list
  7135. - watch
  7136. - apiGroups:
  7137. - subresources.kubevirt.io
  7138. resources:
  7139. - virtualmachineinstances/console
  7140. - virtualmachineinstances/vnc
  7141. - virtualmachineinstances/vnc/screenshot
  7142. - virtualmachineinstances/portforward
  7143. - virtualmachineinstances/guestosinfo
  7144. - virtualmachineinstances/filesystemlist
  7145. - virtualmachineinstances/userlist
  7146. - virtualmachineinstances/sev/fetchcertchain
  7147. - virtualmachineinstances/sev/querylaunchmeasurement
  7148. verbs:
  7149. - get
  7150. - apiGroups:
  7151. - subresources.kubevirt.io
  7152. resources:
  7153. - virtualmachineinstances/pause
  7154. - virtualmachineinstances/unpause
  7155. - virtualmachineinstances/addvolume
  7156. - virtualmachineinstances/removevolume
  7157. - virtualmachineinstances/freeze
  7158. - virtualmachineinstances/unfreeze
  7159. - virtualmachineinstances/softreboot
  7160. - virtualmachineinstances/sev/setupsession
  7161. - virtualmachineinstances/sev/injectlaunchsecret
  7162. verbs:
  7163. - update
  7164. - apiGroups:
  7165. - subresources.kubevirt.io
  7166. resources:
  7167. - virtualmachines/expand-spec
  7168. - virtualmachines/portforward
  7169. verbs:
  7170. - get
  7171. - apiGroups:
  7172. - subresources.kubevirt.io
  7173. resources:
  7174. - virtualmachines/start
  7175. - virtualmachines/stop
  7176. - virtualmachines/restart
  7177. - virtualmachines/addvolume
  7178. - virtualmachines/removevolume
  7179. - virtualmachines/migrate
  7180. - virtualmachines/memorydump
  7181. verbs:
  7182. - update
  7183. - apiGroups:
  7184. - subresources.kubevirt.io
  7185. resources:
  7186. - expand-vm-spec
  7187. verbs:
  7188. - update
  7189. - apiGroups:
  7190. - kubevirt.io
  7191. resources:
  7192. - virtualmachines
  7193. - virtualmachineinstances
  7194. - virtualmachineinstancepresets
  7195. - virtualmachineinstancereplicasets
  7196. - virtualmachineinstancemigrations
  7197. verbs:
  7198. - get
  7199. - delete
  7200. - create
  7201. - update
  7202. - patch
  7203. - list
  7204. - watch
  7205. - apiGroups:
  7206. - snapshot.kubevirt.io
  7207. resources:
  7208. - virtualmachinesnapshots
  7209. - virtualmachinesnapshotcontents
  7210. - virtualmachinerestores
  7211. verbs:
  7212. - get
  7213. - delete
  7214. - create
  7215. - update
  7216. - patch
  7217. - list
  7218. - watch
  7219. - apiGroups:
  7220. - export.kubevirt.io
  7221. resources:
  7222. - virtualmachineexports
  7223. verbs:
  7224. - get
  7225. - delete
  7226. - create
  7227. - update
  7228. - patch
  7229. - list
  7230. - watch
  7231. - apiGroups:
  7232. - clone.kubevirt.io
  7233. resources:
  7234. - virtualmachineclones
  7235. verbs:
  7236. - get
  7237. - delete
  7238. - create
  7239. - update
  7240. - patch
  7241. - list
  7242. - watch
  7243. - apiGroups:
  7244. - instancetype.kubevirt.io
  7245. resources:
  7246. - virtualmachineinstancetypes
  7247. - virtualmachineclusterinstancetypes
  7248. - virtualmachinepreferences
  7249. - virtualmachineclusterpreferences
  7250. verbs:
  7251. - get
  7252. - delete
  7253. - create
  7254. - update
  7255. - patch
  7256. - list
  7257. - watch
  7258. - apiGroups:
  7259. - pool.kubevirt.io
  7260. resources:
  7261. - virtualmachinepools
  7262. verbs:
  7263. - get
  7264. - delete
  7265. - create
  7266. - update
  7267. - patch
  7268. - list
  7269. - watch
  7270. - apiGroups:
  7271. - kubevirt.io
  7272. resources:
  7273. - kubevirts
  7274. verbs:
  7275. - get
  7276. - list
  7277. - apiGroups:
  7278. - migrations.kubevirt.io
  7279. resources:
  7280. - migrationpolicies
  7281. verbs:
  7282. - get
  7283. - list
  7284. - watch
  7285. - apiGroups:
  7286. - subresources.kubevirt.io
  7287. resources:
  7288. - virtualmachines/expand-spec
  7289. - virtualmachineinstances/guestosinfo
  7290. - virtualmachineinstances/filesystemlist
  7291. - virtualmachineinstances/userlist
  7292. - virtualmachineinstances/sev/fetchcertchain
  7293. - virtualmachineinstances/sev/querylaunchmeasurement
  7294. verbs:
  7295. - get
  7296. - apiGroups:
  7297. - subresources.kubevirt.io
  7298. resources:
  7299. - expand-vm-spec
  7300. verbs:
  7301. - update
  7302. - apiGroups:
  7303. - kubevirt.io
  7304. resources:
  7305. - virtualmachines
  7306. - virtualmachineinstances
  7307. - virtualmachineinstancepresets
  7308. - virtualmachineinstancereplicasets
  7309. - virtualmachineinstancemigrations
  7310. verbs:
  7311. - get
  7312. - list
  7313. - watch
  7314. - apiGroups:
  7315. - snapshot.kubevirt.io
  7316. resources:
  7317. - virtualmachinesnapshots
  7318. - virtualmachinesnapshotcontents
  7319. - virtualmachinerestores
  7320. verbs:
  7321. - get
  7322. - list
  7323. - watch
  7324. - apiGroups:
  7325. - export.kubevirt.io
  7326. resources:
  7327. - virtualmachineexports
  7328. verbs:
  7329. - get
  7330. - list
  7331. - watch
  7332. - apiGroups:
  7333. - clone.kubevirt.io
  7334. resources:
  7335. - virtualmachineclones
  7336. verbs:
  7337. - get
  7338. - list
  7339. - watch
  7340. - apiGroups:
  7341. - instancetype.kubevirt.io
  7342. resources:
  7343. - virtualmachineinstancetypes
  7344. - virtualmachineclusterinstancetypes
  7345. - virtualmachinepreferences
  7346. - virtualmachineclusterpreferences
  7347. verbs:
  7348. - get
  7349. - list
  7350. - watch
  7351. - apiGroups:
  7352. - pool.kubevirt.io
  7353. resources:
  7354. - virtualmachinepools
  7355. verbs:
  7356. - get
  7357. - list
  7358. - watch
  7359. - apiGroups:
  7360. - migrations.kubevirt.io
  7361. resources:
  7362. - migrationpolicies
  7363. verbs:
  7364. - get
  7365. - list
  7366. - watch
  7367. - apiGroups:
  7368. - instancetype.kubevirt.io
  7369. resources:
  7370. - virtualmachineclusterinstancetypes
  7371. - virtualmachineclusterpreferences
  7372. verbs:
  7373. - get
  7374. - list
  7375. - watch
  7376. - apiGroups:
  7377. - authentication.k8s.io
  7378. resources:
  7379. - tokenreviews
  7380. verbs:
  7381. - create
  7382. - apiGroups:
  7383. - authorization.k8s.io
  7384. resources:
  7385. - subjectaccessreviews
  7386. verbs:
  7387. - create
  7388. ---
  7389. apiVersion: rbac.authorization.k8s.io/v1
  7390. kind: ClusterRoleBinding
  7391. metadata:
  7392. labels:
  7393. kubevirt.io: ""
  7394. name: kubevirt-operator
  7395. roleRef:
  7396. apiGroup: rbac.authorization.k8s.io
  7397. kind: ClusterRole
  7398. name: kubevirt-operator
  7399. subjects:
  7400. - kind: ServiceAccount
  7401. name: kubevirt-operator
  7402. namespace: kubevirt
  7403. ---
  7404. apiVersion: apps/v1
  7405. kind: Deployment
  7406. metadata:
  7407. labels:
  7408. kubevirt.io: virt-operator
  7409. name: virt-operator
  7410. namespace: kubevirt
  7411. spec:
  7412. replicas: 2
  7413. selector:
  7414. matchLabels:
  7415. kubevirt.io: virt-operator
  7416. strategy:
  7417. type: RollingUpdate
  7418. template:
  7419. metadata:
  7420. labels:
  7421. kubevirt.io: virt-operator
  7422. name: virt-operator
  7423. prometheus.kubevirt.io: "true"
  7424. name: virt-operator
  7425. spec:
  7426. affinity:
  7427. podAntiAffinity:
  7428. preferredDuringSchedulingIgnoredDuringExecution:
  7429. - podAffinityTerm:
  7430. labelSelector:
  7431. matchExpressions:
  7432. - key: kubevirt.io
  7433. operator: In
  7434. values:
  7435. - virt-operator
  7436. topologyKey: kubernetes.io/hostname
  7437. weight: 1
  7438. containers:
  7439. - args:
  7440. - --port
  7441. - "8443"
  7442. - -v
  7443. - "2"
  7444. command:
  7445. - virt-operator
  7446. env:
  7447. - name: VIRT_OPERATOR_IMAGE
  7448. value: quay.io/kubevirt/virt-operator:v1.1.0
  7449. - name: WATCH_NAMESPACE
  7450. valueFrom:
  7451. fieldRef:
  7452. fieldPath: metadata.annotations['olm.targetNamespaces']
  7453. - name: KUBEVIRT_VERSION
  7454. value: v1.1.0
  7455. image: quay.io/kubevirt/virt-operator:v1.1.0
  7456. imagePullPolicy: IfNotPresent
  7457. name: virt-operator
  7458. ports:
  7459. - containerPort: 8443
  7460. name: metrics
  7461. protocol: TCP
  7462. - containerPort: 8444
  7463. name: webhooks
  7464. protocol: TCP
  7465. readinessProbe:
  7466. httpGet:
  7467. path: /metrics
  7468. port: 8443
  7469. scheme: HTTPS
  7470. initialDelaySeconds: 5
  7471. timeoutSeconds: 10
  7472. resources:
  7473. requests:
  7474. cpu: 10m
  7475. memory: 450Mi
  7476. securityContext:
  7477. allowPrivilegeEscalation: false
  7478. capabilities:
  7479. drop:
  7480. - ALL
  7481. seccompProfile:
  7482. type: RuntimeDefault
  7483. volumeMounts:
  7484. - mountPath: /etc/virt-operator/certificates
  7485. name: kubevirt-operator-certs
  7486. readOnly: true
  7487. - mountPath: /profile-data
  7488. name: profile-data
  7489. nodeSelector:
  7490. kubernetes.io/os: linux
  7491. priorityClassName: kubevirt-cluster-critical
  7492. securityContext:
  7493. runAsNonRoot: true
  7494. seccompProfile:
  7495. type: RuntimeDefault
  7496. serviceAccountName: kubevirt-operator
  7497. tolerations:
  7498. - key: CriticalAddonsOnly
  7499. operator: Exists
  7500. volumes:
  7501. - name: kubevirt-operator-certs
  7502. secret:
  7503. optional: true
  7504. secretName: kubevirt-operator-certs
  7505. - emptyDir: {}
  7506. name: profile-data