locostack.com_managedmodels.yaml 257 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768
  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. annotations:
  6. controller-gen.kubebuilder.io/version: v0.20.1
  7. name: managedmodels.locostack.com
  8. spec:
  9. group: locostack.com
  10. names:
  11. kind: ManagedModel
  12. listKind: ManagedModelList
  13. plural: managedmodels
  14. shortNames:
  15. - mm
  16. singular: managedmodel
  17. scope: Namespaced
  18. versions:
  19. - additionalPrinterColumns:
  20. - jsonPath: .spec.category
  21. name: Category
  22. type: string
  23. - jsonPath: .spec.modelName
  24. name: Model
  25. type: string
  26. - jsonPath: .spec.template.name
  27. name: Runtime
  28. type: string
  29. - jsonPath: .status.conditions[?(@.type=='Ready')].status
  30. name: Ready
  31. type: string
  32. name: v1alpha1
  33. schema:
  34. openAPIV3Schema:
  35. description: ManagedModel is the Schema for the managedmodels API
  36. properties:
  37. apiVersion:
  38. description: |-
  39. APIVersion defines the versioned schema of this representation of an object.
  40. Servers should convert recognized schemas to the latest internal value, and
  41. may reject unrecognized values.
  42. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  43. type: string
  44. kind:
  45. description: |-
  46. Kind is a string value representing the REST resource this object represents.
  47. Servers may infer this from the endpoint the client submits requests to.
  48. Cannot be updated.
  49. In CamelCase.
  50. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  51. type: string
  52. metadata:
  53. type: object
  54. spec:
  55. description: spec defines the desired state of ManagedModel
  56. properties:
  57. category:
  58. description: |-
  59. category is the model category: language, embedding, or reranker.
  60. Determines which gateway endpoint clients use and the routing mode in the proxy config.
  61. enum:
  62. - language
  63. - embedding
  64. - reranker
  65. type: string
  66. modelName:
  67. description: |-
  68. modelName is the identifier exposed to clients and used as the model identifier
  69. in the gateway's proxy configuration.
  70. type: string
  71. runtimeInferenceParameters:
  72. properties:
  73. chatTemplate:
  74. description: chatTemplate is the template used for chat-based
  75. models, if supported by the runtime.
  76. type: string
  77. contextWindow:
  78. description: contextWindow is the context window size for the
  79. model, if supported by the runtime.
  80. format: int32
  81. type: integer
  82. extra:
  83. additionalProperties:
  84. type: string
  85. description: |-
  86. extra are pass-through key-value pairs forwarded as provider-specific parameters
  87. to the gateway when the model is gateway-bound.
  88. type: object
  89. temperature:
  90. description: temperature is the sampling temperature.
  91. type: string
  92. topK:
  93. description: topK is the top-k sampling parameter.
  94. format: int32
  95. type: integer
  96. topP:
  97. description: topP is the nucleus sampling parameter.
  98. type: string
  99. type: object
  100. stackRef:
  101. description: stackRef associates this model with a stack.
  102. properties:
  103. name:
  104. default: ""
  105. description: |-
  106. Name of the referent.
  107. This field is effectively required, but due to backwards compatibility is
  108. allowed to be empty. Instances of this type with an empty value here are
  109. almost certainly wrong.
  110. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  111. type: string
  112. type: object
  113. x-kubernetes-map-type: atomic
  114. template:
  115. description: template holds the configuration overrides for the component.
  116. properties:
  117. metadata:
  118. description: metadata is a standard object metadata.
  119. type: object
  120. name:
  121. description: name selects a built-in preset.
  122. type: string
  123. spec:
  124. description: spec holds the pod-level configuration for the workload.
  125. properties:
  126. affinity:
  127. description: affinity provides fine-grained node and pod (anti-)affinity
  128. rules.
  129. properties:
  130. nodeAffinity:
  131. description: Describes node affinity scheduling rules
  132. for the pod.
  133. properties:
  134. preferredDuringSchedulingIgnoredDuringExecution:
  135. description: |-
  136. The scheduler will prefer to schedule pods to nodes that satisfy
  137. the affinity expressions specified by this field, but it may choose
  138. a node that violates one or more of the expressions. The node that is
  139. most preferred is the one with the greatest sum of weights, i.e.
  140. for each node that meets all of the scheduling requirements (resource
  141. request, requiredDuringScheduling affinity expressions, etc.),
  142. compute a sum by iterating through the elements of this field and adding
  143. "weight" to the sum if the node matches the corresponding matchExpressions; the
  144. node(s) with the highest sum are the most preferred.
  145. items:
  146. description: |-
  147. An empty preferred scheduling term matches all objects with implicit weight 0
  148. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  149. properties:
  150. preference:
  151. description: A node selector term, associated
  152. with the corresponding weight.
  153. properties:
  154. matchExpressions:
  155. description: A list of node selector requirements
  156. by node's labels.
  157. items:
  158. description: |-
  159. A node selector requirement is a selector that contains values, a key, and an operator
  160. that relates the key and values.
  161. properties:
  162. key:
  163. description: The label key that the
  164. selector applies to.
  165. type: string
  166. operator:
  167. description: |-
  168. Represents a key's relationship to a set of values.
  169. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  170. type: string
  171. values:
  172. description: |-
  173. An array of string values. If the operator is In or NotIn,
  174. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  175. the values array must be empty. If the operator is Gt or Lt, the values
  176. array must have a single element, which will be interpreted as an integer.
  177. This array is replaced during a strategic merge patch.
  178. items:
  179. type: string
  180. type: array
  181. x-kubernetes-list-type: atomic
  182. required:
  183. - key
  184. - operator
  185. type: object
  186. type: array
  187. x-kubernetes-list-type: atomic
  188. matchFields:
  189. description: A list of node selector requirements
  190. by node's fields.
  191. items:
  192. description: |-
  193. A node selector requirement is a selector that contains values, a key, and an operator
  194. that relates the key and values.
  195. properties:
  196. key:
  197. description: The label key that the
  198. selector applies to.
  199. type: string
  200. operator:
  201. description: |-
  202. Represents a key's relationship to a set of values.
  203. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  204. type: string
  205. values:
  206. description: |-
  207. An array of string values. If the operator is In or NotIn,
  208. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  209. the values array must be empty. If the operator is Gt or Lt, the values
  210. array must have a single element, which will be interpreted as an integer.
  211. This array is replaced during a strategic merge patch.
  212. items:
  213. type: string
  214. type: array
  215. x-kubernetes-list-type: atomic
  216. required:
  217. - key
  218. - operator
  219. type: object
  220. type: array
  221. x-kubernetes-list-type: atomic
  222. type: object
  223. x-kubernetes-map-type: atomic
  224. weight:
  225. description: Weight associated with matching
  226. the corresponding nodeSelectorTerm, in the
  227. range 1-100.
  228. format: int32
  229. type: integer
  230. required:
  231. - preference
  232. - weight
  233. type: object
  234. type: array
  235. x-kubernetes-list-type: atomic
  236. requiredDuringSchedulingIgnoredDuringExecution:
  237. description: |-
  238. If the affinity requirements specified by this field are not met at
  239. scheduling time, the pod will not be scheduled onto the node.
  240. If the affinity requirements specified by this field cease to be met
  241. at some point during pod execution (e.g. due to an update), the system
  242. may or may not try to eventually evict the pod from its node.
  243. properties:
  244. nodeSelectorTerms:
  245. description: Required. A list of node selector
  246. terms. The terms are ORed.
  247. items:
  248. description: |-
  249. A null or empty node selector term matches no objects. The requirements of
  250. them are ANDed.
  251. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  252. properties:
  253. matchExpressions:
  254. description: A list of node selector requirements
  255. by node's labels.
  256. items:
  257. description: |-
  258. A node selector requirement is a selector that contains values, a key, and an operator
  259. that relates the key and values.
  260. properties:
  261. key:
  262. description: The label key that the
  263. selector applies to.
  264. type: string
  265. operator:
  266. description: |-
  267. Represents a key's relationship to a set of values.
  268. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  269. type: string
  270. values:
  271. description: |-
  272. An array of string values. If the operator is In or NotIn,
  273. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  274. the values array must be empty. If the operator is Gt or Lt, the values
  275. array must have a single element, which will be interpreted as an integer.
  276. This array is replaced during a strategic merge patch.
  277. items:
  278. type: string
  279. type: array
  280. x-kubernetes-list-type: atomic
  281. required:
  282. - key
  283. - operator
  284. type: object
  285. type: array
  286. x-kubernetes-list-type: atomic
  287. matchFields:
  288. description: A list of node selector requirements
  289. by node's fields.
  290. items:
  291. description: |-
  292. A node selector requirement is a selector that contains values, a key, and an operator
  293. that relates the key and values.
  294. properties:
  295. key:
  296. description: The label key that the
  297. selector applies to.
  298. type: string
  299. operator:
  300. description: |-
  301. Represents a key's relationship to a set of values.
  302. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  303. type: string
  304. values:
  305. description: |-
  306. An array of string values. If the operator is In or NotIn,
  307. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  308. the values array must be empty. If the operator is Gt or Lt, the values
  309. array must have a single element, which will be interpreted as an integer.
  310. This array is replaced during a strategic merge patch.
  311. items:
  312. type: string
  313. type: array
  314. x-kubernetes-list-type: atomic
  315. required:
  316. - key
  317. - operator
  318. type: object
  319. type: array
  320. x-kubernetes-list-type: atomic
  321. type: object
  322. x-kubernetes-map-type: atomic
  323. type: array
  324. x-kubernetes-list-type: atomic
  325. required:
  326. - nodeSelectorTerms
  327. type: object
  328. x-kubernetes-map-type: atomic
  329. type: object
  330. podAffinity:
  331. description: Describes pod affinity scheduling rules (e.g.
  332. co-locate this pod in the same node, zone, etc. as some
  333. other pod(s)).
  334. properties:
  335. preferredDuringSchedulingIgnoredDuringExecution:
  336. description: |-
  337. The scheduler will prefer to schedule pods to nodes that satisfy
  338. the affinity expressions specified by this field, but it may choose
  339. a node that violates one or more of the expressions. The node that is
  340. most preferred is the one with the greatest sum of weights, i.e.
  341. for each node that meets all of the scheduling requirements (resource
  342. request, requiredDuringScheduling affinity expressions, etc.),
  343. compute a sum by iterating through the elements of this field and adding
  344. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  345. node(s) with the highest sum are the most preferred.
  346. items:
  347. description: The weights of all of the matched WeightedPodAffinityTerm
  348. fields are added per-node to find the most preferred
  349. node(s)
  350. properties:
  351. podAffinityTerm:
  352. description: Required. A pod affinity term,
  353. associated with the corresponding weight.
  354. properties:
  355. labelSelector:
  356. description: |-
  357. A label query over a set of resources, in this case pods.
  358. If it's null, this PodAffinityTerm matches with no Pods.
  359. properties:
  360. matchExpressions:
  361. description: matchExpressions is a list
  362. of label selector requirements. The
  363. requirements are ANDed.
  364. items:
  365. description: |-
  366. A label selector requirement is a selector that contains values, a key, and an operator that
  367. relates the key and values.
  368. properties:
  369. key:
  370. description: key is the label
  371. key that the selector applies
  372. to.
  373. type: string
  374. operator:
  375. description: |-
  376. operator represents a key's relationship to a set of values.
  377. Valid operators are In, NotIn, Exists and DoesNotExist.
  378. type: string
  379. values:
  380. description: |-
  381. values is an array of string values. If the operator is In or NotIn,
  382. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  383. the values array must be empty. This array is replaced during a strategic
  384. merge patch.
  385. items:
  386. type: string
  387. type: array
  388. x-kubernetes-list-type: atomic
  389. required:
  390. - key
  391. - operator
  392. type: object
  393. type: array
  394. x-kubernetes-list-type: atomic
  395. matchLabels:
  396. additionalProperties:
  397. type: string
  398. description: |-
  399. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  400. map is equivalent to an element of matchExpressions, whose key field is "key", the
  401. operator is "In", and the values array contains only "value". The requirements are ANDed.
  402. type: object
  403. type: object
  404. x-kubernetes-map-type: atomic
  405. matchLabelKeys:
  406. description: |-
  407. MatchLabelKeys is a set of pod label keys to select which pods will
  408. be taken into consideration. The keys are used to lookup values from the
  409. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  410. to select the group of existing pods which pods will be taken into consideration
  411. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  412. pod labels will be ignored. The default value is empty.
  413. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  414. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  415. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  416. items:
  417. type: string
  418. type: array
  419. x-kubernetes-list-type: atomic
  420. mismatchLabelKeys:
  421. description: |-
  422. MismatchLabelKeys is a set of pod label keys to select which pods will
  423. be taken into consideration. The keys are used to lookup values from the
  424. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  425. to select the group of existing pods which pods will be taken into consideration
  426. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  427. pod labels will be ignored. The default value is empty.
  428. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  429. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  430. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  431. items:
  432. type: string
  433. type: array
  434. x-kubernetes-list-type: atomic
  435. namespaceSelector:
  436. description: |-
  437. A label query over the set of namespaces that the term applies to.
  438. The term is applied to the union of the namespaces selected by this field
  439. and the ones listed in the namespaces field.
  440. null selector and null or empty namespaces list means "this pod's namespace".
  441. An empty selector ({}) matches all namespaces.
  442. properties:
  443. matchExpressions:
  444. description: matchExpressions is a list
  445. of label selector requirements. The
  446. requirements are ANDed.
  447. items:
  448. description: |-
  449. A label selector requirement is a selector that contains values, a key, and an operator that
  450. relates the key and values.
  451. properties:
  452. key:
  453. description: key is the label
  454. key that the selector applies
  455. to.
  456. type: string
  457. operator:
  458. description: |-
  459. operator represents a key's relationship to a set of values.
  460. Valid operators are In, NotIn, Exists and DoesNotExist.
  461. type: string
  462. values:
  463. description: |-
  464. values is an array of string values. If the operator is In or NotIn,
  465. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  466. the values array must be empty. This array is replaced during a strategic
  467. merge patch.
  468. items:
  469. type: string
  470. type: array
  471. x-kubernetes-list-type: atomic
  472. required:
  473. - key
  474. - operator
  475. type: object
  476. type: array
  477. x-kubernetes-list-type: atomic
  478. matchLabels:
  479. additionalProperties:
  480. type: string
  481. description: |-
  482. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  483. map is equivalent to an element of matchExpressions, whose key field is "key", the
  484. operator is "In", and the values array contains only "value". The requirements are ANDed.
  485. type: object
  486. type: object
  487. x-kubernetes-map-type: atomic
  488. namespaces:
  489. description: |-
  490. namespaces specifies a static list of namespace names that the term applies to.
  491. The term is applied to the union of the namespaces listed in this field
  492. and the ones selected by namespaceSelector.
  493. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  494. items:
  495. type: string
  496. type: array
  497. x-kubernetes-list-type: atomic
  498. topologyKey:
  499. description: |-
  500. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  501. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  502. whose value of the label with key topologyKey matches that of any node on which any of the
  503. selected pods is running.
  504. Empty topologyKey is not allowed.
  505. type: string
  506. required:
  507. - topologyKey
  508. type: object
  509. weight:
  510. description: |-
  511. weight associated with matching the corresponding podAffinityTerm,
  512. in the range 1-100.
  513. format: int32
  514. type: integer
  515. required:
  516. - podAffinityTerm
  517. - weight
  518. type: object
  519. type: array
  520. x-kubernetes-list-type: atomic
  521. requiredDuringSchedulingIgnoredDuringExecution:
  522. description: |-
  523. If the affinity requirements specified by this field are not met at
  524. scheduling time, the pod will not be scheduled onto the node.
  525. If the affinity requirements specified by this field cease to be met
  526. at some point during pod execution (e.g. due to a pod label update), the
  527. system may or may not try to eventually evict the pod from its node.
  528. When there are multiple elements, the lists of nodes corresponding to each
  529. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  530. items:
  531. description: |-
  532. Defines a set of pods (namely those matching the labelSelector
  533. relative to the given namespace(s)) that this pod should be
  534. co-located (affinity) or not co-located (anti-affinity) with,
  535. where co-located is defined as running on a node whose value of
  536. the label with key <topologyKey> matches that of any node on which
  537. a pod of the set of pods is running
  538. properties:
  539. labelSelector:
  540. description: |-
  541. A label query over a set of resources, in this case pods.
  542. If it's null, this PodAffinityTerm matches with no Pods.
  543. properties:
  544. matchExpressions:
  545. description: matchExpressions is a list
  546. of label selector requirements. The requirements
  547. are ANDed.
  548. items:
  549. description: |-
  550. A label selector requirement is a selector that contains values, a key, and an operator that
  551. relates the key and values.
  552. properties:
  553. key:
  554. description: key is the label key
  555. that the selector applies to.
  556. type: string
  557. operator:
  558. description: |-
  559. operator represents a key's relationship to a set of values.
  560. Valid operators are In, NotIn, Exists and DoesNotExist.
  561. type: string
  562. values:
  563. description: |-
  564. values is an array of string values. If the operator is In or NotIn,
  565. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  566. the values array must be empty. This array is replaced during a strategic
  567. merge patch.
  568. items:
  569. type: string
  570. type: array
  571. x-kubernetes-list-type: atomic
  572. required:
  573. - key
  574. - operator
  575. type: object
  576. type: array
  577. x-kubernetes-list-type: atomic
  578. matchLabels:
  579. additionalProperties:
  580. type: string
  581. description: |-
  582. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  583. map is equivalent to an element of matchExpressions, whose key field is "key", the
  584. operator is "In", and the values array contains only "value". The requirements are ANDed.
  585. type: object
  586. type: object
  587. x-kubernetes-map-type: atomic
  588. matchLabelKeys:
  589. description: |-
  590. MatchLabelKeys is a set of pod label keys to select which pods will
  591. be taken into consideration. The keys are used to lookup values from the
  592. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  593. to select the group of existing pods which pods will be taken into consideration
  594. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  595. pod labels will be ignored. The default value is empty.
  596. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  597. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  598. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  599. items:
  600. type: string
  601. type: array
  602. x-kubernetes-list-type: atomic
  603. mismatchLabelKeys:
  604. description: |-
  605. MismatchLabelKeys is a set of pod label keys to select which pods will
  606. be taken into consideration. The keys are used to lookup values from the
  607. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  608. to select the group of existing pods which pods will be taken into consideration
  609. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  610. pod labels will be ignored. The default value is empty.
  611. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  612. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  613. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  614. items:
  615. type: string
  616. type: array
  617. x-kubernetes-list-type: atomic
  618. namespaceSelector:
  619. description: |-
  620. A label query over the set of namespaces that the term applies to.
  621. The term is applied to the union of the namespaces selected by this field
  622. and the ones listed in the namespaces field.
  623. null selector and null or empty namespaces list means "this pod's namespace".
  624. An empty selector ({}) matches all namespaces.
  625. properties:
  626. matchExpressions:
  627. description: matchExpressions is a list
  628. of label selector requirements. The requirements
  629. are ANDed.
  630. items:
  631. description: |-
  632. A label selector requirement is a selector that contains values, a key, and an operator that
  633. relates the key and values.
  634. properties:
  635. key:
  636. description: key is the label key
  637. that the selector applies to.
  638. type: string
  639. operator:
  640. description: |-
  641. operator represents a key's relationship to a set of values.
  642. Valid operators are In, NotIn, Exists and DoesNotExist.
  643. type: string
  644. values:
  645. description: |-
  646. values is an array of string values. If the operator is In or NotIn,
  647. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  648. the values array must be empty. This array is replaced during a strategic
  649. merge patch.
  650. items:
  651. type: string
  652. type: array
  653. x-kubernetes-list-type: atomic
  654. required:
  655. - key
  656. - operator
  657. type: object
  658. type: array
  659. x-kubernetes-list-type: atomic
  660. matchLabels:
  661. additionalProperties:
  662. type: string
  663. description: |-
  664. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  665. map is equivalent to an element of matchExpressions, whose key field is "key", the
  666. operator is "In", and the values array contains only "value". The requirements are ANDed.
  667. type: object
  668. type: object
  669. x-kubernetes-map-type: atomic
  670. namespaces:
  671. description: |-
  672. namespaces specifies a static list of namespace names that the term applies to.
  673. The term is applied to the union of the namespaces listed in this field
  674. and the ones selected by namespaceSelector.
  675. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  676. items:
  677. type: string
  678. type: array
  679. x-kubernetes-list-type: atomic
  680. topologyKey:
  681. description: |-
  682. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  683. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  684. whose value of the label with key topologyKey matches that of any node on which any of the
  685. selected pods is running.
  686. Empty topologyKey is not allowed.
  687. type: string
  688. required:
  689. - topologyKey
  690. type: object
  691. type: array
  692. x-kubernetes-list-type: atomic
  693. type: object
  694. podAntiAffinity:
  695. description: Describes pod anti-affinity scheduling rules
  696. (e.g. avoid putting this pod in the same node, zone,
  697. etc. as some other pod(s)).
  698. properties:
  699. preferredDuringSchedulingIgnoredDuringExecution:
  700. description: |-
  701. The scheduler will prefer to schedule pods to nodes that satisfy
  702. the anti-affinity expressions specified by this field, but it may choose
  703. a node that violates one or more of the expressions. The node that is
  704. most preferred is the one with the greatest sum of weights, i.e.
  705. for each node that meets all of the scheduling requirements (resource
  706. request, requiredDuringScheduling anti-affinity expressions, etc.),
  707. compute a sum by iterating through the elements of this field and adding
  708. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  709. node(s) with the highest sum are the most preferred.
  710. items:
  711. description: The weights of all of the matched WeightedPodAffinityTerm
  712. fields are added per-node to find the most preferred
  713. node(s)
  714. properties:
  715. podAffinityTerm:
  716. description: Required. A pod affinity term,
  717. associated with the corresponding weight.
  718. properties:
  719. labelSelector:
  720. description: |-
  721. A label query over a set of resources, in this case pods.
  722. If it's null, this PodAffinityTerm matches with no Pods.
  723. properties:
  724. matchExpressions:
  725. description: matchExpressions is a list
  726. of label selector requirements. The
  727. requirements are ANDed.
  728. items:
  729. description: |-
  730. A label selector requirement is a selector that contains values, a key, and an operator that
  731. relates the key and values.
  732. properties:
  733. key:
  734. description: key is the label
  735. key that the selector applies
  736. to.
  737. type: string
  738. operator:
  739. description: |-
  740. operator represents a key's relationship to a set of values.
  741. Valid operators are In, NotIn, Exists and DoesNotExist.
  742. type: string
  743. values:
  744. description: |-
  745. values is an array of string values. If the operator is In or NotIn,
  746. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  747. the values array must be empty. This array is replaced during a strategic
  748. merge patch.
  749. items:
  750. type: string
  751. type: array
  752. x-kubernetes-list-type: atomic
  753. required:
  754. - key
  755. - operator
  756. type: object
  757. type: array
  758. x-kubernetes-list-type: atomic
  759. matchLabels:
  760. additionalProperties:
  761. type: string
  762. description: |-
  763. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  764. map is equivalent to an element of matchExpressions, whose key field is "key", the
  765. operator is "In", and the values array contains only "value". The requirements are ANDed.
  766. type: object
  767. type: object
  768. x-kubernetes-map-type: atomic
  769. matchLabelKeys:
  770. description: |-
  771. MatchLabelKeys is a set of pod label keys to select which pods will
  772. be taken into consideration. The keys are used to lookup values from the
  773. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  774. to select the group of existing pods which pods will be taken into consideration
  775. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  776. pod labels will be ignored. The default value is empty.
  777. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  778. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  779. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  780. items:
  781. type: string
  782. type: array
  783. x-kubernetes-list-type: atomic
  784. mismatchLabelKeys:
  785. description: |-
  786. MismatchLabelKeys is a set of pod label keys to select which pods will
  787. be taken into consideration. The keys are used to lookup values from the
  788. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  789. to select the group of existing pods which pods will be taken into consideration
  790. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  791. pod labels will be ignored. The default value is empty.
  792. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  793. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  794. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  795. items:
  796. type: string
  797. type: array
  798. x-kubernetes-list-type: atomic
  799. namespaceSelector:
  800. description: |-
  801. A label query over the set of namespaces that the term applies to.
  802. The term is applied to the union of the namespaces selected by this field
  803. and the ones listed in the namespaces field.
  804. null selector and null or empty namespaces list means "this pod's namespace".
  805. An empty selector ({}) matches all namespaces.
  806. properties:
  807. matchExpressions:
  808. description: matchExpressions is a list
  809. of label selector requirements. The
  810. requirements are ANDed.
  811. items:
  812. description: |-
  813. A label selector requirement is a selector that contains values, a key, and an operator that
  814. relates the key and values.
  815. properties:
  816. key:
  817. description: key is the label
  818. key that the selector applies
  819. to.
  820. type: string
  821. operator:
  822. description: |-
  823. operator represents a key's relationship to a set of values.
  824. Valid operators are In, NotIn, Exists and DoesNotExist.
  825. type: string
  826. values:
  827. description: |-
  828. values is an array of string values. If the operator is In or NotIn,
  829. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  830. the values array must be empty. This array is replaced during a strategic
  831. merge patch.
  832. items:
  833. type: string
  834. type: array
  835. x-kubernetes-list-type: atomic
  836. required:
  837. - key
  838. - operator
  839. type: object
  840. type: array
  841. x-kubernetes-list-type: atomic
  842. matchLabels:
  843. additionalProperties:
  844. type: string
  845. description: |-
  846. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  847. map is equivalent to an element of matchExpressions, whose key field is "key", the
  848. operator is "In", and the values array contains only "value". The requirements are ANDed.
  849. type: object
  850. type: object
  851. x-kubernetes-map-type: atomic
  852. namespaces:
  853. description: |-
  854. namespaces specifies a static list of namespace names that the term applies to.
  855. The term is applied to the union of the namespaces listed in this field
  856. and the ones selected by namespaceSelector.
  857. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  858. items:
  859. type: string
  860. type: array
  861. x-kubernetes-list-type: atomic
  862. topologyKey:
  863. description: |-
  864. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  865. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  866. whose value of the label with key topologyKey matches that of any node on which any of the
  867. selected pods is running.
  868. Empty topologyKey is not allowed.
  869. type: string
  870. required:
  871. - topologyKey
  872. type: object
  873. weight:
  874. description: |-
  875. weight associated with matching the corresponding podAffinityTerm,
  876. in the range 1-100.
  877. format: int32
  878. type: integer
  879. required:
  880. - podAffinityTerm
  881. - weight
  882. type: object
  883. type: array
  884. x-kubernetes-list-type: atomic
  885. requiredDuringSchedulingIgnoredDuringExecution:
  886. description: |-
  887. If the anti-affinity requirements specified by this field are not met at
  888. scheduling time, the pod will not be scheduled onto the node.
  889. If the anti-affinity requirements specified by this field cease to be met
  890. at some point during pod execution (e.g. due to a pod label update), the
  891. system may or may not try to eventually evict the pod from its node.
  892. When there are multiple elements, the lists of nodes corresponding to each
  893. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  894. items:
  895. description: |-
  896. Defines a set of pods (namely those matching the labelSelector
  897. relative to the given namespace(s)) that this pod should be
  898. co-located (affinity) or not co-located (anti-affinity) with,
  899. where co-located is defined as running on a node whose value of
  900. the label with key <topologyKey> matches that of any node on which
  901. a pod of the set of pods is running
  902. properties:
  903. labelSelector:
  904. description: |-
  905. A label query over a set of resources, in this case pods.
  906. If it's null, this PodAffinityTerm matches with no Pods.
  907. properties:
  908. matchExpressions:
  909. description: matchExpressions is a list
  910. of label selector requirements. The requirements
  911. are ANDed.
  912. items:
  913. description: |-
  914. A label selector requirement is a selector that contains values, a key, and an operator that
  915. relates the key and values.
  916. properties:
  917. key:
  918. description: key is the label key
  919. that the selector applies to.
  920. type: string
  921. operator:
  922. description: |-
  923. operator represents a key's relationship to a set of values.
  924. Valid operators are In, NotIn, Exists and DoesNotExist.
  925. type: string
  926. values:
  927. description: |-
  928. values is an array of string values. If the operator is In or NotIn,
  929. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  930. the values array must be empty. This array is replaced during a strategic
  931. merge patch.
  932. items:
  933. type: string
  934. type: array
  935. x-kubernetes-list-type: atomic
  936. required:
  937. - key
  938. - operator
  939. type: object
  940. type: array
  941. x-kubernetes-list-type: atomic
  942. matchLabels:
  943. additionalProperties:
  944. type: string
  945. description: |-
  946. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  947. map is equivalent to an element of matchExpressions, whose key field is "key", the
  948. operator is "In", and the values array contains only "value". The requirements are ANDed.
  949. type: object
  950. type: object
  951. x-kubernetes-map-type: atomic
  952. matchLabelKeys:
  953. description: |-
  954. MatchLabelKeys is a set of pod label keys to select which pods will
  955. be taken into consideration. The keys are used to lookup values from the
  956. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  957. to select the group of existing pods which pods will be taken into consideration
  958. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  959. pod labels will be ignored. The default value is empty.
  960. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  961. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  962. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  963. items:
  964. type: string
  965. type: array
  966. x-kubernetes-list-type: atomic
  967. mismatchLabelKeys:
  968. description: |-
  969. MismatchLabelKeys is a set of pod label keys to select which pods will
  970. be taken into consideration. The keys are used to lookup values from the
  971. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  972. to select the group of existing pods which pods will be taken into consideration
  973. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  974. pod labels will be ignored. The default value is empty.
  975. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  976. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  977. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  978. items:
  979. type: string
  980. type: array
  981. x-kubernetes-list-type: atomic
  982. namespaceSelector:
  983. description: |-
  984. A label query over the set of namespaces that the term applies to.
  985. The term is applied to the union of the namespaces selected by this field
  986. and the ones listed in the namespaces field.
  987. null selector and null or empty namespaces list means "this pod's namespace".
  988. An empty selector ({}) matches all namespaces.
  989. properties:
  990. matchExpressions:
  991. description: matchExpressions is a list
  992. of label selector requirements. The requirements
  993. are ANDed.
  994. items:
  995. description: |-
  996. A label selector requirement is a selector that contains values, a key, and an operator that
  997. relates the key and values.
  998. properties:
  999. key:
  1000. description: key is the label key
  1001. that the selector applies to.
  1002. type: string
  1003. operator:
  1004. description: |-
  1005. operator represents a key's relationship to a set of values.
  1006. Valid operators are In, NotIn, Exists and DoesNotExist.
  1007. type: string
  1008. values:
  1009. description: |-
  1010. values is an array of string values. If the operator is In or NotIn,
  1011. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1012. the values array must be empty. This array is replaced during a strategic
  1013. merge patch.
  1014. items:
  1015. type: string
  1016. type: array
  1017. x-kubernetes-list-type: atomic
  1018. required:
  1019. - key
  1020. - operator
  1021. type: object
  1022. type: array
  1023. x-kubernetes-list-type: atomic
  1024. matchLabels:
  1025. additionalProperties:
  1026. type: string
  1027. description: |-
  1028. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1029. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1030. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1031. type: object
  1032. type: object
  1033. x-kubernetes-map-type: atomic
  1034. namespaces:
  1035. description: |-
  1036. namespaces specifies a static list of namespace names that the term applies to.
  1037. The term is applied to the union of the namespaces listed in this field
  1038. and the ones selected by namespaceSelector.
  1039. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  1040. items:
  1041. type: string
  1042. type: array
  1043. x-kubernetes-list-type: atomic
  1044. topologyKey:
  1045. description: |-
  1046. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  1047. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  1048. whose value of the label with key topologyKey matches that of any node on which any of the
  1049. selected pods is running.
  1050. Empty topologyKey is not allowed.
  1051. type: string
  1052. required:
  1053. - topologyKey
  1054. type: object
  1055. type: array
  1056. x-kubernetes-list-type: atomic
  1057. type: object
  1058. type: object
  1059. nodeSelector:
  1060. additionalProperties:
  1061. type: string
  1062. description: nodeSelector pins pods to nodes that match all
  1063. the specified labels.
  1064. type: object
  1065. resources:
  1066. description: resources sets per-container resource requests
  1067. and limits.
  1068. properties:
  1069. claims:
  1070. description: |-
  1071. Claims lists the names of resources, defined in spec.resourceClaims,
  1072. that are used by this container.
  1073. This is an alpha field and requires enabling the
  1074. DynamicResourceAllocation feature gate.
  1075. This field is immutable. It can only be set for containers.
  1076. items:
  1077. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1078. properties:
  1079. name:
  1080. description: |-
  1081. Name must match the name of one entry in pod.spec.resourceClaims of
  1082. the Pod where this field is used. It makes that resource available
  1083. inside a container.
  1084. type: string
  1085. required:
  1086. - name
  1087. type: object
  1088. type: array
  1089. x-kubernetes-list-map-keys:
  1090. - name
  1091. x-kubernetes-list-type: map
  1092. limits:
  1093. additionalProperties:
  1094. anyOf:
  1095. - type: integer
  1096. - type: string
  1097. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1098. x-kubernetes-int-or-string: true
  1099. description: |-
  1100. Limits describes the maximum amount of compute resources allowed.
  1101. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  1102. type: object
  1103. requests:
  1104. additionalProperties:
  1105. anyOf:
  1106. - type: integer
  1107. - type: string
  1108. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1109. x-kubernetes-int-or-string: true
  1110. description: |-
  1111. Requests describes the minimum amount of compute resources required.
  1112. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  1113. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  1114. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  1115. type: object
  1116. type: object
  1117. runtime:
  1118. description: runtime describes the container runtime to use
  1119. for the workload.
  1120. properties:
  1121. args:
  1122. description: args specifies or overrides the preset's
  1123. container command.
  1124. items:
  1125. type: string
  1126. type: array
  1127. command:
  1128. description: command specifies or overrides the preset's
  1129. container entrypoint.
  1130. items:
  1131. type: string
  1132. type: array
  1133. conditionalArgs:
  1134. description: conditionalArgs are appended to the preset
  1135. command conditionally.
  1136. items:
  1137. properties:
  1138. args:
  1139. description: args are appended to the preset args.
  1140. items:
  1141. type: string
  1142. type: array
  1143. when:
  1144. description: when the value is not empty after variable
  1145. substitution, the args are appended to the preset
  1146. args.
  1147. type: string
  1148. required:
  1149. - args
  1150. - when
  1151. type: object
  1152. type: array
  1153. env:
  1154. description: env holds environment variables injected
  1155. into the container.
  1156. items:
  1157. description: EnvVar represents an environment variable
  1158. present in a Container.
  1159. properties:
  1160. name:
  1161. description: Name of the environment variable. Must
  1162. be a C_IDENTIFIER.
  1163. type: string
  1164. value:
  1165. description: |-
  1166. Variable references $(VAR_NAME) are expanded
  1167. using the previously defined environment variables in the container and
  1168. any service environment variables. If a variable cannot be resolved,
  1169. the reference in the input string will be unchanged. Double $$ are reduced
  1170. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  1171. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  1172. Escaped references will never be expanded, regardless of whether the variable
  1173. exists or not.
  1174. Defaults to "".
  1175. type: string
  1176. valueFrom:
  1177. description: Source for the environment variable's
  1178. value. Cannot be used if value is not empty.
  1179. properties:
  1180. configMapKeyRef:
  1181. description: Selects a key of a ConfigMap.
  1182. properties:
  1183. key:
  1184. description: The key to select.
  1185. type: string
  1186. name:
  1187. default: ""
  1188. description: |-
  1189. Name of the referent.
  1190. This field is effectively required, but due to backwards compatibility is
  1191. allowed to be empty. Instances of this type with an empty value here are
  1192. almost certainly wrong.
  1193. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1194. type: string
  1195. optional:
  1196. description: Specify whether the ConfigMap
  1197. or its key must be defined
  1198. type: boolean
  1199. required:
  1200. - key
  1201. type: object
  1202. x-kubernetes-map-type: atomic
  1203. fieldRef:
  1204. description: |-
  1205. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  1206. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  1207. properties:
  1208. apiVersion:
  1209. description: Version of the schema the FieldPath
  1210. is written in terms of, defaults to "v1".
  1211. type: string
  1212. fieldPath:
  1213. description: Path of the field to select
  1214. in the specified API version.
  1215. type: string
  1216. required:
  1217. - fieldPath
  1218. type: object
  1219. x-kubernetes-map-type: atomic
  1220. resourceFieldRef:
  1221. description: |-
  1222. Selects a resource of the container: only resources limits and requests
  1223. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  1224. properties:
  1225. containerName:
  1226. description: 'Container name: required for
  1227. volumes, optional for env vars'
  1228. type: string
  1229. divisor:
  1230. anyOf:
  1231. - type: integer
  1232. - type: string
  1233. description: Specifies the output format
  1234. of the exposed resources, defaults to
  1235. "1"
  1236. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1237. x-kubernetes-int-or-string: true
  1238. resource:
  1239. description: 'Required: resource to select'
  1240. type: string
  1241. required:
  1242. - resource
  1243. type: object
  1244. x-kubernetes-map-type: atomic
  1245. secretKeyRef:
  1246. description: Selects a key of a secret in the
  1247. pod's namespace
  1248. properties:
  1249. key:
  1250. description: The key of the secret to select
  1251. from. Must be a valid secret key.
  1252. type: string
  1253. name:
  1254. default: ""
  1255. description: |-
  1256. Name of the referent.
  1257. This field is effectively required, but due to backwards compatibility is
  1258. allowed to be empty. Instances of this type with an empty value here are
  1259. almost certainly wrong.
  1260. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1261. type: string
  1262. optional:
  1263. description: Specify whether the Secret
  1264. or its key must be defined
  1265. type: boolean
  1266. required:
  1267. - key
  1268. type: object
  1269. x-kubernetes-map-type: atomic
  1270. type: object
  1271. required:
  1272. - name
  1273. type: object
  1274. type: array
  1275. envFrom:
  1276. description: envFrom references ConfigMaps or Secrets
  1277. whose key-value pairs are injected as environment variables.
  1278. items:
  1279. description: EnvFromSource represents the source of
  1280. a set of ConfigMaps
  1281. properties:
  1282. configMapRef:
  1283. description: The ConfigMap to select from
  1284. properties:
  1285. name:
  1286. default: ""
  1287. description: |-
  1288. Name of the referent.
  1289. This field is effectively required, but due to backwards compatibility is
  1290. allowed to be empty. Instances of this type with an empty value here are
  1291. almost certainly wrong.
  1292. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1293. type: string
  1294. optional:
  1295. description: Specify whether the ConfigMap must
  1296. be defined
  1297. type: boolean
  1298. type: object
  1299. x-kubernetes-map-type: atomic
  1300. prefix:
  1301. description: An optional identifier to prepend to
  1302. each key in the ConfigMap. Must be a C_IDENTIFIER.
  1303. type: string
  1304. secretRef:
  1305. description: The Secret to select from
  1306. properties:
  1307. name:
  1308. default: ""
  1309. description: |-
  1310. Name of the referent.
  1311. This field is effectively required, but due to backwards compatibility is
  1312. allowed to be empty. Instances of this type with an empty value here are
  1313. almost certainly wrong.
  1314. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1315. type: string
  1316. optional:
  1317. description: Specify whether the Secret must
  1318. be defined
  1319. type: boolean
  1320. type: object
  1321. x-kubernetes-map-type: atomic
  1322. type: object
  1323. type: array
  1324. extraArgs:
  1325. description: extraArgs are appended to the preset command.
  1326. items:
  1327. type: string
  1328. type: array
  1329. image:
  1330. description: |-
  1331. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  1332. or pull from a private registry mirror.
  1333. type: string
  1334. name:
  1335. description: name selects a built-in runtime preset.
  1336. type: string
  1337. port:
  1338. description: port specifies or overrides the container
  1339. port the runtime listens on.
  1340. format: int32
  1341. type: integer
  1342. volumeMounts:
  1343. description: volumeMounts defines where pod volumes are
  1344. mounted inside the container.
  1345. items:
  1346. description: VolumeMount describes a mounting of a Volume
  1347. within a container.
  1348. properties:
  1349. mountPath:
  1350. description: |-
  1351. Path within the container at which the volume should be mounted. Must
  1352. not contain ':'.
  1353. type: string
  1354. mountPropagation:
  1355. description: |-
  1356. mountPropagation determines how mounts are propagated from the host
  1357. to container and the other way around.
  1358. When not set, MountPropagationNone is used.
  1359. This field is beta in 1.10.
  1360. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  1361. (which defaults to None).
  1362. type: string
  1363. name:
  1364. description: This must match the Name of a Volume.
  1365. type: string
  1366. readOnly:
  1367. description: |-
  1368. Mounted read-only if true, read-write otherwise (false or unspecified).
  1369. Defaults to false.
  1370. type: boolean
  1371. recursiveReadOnly:
  1372. description: |-
  1373. RecursiveReadOnly specifies whether read-only mounts should be handled
  1374. recursively.
  1375. If ReadOnly is false, this field has no meaning and must be unspecified.
  1376. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  1377. recursively read-only. If this field is set to IfPossible, the mount is made
  1378. recursively read-only, if it is supported by the container runtime. If this
  1379. field is set to Enabled, the mount is made recursively read-only if it is
  1380. supported by the container runtime, otherwise the pod will not be started and
  1381. an error will be generated to indicate the reason.
  1382. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  1383. None (or be unspecified, which defaults to None).
  1384. If this field is not specified, it is treated as an equivalent of Disabled.
  1385. type: string
  1386. subPath:
  1387. description: |-
  1388. Path within the volume from which the container's volume should be mounted.
  1389. Defaults to "" (volume's root).
  1390. type: string
  1391. subPathExpr:
  1392. description: |-
  1393. Expanded path within the volume from which the container's volume should be mounted.
  1394. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  1395. Defaults to "" (volume's root).
  1396. SubPathExpr and SubPath are mutually exclusive.
  1397. type: string
  1398. required:
  1399. - mountPath
  1400. - name
  1401. type: object
  1402. type: array
  1403. type: object
  1404. securityContext:
  1405. description: |-
  1406. securityContext sets pod-level security attributes such as runAsUser,
  1407. runAsGroup, fsGroup, and sysctls.
  1408. properties:
  1409. appArmorProfile:
  1410. description: |-
  1411. appArmorProfile is the AppArmor options to use by the containers in this pod.
  1412. Note that this field cannot be set when spec.os.name is windows.
  1413. properties:
  1414. localhostProfile:
  1415. description: |-
  1416. localhostProfile indicates a profile loaded on the node that should be used.
  1417. The profile must be preconfigured on the node to work.
  1418. Must match the loaded name of the profile.
  1419. Must be set if and only if type is "Localhost".
  1420. type: string
  1421. type:
  1422. description: |-
  1423. type indicates which kind of AppArmor profile will be applied.
  1424. Valid options are:
  1425. Localhost - a profile pre-loaded on the node.
  1426. RuntimeDefault - the container runtime's default profile.
  1427. Unconfined - no AppArmor enforcement.
  1428. type: string
  1429. required:
  1430. - type
  1431. type: object
  1432. fsGroup:
  1433. description: |-
  1434. A special supplemental group that applies to all containers in a pod.
  1435. Some volume types allow the Kubelet to change the ownership of that volume
  1436. to be owned by the pod:
  1437. 1. The owning GID will be the FSGroup
  1438. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  1439. 3. The permission bits are OR'd with rw-rw----
  1440. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  1441. Note that this field cannot be set when spec.os.name is windows.
  1442. format: int64
  1443. type: integer
  1444. fsGroupChangePolicy:
  1445. description: |-
  1446. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  1447. before being exposed inside Pod. This field will only apply to
  1448. volume types which support fsGroup based ownership(and permissions).
  1449. It will have no effect on ephemeral volume types such as: secret, configmaps
  1450. and emptydir.
  1451. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  1452. Note that this field cannot be set when spec.os.name is windows.
  1453. type: string
  1454. runAsGroup:
  1455. description: |-
  1456. The GID to run the entrypoint of the container process.
  1457. Uses runtime default if unset.
  1458. May also be set in SecurityContext. If set in both SecurityContext and
  1459. PodSecurityContext, the value specified in SecurityContext takes precedence
  1460. for that container.
  1461. Note that this field cannot be set when spec.os.name is windows.
  1462. format: int64
  1463. type: integer
  1464. runAsNonRoot:
  1465. description: |-
  1466. Indicates that the container must run as a non-root user.
  1467. If true, the Kubelet will validate the image at runtime to ensure that it
  1468. does not run as UID 0 (root) and fail to start the container if it does.
  1469. If unset or false, no such validation will be performed.
  1470. May also be set in SecurityContext. If set in both SecurityContext and
  1471. PodSecurityContext, the value specified in SecurityContext takes precedence.
  1472. type: boolean
  1473. runAsUser:
  1474. description: |-
  1475. The UID to run the entrypoint of the container process.
  1476. Defaults to user specified in image metadata if unspecified.
  1477. May also be set in SecurityContext. If set in both SecurityContext and
  1478. PodSecurityContext, the value specified in SecurityContext takes precedence
  1479. for that container.
  1480. Note that this field cannot be set when spec.os.name is windows.
  1481. format: int64
  1482. type: integer
  1483. seLinuxOptions:
  1484. description: |-
  1485. The SELinux context to be applied to all containers.
  1486. If unspecified, the container runtime will allocate a random SELinux context for each
  1487. container. May also be set in SecurityContext. If set in
  1488. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  1489. takes precedence for that container.
  1490. Note that this field cannot be set when spec.os.name is windows.
  1491. properties:
  1492. level:
  1493. description: Level is SELinux level label that applies
  1494. to the container.
  1495. type: string
  1496. role:
  1497. description: Role is a SELinux role label that applies
  1498. to the container.
  1499. type: string
  1500. type:
  1501. description: Type is a SELinux type label that applies
  1502. to the container.
  1503. type: string
  1504. user:
  1505. description: User is a SELinux user label that applies
  1506. to the container.
  1507. type: string
  1508. type: object
  1509. seccompProfile:
  1510. description: |-
  1511. The seccomp options to use by the containers in this pod.
  1512. Note that this field cannot be set when spec.os.name is windows.
  1513. properties:
  1514. localhostProfile:
  1515. description: |-
  1516. localhostProfile indicates a profile defined in a file on the node should be used.
  1517. The profile must be preconfigured on the node to work.
  1518. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  1519. Must be set if type is "Localhost". Must NOT be set for any other type.
  1520. type: string
  1521. type:
  1522. description: |-
  1523. type indicates which kind of seccomp profile will be applied.
  1524. Valid options are:
  1525. Localhost - a profile defined in a file on the node should be used.
  1526. RuntimeDefault - the container runtime default profile should be used.
  1527. Unconfined - no profile should be applied.
  1528. type: string
  1529. required:
  1530. - type
  1531. type: object
  1532. supplementalGroups:
  1533. description: |-
  1534. A list of groups applied to the first process run in each container, in addition
  1535. to the container's primary GID, the fsGroup (if specified), and group memberships
  1536. defined in the container image for the uid of the container process. If unspecified,
  1537. no additional groups are added to any container. Note that group memberships
  1538. defined in the container image for the uid of the container process are still effective,
  1539. even if they are not included in this list.
  1540. Note that this field cannot be set when spec.os.name is windows.
  1541. items:
  1542. format: int64
  1543. type: integer
  1544. type: array
  1545. x-kubernetes-list-type: atomic
  1546. sysctls:
  1547. description: |-
  1548. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  1549. sysctls (by the container runtime) might fail to launch.
  1550. Note that this field cannot be set when spec.os.name is windows.
  1551. items:
  1552. description: Sysctl defines a kernel parameter to be
  1553. set
  1554. properties:
  1555. name:
  1556. description: Name of a property to set
  1557. type: string
  1558. value:
  1559. description: Value of a property to set
  1560. type: string
  1561. required:
  1562. - name
  1563. - value
  1564. type: object
  1565. type: array
  1566. x-kubernetes-list-type: atomic
  1567. windowsOptions:
  1568. description: |-
  1569. The Windows specific settings applied to all containers.
  1570. If unspecified, the options within a container's SecurityContext will be used.
  1571. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  1572. Note that this field cannot be set when spec.os.name is linux.
  1573. properties:
  1574. gmsaCredentialSpec:
  1575. description: |-
  1576. GMSACredentialSpec is where the GMSA admission webhook
  1577. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  1578. GMSA credential spec named by the GMSACredentialSpecName field.
  1579. type: string
  1580. gmsaCredentialSpecName:
  1581. description: GMSACredentialSpecName is the name of
  1582. the GMSA credential spec to use.
  1583. type: string
  1584. hostProcess:
  1585. description: |-
  1586. HostProcess determines if a container should be run as a 'Host Process' container.
  1587. All of a Pod's containers must have the same effective HostProcess value
  1588. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  1589. In addition, if HostProcess is true then HostNetwork must also be set to true.
  1590. type: boolean
  1591. runAsUserName:
  1592. description: |-
  1593. The UserName in Windows to run the entrypoint of the container process.
  1594. Defaults to the user specified in image metadata if unspecified.
  1595. May also be set in PodSecurityContext. If set in both SecurityContext and
  1596. PodSecurityContext, the value specified in SecurityContext takes precedence.
  1597. type: string
  1598. type: object
  1599. type: object
  1600. tolerations:
  1601. description: tolerations allow pods to be scheduled onto nodes
  1602. with matching taints.
  1603. items:
  1604. description: |-
  1605. The pod this Toleration is attached to tolerates any taint that matches
  1606. the triple <key,value,effect> using the matching operator <operator>.
  1607. properties:
  1608. effect:
  1609. description: |-
  1610. Effect indicates the taint effect to match. Empty means match all taint effects.
  1611. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  1612. type: string
  1613. key:
  1614. description: |-
  1615. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  1616. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  1617. type: string
  1618. operator:
  1619. description: |-
  1620. Operator represents a key's relationship to the value.
  1621. Valid operators are Exists and Equal. Defaults to Equal.
  1622. Exists is equivalent to wildcard for value, so that a pod can
  1623. tolerate all taints of a particular category.
  1624. type: string
  1625. tolerationSeconds:
  1626. description: |-
  1627. TolerationSeconds represents the period of time the toleration (which must be
  1628. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  1629. it is not set, which means tolerate the taint forever (do not evict). Zero and
  1630. negative values will be treated as 0 (evict immediately) by the system.
  1631. format: int64
  1632. type: integer
  1633. value:
  1634. description: |-
  1635. Value is the taint value the toleration matches to.
  1636. If the operator is Exists, the value should be empty, otherwise just a regular string.
  1637. type: string
  1638. type: object
  1639. type: array
  1640. topologySpreadConstraints:
  1641. description: |-
  1642. topologySpreadConstraints controls how pods are spread across failure
  1643. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  1644. items:
  1645. description: TopologySpreadConstraint specifies how to spread
  1646. matching pods among the given topology.
  1647. properties:
  1648. labelSelector:
  1649. description: |-
  1650. LabelSelector is used to find matching pods.
  1651. Pods that match this label selector are counted to determine the number of pods
  1652. in their corresponding topology domain.
  1653. properties:
  1654. matchExpressions:
  1655. description: matchExpressions is a list of label
  1656. selector requirements. The requirements are ANDed.
  1657. items:
  1658. description: |-
  1659. A label selector requirement is a selector that contains values, a key, and an operator that
  1660. relates the key and values.
  1661. properties:
  1662. key:
  1663. description: key is the label key that the
  1664. selector applies to.
  1665. type: string
  1666. operator:
  1667. description: |-
  1668. operator represents a key's relationship to a set of values.
  1669. Valid operators are In, NotIn, Exists and DoesNotExist.
  1670. type: string
  1671. values:
  1672. description: |-
  1673. values is an array of string values. If the operator is In or NotIn,
  1674. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1675. the values array must be empty. This array is replaced during a strategic
  1676. merge patch.
  1677. items:
  1678. type: string
  1679. type: array
  1680. x-kubernetes-list-type: atomic
  1681. required:
  1682. - key
  1683. - operator
  1684. type: object
  1685. type: array
  1686. x-kubernetes-list-type: atomic
  1687. matchLabels:
  1688. additionalProperties:
  1689. type: string
  1690. description: |-
  1691. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1692. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1693. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1694. type: object
  1695. type: object
  1696. x-kubernetes-map-type: atomic
  1697. matchLabelKeys:
  1698. description: |-
  1699. MatchLabelKeys is a set of pod label keys to select the pods over which
  1700. spreading will be calculated. The keys are used to lookup values from the
  1701. incoming pod labels, those key-value labels are ANDed with labelSelector
  1702. to select the group of existing pods over which spreading will be calculated
  1703. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  1704. MatchLabelKeys cannot be set when LabelSelector isn't set.
  1705. Keys that don't exist in the incoming pod labels will
  1706. be ignored. A null or empty list means only match against labelSelector.
  1707. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  1708. items:
  1709. type: string
  1710. type: array
  1711. x-kubernetes-list-type: atomic
  1712. maxSkew:
  1713. description: |-
  1714. MaxSkew describes the degree to which pods may be unevenly distributed.
  1715. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  1716. between the number of matching pods in the target topology and the global minimum.
  1717. The global minimum is the minimum number of matching pods in an eligible domain
  1718. or zero if the number of eligible domains is less than MinDomains.
  1719. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  1720. labelSelector spread as 2/2/1:
  1721. In this case, the global minimum is 1.
  1722. | zone1 | zone2 | zone3 |
  1723. | P P | P P | P |
  1724. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  1725. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  1726. violate MaxSkew(1).
  1727. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  1728. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  1729. to topologies that satisfy it.
  1730. It's a required field. Default value is 1 and 0 is not allowed.
  1731. format: int32
  1732. type: integer
  1733. minDomains:
  1734. description: |-
  1735. MinDomains indicates a minimum number of eligible domains.
  1736. When the number of eligible domains with matching topology keys is less than minDomains,
  1737. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  1738. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  1739. this value has no effect on scheduling.
  1740. As a result, when the number of eligible domains is less than minDomains,
  1741. scheduler won't schedule more than maxSkew Pods to those domains.
  1742. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  1743. Valid values are integers greater than 0.
  1744. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  1745. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  1746. labelSelector spread as 2/2/2:
  1747. | zone1 | zone2 | zone3 |
  1748. | P P | P P | P P |
  1749. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  1750. In this situation, new pod with the same labelSelector cannot be scheduled,
  1751. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  1752. it will violate MaxSkew.
  1753. format: int32
  1754. type: integer
  1755. nodeAffinityPolicy:
  1756. description: |-
  1757. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  1758. when calculating pod topology spread skew. Options are:
  1759. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  1760. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  1761. If this value is nil, the behavior is equivalent to the Honor policy.
  1762. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
  1763. type: string
  1764. nodeTaintsPolicy:
  1765. description: |-
  1766. NodeTaintsPolicy indicates how we will treat node taints when calculating
  1767. pod topology spread skew. Options are:
  1768. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  1769. has a toleration, are included.
  1770. - Ignore: node taints are ignored. All nodes are included.
  1771. If this value is nil, the behavior is equivalent to the Ignore policy.
  1772. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
  1773. type: string
  1774. topologyKey:
  1775. description: |-
  1776. TopologyKey is the key of node labels. Nodes that have a label with this key
  1777. and identical values are considered to be in the same topology.
  1778. We consider each <key, value> as a "bucket", and try to put balanced number
  1779. of pods into each bucket.
  1780. We define a domain as a particular instance of a topology.
  1781. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  1782. nodeAffinityPolicy and nodeTaintsPolicy.
  1783. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  1784. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  1785. It's a required field.
  1786. type: string
  1787. whenUnsatisfiable:
  1788. description: |-
  1789. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  1790. the spread constraint.
  1791. - DoNotSchedule (default) tells the scheduler not to schedule it.
  1792. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  1793. but giving higher precedence to topologies that would help reduce the
  1794. skew.
  1795. A constraint is considered "Unsatisfiable" for an incoming pod
  1796. if and only if every possible node assignment for that pod would violate
  1797. "MaxSkew" on some topology.
  1798. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  1799. labelSelector spread as 3/1/1:
  1800. | zone1 | zone2 | zone3 |
  1801. | P P P | P | P |
  1802. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  1803. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  1804. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  1805. won't make it *more* imbalanced.
  1806. It's a required field.
  1807. type: string
  1808. required:
  1809. - maxSkew
  1810. - topologyKey
  1811. - whenUnsatisfiable
  1812. type: object
  1813. type: array
  1814. volumes:
  1815. description: volumes defines additional pod volumes available
  1816. to the runtime container.
  1817. items:
  1818. description: Volume represents a named volume in a pod that
  1819. may be accessed by any container in the pod.
  1820. properties:
  1821. awsElasticBlockStore:
  1822. description: |-
  1823. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  1824. kubelet's host machine and then exposed to the pod.
  1825. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1826. properties:
  1827. fsType:
  1828. description: |-
  1829. fsType is the filesystem type of the volume that you want to mount.
  1830. Tip: Ensure that the filesystem type is supported by the host operating system.
  1831. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  1832. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1833. type: string
  1834. partition:
  1835. description: |-
  1836. partition is the partition in the volume that you want to mount.
  1837. If omitted, the default is to mount by volume name.
  1838. Examples: For volume /dev/sda1, you specify the partition as "1".
  1839. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  1840. format: int32
  1841. type: integer
  1842. readOnly:
  1843. description: |-
  1844. readOnly value true will force the readOnly setting in VolumeMounts.
  1845. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1846. type: boolean
  1847. volumeID:
  1848. description: |-
  1849. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  1850. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1851. type: string
  1852. required:
  1853. - volumeID
  1854. type: object
  1855. azureDisk:
  1856. description: azureDisk represents an Azure Data Disk
  1857. mount on the host and bind mount to the pod.
  1858. properties:
  1859. cachingMode:
  1860. description: 'cachingMode is the Host Caching mode:
  1861. None, Read Only, Read Write.'
  1862. type: string
  1863. diskName:
  1864. description: diskName is the Name of the data disk
  1865. in the blob storage
  1866. type: string
  1867. diskURI:
  1868. description: diskURI is the URI of data disk in
  1869. the blob storage
  1870. type: string
  1871. fsType:
  1872. description: |-
  1873. fsType is Filesystem type to mount.
  1874. Must be a filesystem type supported by the host operating system.
  1875. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  1876. type: string
  1877. kind:
  1878. description: 'kind expected values are Shared: multiple
  1879. blob disks per storage account Dedicated: single
  1880. blob disk per storage account Managed: azure
  1881. managed data disk (only in managed availability
  1882. set). defaults to shared'
  1883. type: string
  1884. readOnly:
  1885. description: |-
  1886. readOnly Defaults to false (read/write). ReadOnly here will force
  1887. the ReadOnly setting in VolumeMounts.
  1888. type: boolean
  1889. required:
  1890. - diskName
  1891. - diskURI
  1892. type: object
  1893. azureFile:
  1894. description: azureFile represents an Azure File Service
  1895. mount on the host and bind mount to the pod.
  1896. properties:
  1897. readOnly:
  1898. description: |-
  1899. readOnly defaults to false (read/write). ReadOnly here will force
  1900. the ReadOnly setting in VolumeMounts.
  1901. type: boolean
  1902. secretName:
  1903. description: secretName is the name of secret that
  1904. contains Azure Storage Account Name and Key
  1905. type: string
  1906. shareName:
  1907. description: shareName is the azure share Name
  1908. type: string
  1909. required:
  1910. - secretName
  1911. - shareName
  1912. type: object
  1913. cephfs:
  1914. description: cephFS represents a Ceph FS mount on the
  1915. host that shares a pod's lifetime
  1916. properties:
  1917. monitors:
  1918. description: |-
  1919. monitors is Required: Monitors is a collection of Ceph monitors
  1920. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1921. items:
  1922. type: string
  1923. type: array
  1924. x-kubernetes-list-type: atomic
  1925. path:
  1926. description: 'path is Optional: Used as the mounted
  1927. root, rather than the full Ceph tree, default
  1928. is /'
  1929. type: string
  1930. readOnly:
  1931. description: |-
  1932. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  1933. the ReadOnly setting in VolumeMounts.
  1934. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1935. type: boolean
  1936. secretFile:
  1937. description: |-
  1938. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  1939. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1940. type: string
  1941. secretRef:
  1942. description: |-
  1943. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  1944. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1945. properties:
  1946. name:
  1947. default: ""
  1948. description: |-
  1949. Name of the referent.
  1950. This field is effectively required, but due to backwards compatibility is
  1951. allowed to be empty. Instances of this type with an empty value here are
  1952. almost certainly wrong.
  1953. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1954. type: string
  1955. type: object
  1956. x-kubernetes-map-type: atomic
  1957. user:
  1958. description: |-
  1959. user is optional: User is the rados user name, default is admin
  1960. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1961. type: string
  1962. required:
  1963. - monitors
  1964. type: object
  1965. cinder:
  1966. description: |-
  1967. cinder represents a cinder volume attached and mounted on kubelets host machine.
  1968. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  1969. properties:
  1970. fsType:
  1971. description: |-
  1972. fsType is the filesystem type to mount.
  1973. Must be a filesystem type supported by the host operating system.
  1974. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  1975. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  1976. type: string
  1977. readOnly:
  1978. description: |-
  1979. readOnly defaults to false (read/write). ReadOnly here will force
  1980. the ReadOnly setting in VolumeMounts.
  1981. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  1982. type: boolean
  1983. secretRef:
  1984. description: |-
  1985. secretRef is optional: points to a secret object containing parameters used to connect
  1986. to OpenStack.
  1987. properties:
  1988. name:
  1989. default: ""
  1990. description: |-
  1991. Name of the referent.
  1992. This field is effectively required, but due to backwards compatibility is
  1993. allowed to be empty. Instances of this type with an empty value here are
  1994. almost certainly wrong.
  1995. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1996. type: string
  1997. type: object
  1998. x-kubernetes-map-type: atomic
  1999. volumeID:
  2000. description: |-
  2001. volumeID used to identify the volume in cinder.
  2002. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  2003. type: string
  2004. required:
  2005. - volumeID
  2006. type: object
  2007. configMap:
  2008. description: configMap represents a configMap that should
  2009. populate this volume
  2010. properties:
  2011. defaultMode:
  2012. description: |-
  2013. defaultMode is optional: mode bits used to set permissions on created files by default.
  2014. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2015. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2016. Defaults to 0644.
  2017. Directories within the path are not affected by this setting.
  2018. This might be in conflict with other options that affect the file
  2019. mode, like fsGroup, and the result can be other mode bits set.
  2020. format: int32
  2021. type: integer
  2022. items:
  2023. description: |-
  2024. items if unspecified, each key-value pair in the Data field of the referenced
  2025. ConfigMap will be projected into the volume as a file whose name is the
  2026. key and content is the value. If specified, the listed keys will be
  2027. projected into the specified paths, and unlisted keys will not be
  2028. present. If a key is specified which is not present in the ConfigMap,
  2029. the volume setup will error unless it is marked optional. Paths must be
  2030. relative and may not contain the '..' path or start with '..'.
  2031. items:
  2032. description: Maps a string key to a path within
  2033. a volume.
  2034. properties:
  2035. key:
  2036. description: key is the key to project.
  2037. type: string
  2038. mode:
  2039. description: |-
  2040. mode is Optional: mode bits used to set permissions on this file.
  2041. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2042. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2043. If not specified, the volume defaultMode will be used.
  2044. This might be in conflict with other options that affect the file
  2045. mode, like fsGroup, and the result can be other mode bits set.
  2046. format: int32
  2047. type: integer
  2048. path:
  2049. description: |-
  2050. path is the relative path of the file to map the key to.
  2051. May not be an absolute path.
  2052. May not contain the path element '..'.
  2053. May not start with the string '..'.
  2054. type: string
  2055. required:
  2056. - key
  2057. - path
  2058. type: object
  2059. type: array
  2060. x-kubernetes-list-type: atomic
  2061. name:
  2062. default: ""
  2063. description: |-
  2064. Name of the referent.
  2065. This field is effectively required, but due to backwards compatibility is
  2066. allowed to be empty. Instances of this type with an empty value here are
  2067. almost certainly wrong.
  2068. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2069. type: string
  2070. optional:
  2071. description: optional specify whether the ConfigMap
  2072. or its keys must be defined
  2073. type: boolean
  2074. type: object
  2075. x-kubernetes-map-type: atomic
  2076. csi:
  2077. description: csi (Container Storage Interface) represents
  2078. ephemeral storage that is handled by certain external
  2079. CSI drivers (Beta feature).
  2080. properties:
  2081. driver:
  2082. description: |-
  2083. driver is the name of the CSI driver that handles this volume.
  2084. Consult with your admin for the correct name as registered in the cluster.
  2085. type: string
  2086. fsType:
  2087. description: |-
  2088. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  2089. If not provided, the empty value is passed to the associated CSI driver
  2090. which will determine the default filesystem to apply.
  2091. type: string
  2092. nodePublishSecretRef:
  2093. description: |-
  2094. nodePublishSecretRef is a reference to the secret object containing
  2095. sensitive information to pass to the CSI driver to complete the CSI
  2096. NodePublishVolume and NodeUnpublishVolume calls.
  2097. This field is optional, and may be empty if no secret is required. If the
  2098. secret object contains more than one secret, all secret references are passed.
  2099. properties:
  2100. name:
  2101. default: ""
  2102. description: |-
  2103. Name of the referent.
  2104. This field is effectively required, but due to backwards compatibility is
  2105. allowed to be empty. Instances of this type with an empty value here are
  2106. almost certainly wrong.
  2107. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2108. type: string
  2109. type: object
  2110. x-kubernetes-map-type: atomic
  2111. readOnly:
  2112. description: |-
  2113. readOnly specifies a read-only configuration for the volume.
  2114. Defaults to false (read/write).
  2115. type: boolean
  2116. volumeAttributes:
  2117. additionalProperties:
  2118. type: string
  2119. description: |-
  2120. volumeAttributes stores driver-specific properties that are passed to the CSI
  2121. driver. Consult your driver's documentation for supported values.
  2122. type: object
  2123. required:
  2124. - driver
  2125. type: object
  2126. downwardAPI:
  2127. description: downwardAPI represents downward API about
  2128. the pod that should populate this volume
  2129. properties:
  2130. defaultMode:
  2131. description: |-
  2132. Optional: mode bits to use on created files by default. Must be a
  2133. Optional: mode bits used to set permissions on created files by default.
  2134. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2135. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2136. Defaults to 0644.
  2137. Directories within the path are not affected by this setting.
  2138. This might be in conflict with other options that affect the file
  2139. mode, like fsGroup, and the result can be other mode bits set.
  2140. format: int32
  2141. type: integer
  2142. items:
  2143. description: Items is a list of downward API volume
  2144. file
  2145. items:
  2146. description: DownwardAPIVolumeFile represents
  2147. information to create the file containing the
  2148. pod field
  2149. properties:
  2150. fieldRef:
  2151. description: 'Required: Selects a field of
  2152. the pod: only annotations, labels, name,
  2153. namespace and uid are supported.'
  2154. properties:
  2155. apiVersion:
  2156. description: Version of the schema the
  2157. FieldPath is written in terms of, defaults
  2158. to "v1".
  2159. type: string
  2160. fieldPath:
  2161. description: Path of the field to select
  2162. in the specified API version.
  2163. type: string
  2164. required:
  2165. - fieldPath
  2166. type: object
  2167. x-kubernetes-map-type: atomic
  2168. mode:
  2169. description: |-
  2170. Optional: mode bits used to set permissions on this file, must be an octal value
  2171. between 0000 and 0777 or a decimal value between 0 and 511.
  2172. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2173. If not specified, the volume defaultMode will be used.
  2174. This might be in conflict with other options that affect the file
  2175. mode, like fsGroup, and the result can be other mode bits set.
  2176. format: int32
  2177. type: integer
  2178. path:
  2179. description: 'Required: Path is the relative
  2180. path name of the file to be created. Must
  2181. not be absolute or contain the ''..'' path.
  2182. Must be utf-8 encoded. The first item of
  2183. the relative path must not start with ''..'''
  2184. type: string
  2185. resourceFieldRef:
  2186. description: |-
  2187. Selects a resource of the container: only resources limits and requests
  2188. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  2189. properties:
  2190. containerName:
  2191. description: 'Container name: required
  2192. for volumes, optional for env vars'
  2193. type: string
  2194. divisor:
  2195. anyOf:
  2196. - type: integer
  2197. - type: string
  2198. description: Specifies the output format
  2199. of the exposed resources, defaults to
  2200. "1"
  2201. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2202. x-kubernetes-int-or-string: true
  2203. resource:
  2204. description: 'Required: resource to select'
  2205. type: string
  2206. required:
  2207. - resource
  2208. type: object
  2209. x-kubernetes-map-type: atomic
  2210. required:
  2211. - path
  2212. type: object
  2213. type: array
  2214. x-kubernetes-list-type: atomic
  2215. type: object
  2216. emptyDir:
  2217. description: |-
  2218. emptyDir represents a temporary directory that shares a pod's lifetime.
  2219. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2220. properties:
  2221. medium:
  2222. description: |-
  2223. medium represents what type of storage medium should back this directory.
  2224. The default is "" which means to use the node's default medium.
  2225. Must be an empty string (default) or Memory.
  2226. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2227. type: string
  2228. sizeLimit:
  2229. anyOf:
  2230. - type: integer
  2231. - type: string
  2232. description: |-
  2233. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  2234. The size limit is also applicable for memory medium.
  2235. The maximum usage on memory medium EmptyDir would be the minimum value between
  2236. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  2237. The default is nil which means that the limit is undefined.
  2238. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2239. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2240. x-kubernetes-int-or-string: true
  2241. type: object
  2242. ephemeral:
  2243. description: |-
  2244. ephemeral represents a volume that is handled by a cluster storage driver.
  2245. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  2246. and deleted when the pod is removed.
  2247. Use this if:
  2248. a) the volume is only needed while the pod runs,
  2249. b) features of normal volumes like restoring from snapshot or capacity
  2250. tracking are needed,
  2251. c) the storage driver is specified through a storage class, and
  2252. d) the storage driver supports dynamic volume provisioning through
  2253. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  2254. information on the connection between this volume type
  2255. and PersistentVolumeClaim).
  2256. Use PersistentVolumeClaim or one of the vendor-specific
  2257. APIs for volumes that persist for longer than the lifecycle
  2258. of an individual pod.
  2259. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  2260. be used that way - see the documentation of the driver for
  2261. more information.
  2262. A pod can use both types of ephemeral volumes and
  2263. persistent volumes at the same time.
  2264. properties:
  2265. volumeClaimTemplate:
  2266. description: |-
  2267. Will be used to create a stand-alone PVC to provision the volume.
  2268. The pod in which this EphemeralVolumeSource is embedded will be the
  2269. owner of the PVC, i.e. the PVC will be deleted together with the
  2270. pod. The name of the PVC will be `<pod name>-<volume name>` where
  2271. `<volume name>` is the name from the `PodSpec.Volumes` array
  2272. entry. Pod validation will reject the pod if the concatenated name
  2273. is not valid for a PVC (for example, too long).
  2274. An existing PVC with that name that is not owned by the pod
  2275. will *not* be used for the pod to avoid using an unrelated
  2276. volume by mistake. Starting the pod is then blocked until
  2277. the unrelated PVC is removed. If such a pre-created PVC is
  2278. meant to be used by the pod, the PVC has to updated with an
  2279. owner reference to the pod once the pod exists. Normally
  2280. this should not be necessary, but it may be useful when
  2281. manually reconstructing a broken cluster.
  2282. This field is read-only and no changes will be made by Kubernetes
  2283. to the PVC after it has been created.
  2284. Required, must not be nil.
  2285. properties:
  2286. metadata:
  2287. description: |-
  2288. May contain labels and annotations that will be copied into the PVC
  2289. when creating it. No other fields are allowed and will be rejected during
  2290. validation.
  2291. type: object
  2292. spec:
  2293. description: |-
  2294. The specification for the PersistentVolumeClaim. The entire content is
  2295. copied unchanged into the PVC that gets created from this
  2296. template. The same fields as in a PersistentVolumeClaim
  2297. are also valid here.
  2298. properties:
  2299. accessModes:
  2300. description: |-
  2301. accessModes contains the desired access modes the volume should have.
  2302. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2303. items:
  2304. type: string
  2305. type: array
  2306. x-kubernetes-list-type: atomic
  2307. dataSource:
  2308. description: |-
  2309. dataSource field can be used to specify either:
  2310. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2311. * An existing PVC (PersistentVolumeClaim)
  2312. If the provisioner or an external controller can support the specified data source,
  2313. it will create a new volume based on the contents of the specified data source.
  2314. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2315. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2316. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2317. properties:
  2318. apiGroup:
  2319. description: |-
  2320. APIGroup is the group for the resource being referenced.
  2321. If APIGroup is not specified, the specified Kind must be in the core API group.
  2322. For any other third-party types, APIGroup is required.
  2323. type: string
  2324. kind:
  2325. description: Kind is the type of resource
  2326. being referenced
  2327. type: string
  2328. name:
  2329. description: Name is the name of resource
  2330. being referenced
  2331. type: string
  2332. required:
  2333. - kind
  2334. - name
  2335. type: object
  2336. x-kubernetes-map-type: atomic
  2337. dataSourceRef:
  2338. description: |-
  2339. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2340. volume is desired. This may be any object from a non-empty API group (non
  2341. core object) or a PersistentVolumeClaim object.
  2342. When this field is specified, volume binding will only succeed if the type of
  2343. the specified object matches some installed volume populator or dynamic
  2344. provisioner.
  2345. This field will replace the functionality of the dataSource field and as such
  2346. if both fields are non-empty, they must have the same value. For backwards
  2347. compatibility, when namespace isn't specified in dataSourceRef,
  2348. both fields (dataSource and dataSourceRef) will be set to the same
  2349. value automatically if one of them is empty and the other is non-empty.
  2350. When namespace is specified in dataSourceRef,
  2351. dataSource isn't set to the same value and must be empty.
  2352. There are three important differences between dataSource and dataSourceRef:
  2353. * While dataSource only allows two specific types of objects, dataSourceRef
  2354. allows any non-core object, as well as PersistentVolumeClaim objects.
  2355. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2356. preserves all values, and generates an error if a disallowed value is
  2357. specified.
  2358. * While dataSource only allows local objects, dataSourceRef allows objects
  2359. in any namespaces.
  2360. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2361. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2362. properties:
  2363. apiGroup:
  2364. description: |-
  2365. APIGroup is the group for the resource being referenced.
  2366. If APIGroup is not specified, the specified Kind must be in the core API group.
  2367. For any other third-party types, APIGroup is required.
  2368. type: string
  2369. kind:
  2370. description: Kind is the type of resource
  2371. being referenced
  2372. type: string
  2373. name:
  2374. description: Name is the name of resource
  2375. being referenced
  2376. type: string
  2377. namespace:
  2378. description: |-
  2379. Namespace is the namespace of resource being referenced
  2380. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  2381. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2382. type: string
  2383. required:
  2384. - kind
  2385. - name
  2386. type: object
  2387. resources:
  2388. description: |-
  2389. resources represents the minimum resources the volume should have.
  2390. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  2391. that are lower than previous value but must still be higher than capacity recorded in the
  2392. status field of the claim.
  2393. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  2394. properties:
  2395. limits:
  2396. additionalProperties:
  2397. anyOf:
  2398. - type: integer
  2399. - type: string
  2400. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2401. x-kubernetes-int-or-string: true
  2402. description: |-
  2403. Limits describes the maximum amount of compute resources allowed.
  2404. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2405. type: object
  2406. requests:
  2407. additionalProperties:
  2408. anyOf:
  2409. - type: integer
  2410. - type: string
  2411. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2412. x-kubernetes-int-or-string: true
  2413. description: |-
  2414. Requests describes the minimum amount of compute resources required.
  2415. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  2416. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  2417. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2418. type: object
  2419. type: object
  2420. selector:
  2421. description: selector is a label query over
  2422. volumes to consider for binding.
  2423. properties:
  2424. matchExpressions:
  2425. description: matchExpressions is a list
  2426. of label selector requirements. The
  2427. requirements are ANDed.
  2428. items:
  2429. description: |-
  2430. A label selector requirement is a selector that contains values, a key, and an operator that
  2431. relates the key and values.
  2432. properties:
  2433. key:
  2434. description: key is the label
  2435. key that the selector applies
  2436. to.
  2437. type: string
  2438. operator:
  2439. description: |-
  2440. operator represents a key's relationship to a set of values.
  2441. Valid operators are In, NotIn, Exists and DoesNotExist.
  2442. type: string
  2443. values:
  2444. description: |-
  2445. values is an array of string values. If the operator is In or NotIn,
  2446. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2447. the values array must be empty. This array is replaced during a strategic
  2448. merge patch.
  2449. items:
  2450. type: string
  2451. type: array
  2452. x-kubernetes-list-type: atomic
  2453. required:
  2454. - key
  2455. - operator
  2456. type: object
  2457. type: array
  2458. x-kubernetes-list-type: atomic
  2459. matchLabels:
  2460. additionalProperties:
  2461. type: string
  2462. description: |-
  2463. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2464. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2465. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2466. type: object
  2467. type: object
  2468. x-kubernetes-map-type: atomic
  2469. storageClassName:
  2470. description: |-
  2471. storageClassName is the name of the StorageClass required by the claim.
  2472. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  2473. type: string
  2474. volumeAttributesClassName:
  2475. description: |-
  2476. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  2477. If specified, the CSI driver will create or update the volume with the attributes defined
  2478. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  2479. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  2480. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  2481. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  2482. will be set by the persistentvolume controller if it exists.
  2483. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  2484. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  2485. exists.
  2486. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  2487. (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
  2488. type: string
  2489. volumeMode:
  2490. description: |-
  2491. volumeMode defines what type of volume is required by the claim.
  2492. Value of Filesystem is implied when not included in claim spec.
  2493. type: string
  2494. volumeName:
  2495. description: volumeName is the binding reference
  2496. to the PersistentVolume backing this claim.
  2497. type: string
  2498. type: object
  2499. required:
  2500. - spec
  2501. type: object
  2502. type: object
  2503. fc:
  2504. description: fc represents a Fibre Channel resource
  2505. that is attached to a kubelet's host machine and then
  2506. exposed to the pod.
  2507. properties:
  2508. fsType:
  2509. description: |-
  2510. fsType is the filesystem type to mount.
  2511. Must be a filesystem type supported by the host operating system.
  2512. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2513. type: string
  2514. lun:
  2515. description: 'lun is Optional: FC target lun number'
  2516. format: int32
  2517. type: integer
  2518. readOnly:
  2519. description: |-
  2520. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  2521. the ReadOnly setting in VolumeMounts.
  2522. type: boolean
  2523. targetWWNs:
  2524. description: 'targetWWNs is Optional: FC target
  2525. worldwide names (WWNs)'
  2526. items:
  2527. type: string
  2528. type: array
  2529. x-kubernetes-list-type: atomic
  2530. wwids:
  2531. description: |-
  2532. wwids Optional: FC volume world wide identifiers (wwids)
  2533. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  2534. items:
  2535. type: string
  2536. type: array
  2537. x-kubernetes-list-type: atomic
  2538. type: object
  2539. flexVolume:
  2540. description: |-
  2541. flexVolume represents a generic volume resource that is
  2542. provisioned/attached using an exec based plugin.
  2543. properties:
  2544. driver:
  2545. description: driver is the name of the driver to
  2546. use for this volume.
  2547. type: string
  2548. fsType:
  2549. description: |-
  2550. fsType is the filesystem type to mount.
  2551. Must be a filesystem type supported by the host operating system.
  2552. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  2553. type: string
  2554. options:
  2555. additionalProperties:
  2556. type: string
  2557. description: 'options is Optional: this field holds
  2558. extra command options if any.'
  2559. type: object
  2560. readOnly:
  2561. description: |-
  2562. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  2563. the ReadOnly setting in VolumeMounts.
  2564. type: boolean
  2565. secretRef:
  2566. description: |-
  2567. secretRef is Optional: secretRef is reference to the secret object containing
  2568. sensitive information to pass to the plugin scripts. This may be
  2569. empty if no secret object is specified. If the secret object
  2570. contains more than one secret, all secrets are passed to the plugin
  2571. scripts.
  2572. properties:
  2573. name:
  2574. default: ""
  2575. description: |-
  2576. Name of the referent.
  2577. This field is effectively required, but due to backwards compatibility is
  2578. allowed to be empty. Instances of this type with an empty value here are
  2579. almost certainly wrong.
  2580. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2581. type: string
  2582. type: object
  2583. x-kubernetes-map-type: atomic
  2584. required:
  2585. - driver
  2586. type: object
  2587. flocker:
  2588. description: flocker represents a Flocker volume attached
  2589. to a kubelet's host machine. This depends on the Flocker
  2590. control service being running
  2591. properties:
  2592. datasetName:
  2593. description: |-
  2594. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  2595. should be considered as deprecated
  2596. type: string
  2597. datasetUUID:
  2598. description: datasetUUID is the UUID of the dataset.
  2599. This is unique identifier of a Flocker dataset
  2600. type: string
  2601. type: object
  2602. gcePersistentDisk:
  2603. description: |-
  2604. gcePersistentDisk represents a GCE Disk resource that is attached to a
  2605. kubelet's host machine and then exposed to the pod.
  2606. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2607. properties:
  2608. fsType:
  2609. description: |-
  2610. fsType is filesystem type of the volume that you want to mount.
  2611. Tip: Ensure that the filesystem type is supported by the host operating system.
  2612. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2613. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2614. type: string
  2615. partition:
  2616. description: |-
  2617. partition is the partition in the volume that you want to mount.
  2618. If omitted, the default is to mount by volume name.
  2619. Examples: For volume /dev/sda1, you specify the partition as "1".
  2620. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  2621. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2622. format: int32
  2623. type: integer
  2624. pdName:
  2625. description: |-
  2626. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  2627. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2628. type: string
  2629. readOnly:
  2630. description: |-
  2631. readOnly here will force the ReadOnly setting in VolumeMounts.
  2632. Defaults to false.
  2633. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2634. type: boolean
  2635. required:
  2636. - pdName
  2637. type: object
  2638. gitRepo:
  2639. description: |-
  2640. gitRepo represents a git repository at a particular revision.
  2641. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
  2642. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  2643. into the Pod's container.
  2644. properties:
  2645. directory:
  2646. description: |-
  2647. directory is the target directory name.
  2648. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  2649. git repository. Otherwise, if specified, the volume will contain the git repository in
  2650. the subdirectory with the given name.
  2651. type: string
  2652. repository:
  2653. description: repository is the URL
  2654. type: string
  2655. revision:
  2656. description: revision is the commit hash for the
  2657. specified revision.
  2658. type: string
  2659. required:
  2660. - repository
  2661. type: object
  2662. glusterfs:
  2663. description: |-
  2664. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  2665. More info: https://examples.k8s.io/volumes/glusterfs/README.md
  2666. properties:
  2667. endpoints:
  2668. description: |-
  2669. endpoints is the endpoint name that details Glusterfs topology.
  2670. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  2671. type: string
  2672. path:
  2673. description: |-
  2674. path is the Glusterfs volume path.
  2675. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  2676. type: string
  2677. readOnly:
  2678. description: |-
  2679. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  2680. Defaults to false.
  2681. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  2682. type: boolean
  2683. required:
  2684. - endpoints
  2685. - path
  2686. type: object
  2687. hostPath:
  2688. description: |-
  2689. hostPath represents a pre-existing file or directory on the host
  2690. machine that is directly exposed to the container. This is generally
  2691. used for system agents or other privileged things that are allowed
  2692. to see the host machine. Most containers will NOT need this.
  2693. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2694. properties:
  2695. path:
  2696. description: |-
  2697. path of the directory on the host.
  2698. If the path is a symlink, it will follow the link to the real path.
  2699. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2700. type: string
  2701. type:
  2702. description: |-
  2703. type for HostPath Volume
  2704. Defaults to ""
  2705. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2706. type: string
  2707. required:
  2708. - path
  2709. type: object
  2710. iscsi:
  2711. description: |-
  2712. iscsi represents an ISCSI Disk resource that is attached to a
  2713. kubelet's host machine and then exposed to the pod.
  2714. More info: https://examples.k8s.io/volumes/iscsi/README.md
  2715. properties:
  2716. chapAuthDiscovery:
  2717. description: chapAuthDiscovery defines whether support
  2718. iSCSI Discovery CHAP authentication
  2719. type: boolean
  2720. chapAuthSession:
  2721. description: chapAuthSession defines whether support
  2722. iSCSI Session CHAP authentication
  2723. type: boolean
  2724. fsType:
  2725. description: |-
  2726. fsType is the filesystem type of the volume that you want to mount.
  2727. Tip: Ensure that the filesystem type is supported by the host operating system.
  2728. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2729. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  2730. type: string
  2731. initiatorName:
  2732. description: |-
  2733. initiatorName is the custom iSCSI Initiator Name.
  2734. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  2735. <target portal>:<volume name> will be created for the connection.
  2736. type: string
  2737. iqn:
  2738. description: iqn is the target iSCSI Qualified Name.
  2739. type: string
  2740. iscsiInterface:
  2741. description: |-
  2742. iscsiInterface is the interface Name that uses an iSCSI transport.
  2743. Defaults to 'default' (tcp).
  2744. type: string
  2745. lun:
  2746. description: lun represents iSCSI Target Lun number.
  2747. format: int32
  2748. type: integer
  2749. portals:
  2750. description: |-
  2751. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  2752. is other than default (typically TCP ports 860 and 3260).
  2753. items:
  2754. type: string
  2755. type: array
  2756. x-kubernetes-list-type: atomic
  2757. readOnly:
  2758. description: |-
  2759. readOnly here will force the ReadOnly setting in VolumeMounts.
  2760. Defaults to false.
  2761. type: boolean
  2762. secretRef:
  2763. description: secretRef is the CHAP Secret for iSCSI
  2764. target and initiator authentication
  2765. properties:
  2766. name:
  2767. default: ""
  2768. description: |-
  2769. Name of the referent.
  2770. This field is effectively required, but due to backwards compatibility is
  2771. allowed to be empty. Instances of this type with an empty value here are
  2772. almost certainly wrong.
  2773. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2774. type: string
  2775. type: object
  2776. x-kubernetes-map-type: atomic
  2777. targetPortal:
  2778. description: |-
  2779. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  2780. is other than default (typically TCP ports 860 and 3260).
  2781. type: string
  2782. required:
  2783. - iqn
  2784. - lun
  2785. - targetPortal
  2786. type: object
  2787. name:
  2788. description: |-
  2789. name of the volume.
  2790. Must be a DNS_LABEL and unique within the pod.
  2791. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2792. type: string
  2793. nfs:
  2794. description: |-
  2795. nfs represents an NFS mount on the host that shares a pod's lifetime
  2796. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2797. properties:
  2798. path:
  2799. description: |-
  2800. path that is exported by the NFS server.
  2801. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2802. type: string
  2803. readOnly:
  2804. description: |-
  2805. readOnly here will force the NFS export to be mounted with read-only permissions.
  2806. Defaults to false.
  2807. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2808. type: boolean
  2809. server:
  2810. description: |-
  2811. server is the hostname or IP address of the NFS server.
  2812. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2813. type: string
  2814. required:
  2815. - path
  2816. - server
  2817. type: object
  2818. persistentVolumeClaim:
  2819. description: |-
  2820. persistentVolumeClaimVolumeSource represents a reference to a
  2821. PersistentVolumeClaim in the same namespace.
  2822. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2823. properties:
  2824. claimName:
  2825. description: |-
  2826. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  2827. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2828. type: string
  2829. readOnly:
  2830. description: |-
  2831. readOnly Will force the ReadOnly setting in VolumeMounts.
  2832. Default false.
  2833. type: boolean
  2834. required:
  2835. - claimName
  2836. type: object
  2837. photonPersistentDisk:
  2838. description: photonPersistentDisk represents a PhotonController
  2839. persistent disk attached and mounted on kubelets host
  2840. machine
  2841. properties:
  2842. fsType:
  2843. description: |-
  2844. fsType is the filesystem type to mount.
  2845. Must be a filesystem type supported by the host operating system.
  2846. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2847. type: string
  2848. pdID:
  2849. description: pdID is the ID that identifies Photon
  2850. Controller persistent disk
  2851. type: string
  2852. required:
  2853. - pdID
  2854. type: object
  2855. portworxVolume:
  2856. description: portworxVolume represents a portworx volume
  2857. attached and mounted on kubelets host machine
  2858. properties:
  2859. fsType:
  2860. description: |-
  2861. fSType represents the filesystem type to mount
  2862. Must be a filesystem type supported by the host operating system.
  2863. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  2864. type: string
  2865. readOnly:
  2866. description: |-
  2867. readOnly defaults to false (read/write). ReadOnly here will force
  2868. the ReadOnly setting in VolumeMounts.
  2869. type: boolean
  2870. volumeID:
  2871. description: volumeID uniquely identifies a Portworx
  2872. volume
  2873. type: string
  2874. required:
  2875. - volumeID
  2876. type: object
  2877. projected:
  2878. description: projected items for all in one resources
  2879. secrets, configmaps, and downward API
  2880. properties:
  2881. defaultMode:
  2882. description: |-
  2883. defaultMode are the mode bits used to set permissions on created files by default.
  2884. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2885. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2886. Directories within the path are not affected by this setting.
  2887. This might be in conflict with other options that affect the file
  2888. mode, like fsGroup, and the result can be other mode bits set.
  2889. format: int32
  2890. type: integer
  2891. sources:
  2892. description: sources is the list of volume projections
  2893. items:
  2894. description: Projection that may be projected
  2895. along with other supported volume types
  2896. properties:
  2897. clusterTrustBundle:
  2898. description: |-
  2899. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  2900. of ClusterTrustBundle objects in an auto-updating file.
  2901. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  2902. ClusterTrustBundle objects can either be selected by name, or by the
  2903. combination of signer name and a label selector.
  2904. Kubelet performs aggressive normalization of the PEM contents written
  2905. into the pod filesystem. Esoteric PEM features such as inter-block
  2906. comments and block headers are stripped. Certificates are deduplicated.
  2907. The ordering of certificates within the file is arbitrary, and Kubelet
  2908. may change the order over time.
  2909. properties:
  2910. labelSelector:
  2911. description: |-
  2912. Select all ClusterTrustBundles that match this label selector. Only has
  2913. effect if signerName is set. Mutually-exclusive with name. If unset,
  2914. interpreted as "match nothing". If set but empty, interpreted as "match
  2915. everything".
  2916. properties:
  2917. matchExpressions:
  2918. description: matchExpressions is a
  2919. list of label selector requirements.
  2920. The requirements are ANDed.
  2921. items:
  2922. description: |-
  2923. A label selector requirement is a selector that contains values, a key, and an operator that
  2924. relates the key and values.
  2925. properties:
  2926. key:
  2927. description: key is the label
  2928. key that the selector applies
  2929. to.
  2930. type: string
  2931. operator:
  2932. description: |-
  2933. operator represents a key's relationship to a set of values.
  2934. Valid operators are In, NotIn, Exists and DoesNotExist.
  2935. type: string
  2936. values:
  2937. description: |-
  2938. values is an array of string values. If the operator is In or NotIn,
  2939. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2940. the values array must be empty. This array is replaced during a strategic
  2941. merge patch.
  2942. items:
  2943. type: string
  2944. type: array
  2945. x-kubernetes-list-type: atomic
  2946. required:
  2947. - key
  2948. - operator
  2949. type: object
  2950. type: array
  2951. x-kubernetes-list-type: atomic
  2952. matchLabels:
  2953. additionalProperties:
  2954. type: string
  2955. description: |-
  2956. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2957. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2958. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2959. type: object
  2960. type: object
  2961. x-kubernetes-map-type: atomic
  2962. name:
  2963. description: |-
  2964. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  2965. with signerName and labelSelector.
  2966. type: string
  2967. optional:
  2968. description: |-
  2969. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  2970. aren't available. If using name, then the named ClusterTrustBundle is
  2971. allowed not to exist. If using signerName, then the combination of
  2972. signerName and labelSelector is allowed to match zero
  2973. ClusterTrustBundles.
  2974. type: boolean
  2975. path:
  2976. description: Relative path from the volume
  2977. root to write the bundle.
  2978. type: string
  2979. signerName:
  2980. description: |-
  2981. Select all ClusterTrustBundles that match this signer name.
  2982. Mutually-exclusive with name. The contents of all selected
  2983. ClusterTrustBundles will be unified and deduplicated.
  2984. type: string
  2985. required:
  2986. - path
  2987. type: object
  2988. configMap:
  2989. description: configMap information about the
  2990. configMap data to project
  2991. properties:
  2992. items:
  2993. description: |-
  2994. items if unspecified, each key-value pair in the Data field of the referenced
  2995. ConfigMap will be projected into the volume as a file whose name is the
  2996. key and content is the value. If specified, the listed keys will be
  2997. projected into the specified paths, and unlisted keys will not be
  2998. present. If a key is specified which is not present in the ConfigMap,
  2999. the volume setup will error unless it is marked optional. Paths must be
  3000. relative and may not contain the '..' path or start with '..'.
  3001. items:
  3002. description: Maps a string key to a
  3003. path within a volume.
  3004. properties:
  3005. key:
  3006. description: key is the key to project.
  3007. type: string
  3008. mode:
  3009. description: |-
  3010. mode is Optional: mode bits used to set permissions on this file.
  3011. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3012. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3013. If not specified, the volume defaultMode will be used.
  3014. This might be in conflict with other options that affect the file
  3015. mode, like fsGroup, and the result can be other mode bits set.
  3016. format: int32
  3017. type: integer
  3018. path:
  3019. description: |-
  3020. path is the relative path of the file to map the key to.
  3021. May not be an absolute path.
  3022. May not contain the path element '..'.
  3023. May not start with the string '..'.
  3024. type: string
  3025. required:
  3026. - key
  3027. - path
  3028. type: object
  3029. type: array
  3030. x-kubernetes-list-type: atomic
  3031. name:
  3032. default: ""
  3033. description: |-
  3034. Name of the referent.
  3035. This field is effectively required, but due to backwards compatibility is
  3036. allowed to be empty. Instances of this type with an empty value here are
  3037. almost certainly wrong.
  3038. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3039. type: string
  3040. optional:
  3041. description: optional specify whether
  3042. the ConfigMap or its keys must be defined
  3043. type: boolean
  3044. type: object
  3045. x-kubernetes-map-type: atomic
  3046. downwardAPI:
  3047. description: downwardAPI information about
  3048. the downwardAPI data to project
  3049. properties:
  3050. items:
  3051. description: Items is a list of DownwardAPIVolume
  3052. file
  3053. items:
  3054. description: DownwardAPIVolumeFile represents
  3055. information to create the file containing
  3056. the pod field
  3057. properties:
  3058. fieldRef:
  3059. description: 'Required: Selects
  3060. a field of the pod: only annotations,
  3061. labels, name, namespace and uid
  3062. are supported.'
  3063. properties:
  3064. apiVersion:
  3065. description: Version of the
  3066. schema the FieldPath is written
  3067. in terms of, defaults to "v1".
  3068. type: string
  3069. fieldPath:
  3070. description: Path of the field
  3071. to select in the specified
  3072. API version.
  3073. type: string
  3074. required:
  3075. - fieldPath
  3076. type: object
  3077. x-kubernetes-map-type: atomic
  3078. mode:
  3079. description: |-
  3080. Optional: mode bits used to set permissions on this file, must be an octal value
  3081. between 0000 and 0777 or a decimal value between 0 and 511.
  3082. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3083. If not specified, the volume defaultMode will be used.
  3084. This might be in conflict with other options that affect the file
  3085. mode, like fsGroup, and the result can be other mode bits set.
  3086. format: int32
  3087. type: integer
  3088. path:
  3089. description: 'Required: Path is the
  3090. relative path name of the file
  3091. to be created. Must not be absolute
  3092. or contain the ''..'' path. Must
  3093. be utf-8 encoded. The first item
  3094. of the relative path must not
  3095. start with ''..'''
  3096. type: string
  3097. resourceFieldRef:
  3098. description: |-
  3099. Selects a resource of the container: only resources limits and requests
  3100. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  3101. properties:
  3102. containerName:
  3103. description: 'Container name:
  3104. required for volumes, optional
  3105. for env vars'
  3106. type: string
  3107. divisor:
  3108. anyOf:
  3109. - type: integer
  3110. - type: string
  3111. description: Specifies the output
  3112. format of the exposed resources,
  3113. defaults to "1"
  3114. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3115. x-kubernetes-int-or-string: true
  3116. resource:
  3117. description: 'Required: resource
  3118. to select'
  3119. type: string
  3120. required:
  3121. - resource
  3122. type: object
  3123. x-kubernetes-map-type: atomic
  3124. required:
  3125. - path
  3126. type: object
  3127. type: array
  3128. x-kubernetes-list-type: atomic
  3129. type: object
  3130. secret:
  3131. description: secret information about the
  3132. secret data to project
  3133. properties:
  3134. items:
  3135. description: |-
  3136. items if unspecified, each key-value pair in the Data field of the referenced
  3137. Secret will be projected into the volume as a file whose name is the
  3138. key and content is the value. If specified, the listed keys will be
  3139. projected into the specified paths, and unlisted keys will not be
  3140. present. If a key is specified which is not present in the Secret,
  3141. the volume setup will error unless it is marked optional. Paths must be
  3142. relative and may not contain the '..' path or start with '..'.
  3143. items:
  3144. description: Maps a string key to a
  3145. path within a volume.
  3146. properties:
  3147. key:
  3148. description: key is the key to project.
  3149. type: string
  3150. mode:
  3151. description: |-
  3152. mode is Optional: mode bits used to set permissions on this file.
  3153. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3154. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3155. If not specified, the volume defaultMode will be used.
  3156. This might be in conflict with other options that affect the file
  3157. mode, like fsGroup, and the result can be other mode bits set.
  3158. format: int32
  3159. type: integer
  3160. path:
  3161. description: |-
  3162. path is the relative path of the file to map the key to.
  3163. May not be an absolute path.
  3164. May not contain the path element '..'.
  3165. May not start with the string '..'.
  3166. type: string
  3167. required:
  3168. - key
  3169. - path
  3170. type: object
  3171. type: array
  3172. x-kubernetes-list-type: atomic
  3173. name:
  3174. default: ""
  3175. description: |-
  3176. Name of the referent.
  3177. This field is effectively required, but due to backwards compatibility is
  3178. allowed to be empty. Instances of this type with an empty value here are
  3179. almost certainly wrong.
  3180. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3181. type: string
  3182. optional:
  3183. description: optional field specify whether
  3184. the Secret or its key must be defined
  3185. type: boolean
  3186. type: object
  3187. x-kubernetes-map-type: atomic
  3188. serviceAccountToken:
  3189. description: serviceAccountToken is information
  3190. about the serviceAccountToken data to project
  3191. properties:
  3192. audience:
  3193. description: |-
  3194. audience is the intended audience of the token. A recipient of a token
  3195. must identify itself with an identifier specified in the audience of the
  3196. token, and otherwise should reject the token. The audience defaults to the
  3197. identifier of the apiserver.
  3198. type: string
  3199. expirationSeconds:
  3200. description: |-
  3201. expirationSeconds is the requested duration of validity of the service
  3202. account token. As the token approaches expiration, the kubelet volume
  3203. plugin will proactively rotate the service account token. The kubelet will
  3204. start trying to rotate the token if the token is older than 80 percent of
  3205. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  3206. and must be at least 10 minutes.
  3207. format: int64
  3208. type: integer
  3209. path:
  3210. description: |-
  3211. path is the path relative to the mount point of the file to project the
  3212. token into.
  3213. type: string
  3214. required:
  3215. - path
  3216. type: object
  3217. type: object
  3218. type: array
  3219. x-kubernetes-list-type: atomic
  3220. type: object
  3221. quobyte:
  3222. description: quobyte represents a Quobyte mount on the
  3223. host that shares a pod's lifetime
  3224. properties:
  3225. group:
  3226. description: |-
  3227. group to map volume access to
  3228. Default is no group
  3229. type: string
  3230. readOnly:
  3231. description: |-
  3232. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  3233. Defaults to false.
  3234. type: boolean
  3235. registry:
  3236. description: |-
  3237. registry represents a single or multiple Quobyte Registry services
  3238. specified as a string as host:port pair (multiple entries are separated with commas)
  3239. which acts as the central registry for volumes
  3240. type: string
  3241. tenant:
  3242. description: |-
  3243. tenant owning the given Quobyte volume in the Backend
  3244. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  3245. type: string
  3246. user:
  3247. description: |-
  3248. user to map volume access to
  3249. Defaults to serivceaccount user
  3250. type: string
  3251. volume:
  3252. description: volume is a string that references
  3253. an already created Quobyte volume by name.
  3254. type: string
  3255. required:
  3256. - registry
  3257. - volume
  3258. type: object
  3259. rbd:
  3260. description: |-
  3261. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  3262. More info: https://examples.k8s.io/volumes/rbd/README.md
  3263. properties:
  3264. fsType:
  3265. description: |-
  3266. fsType is the filesystem type of the volume that you want to mount.
  3267. Tip: Ensure that the filesystem type is supported by the host operating system.
  3268. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3269. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  3270. type: string
  3271. image:
  3272. description: |-
  3273. image is the rados image name.
  3274. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3275. type: string
  3276. keyring:
  3277. description: |-
  3278. keyring is the path to key ring for RBDUser.
  3279. Default is /etc/ceph/keyring.
  3280. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3281. type: string
  3282. monitors:
  3283. description: |-
  3284. monitors is a collection of Ceph monitors.
  3285. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3286. items:
  3287. type: string
  3288. type: array
  3289. x-kubernetes-list-type: atomic
  3290. pool:
  3291. description: |-
  3292. pool is the rados pool name.
  3293. Default is rbd.
  3294. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3295. type: string
  3296. readOnly:
  3297. description: |-
  3298. readOnly here will force the ReadOnly setting in VolumeMounts.
  3299. Defaults to false.
  3300. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3301. type: boolean
  3302. secretRef:
  3303. description: |-
  3304. secretRef is name of the authentication secret for RBDUser. If provided
  3305. overrides keyring.
  3306. Default is nil.
  3307. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3308. properties:
  3309. name:
  3310. default: ""
  3311. description: |-
  3312. Name of the referent.
  3313. This field is effectively required, but due to backwards compatibility is
  3314. allowed to be empty. Instances of this type with an empty value here are
  3315. almost certainly wrong.
  3316. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3317. type: string
  3318. type: object
  3319. x-kubernetes-map-type: atomic
  3320. user:
  3321. description: |-
  3322. user is the rados user name.
  3323. Default is admin.
  3324. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3325. type: string
  3326. required:
  3327. - image
  3328. - monitors
  3329. type: object
  3330. scaleIO:
  3331. description: scaleIO represents a ScaleIO persistent
  3332. volume attached and mounted on Kubernetes nodes.
  3333. properties:
  3334. fsType:
  3335. description: |-
  3336. fsType is the filesystem type to mount.
  3337. Must be a filesystem type supported by the host operating system.
  3338. Ex. "ext4", "xfs", "ntfs".
  3339. Default is "xfs".
  3340. type: string
  3341. gateway:
  3342. description: gateway is the host address of the
  3343. ScaleIO API Gateway.
  3344. type: string
  3345. protectionDomain:
  3346. description: protectionDomain is the name of the
  3347. ScaleIO Protection Domain for the configured storage.
  3348. type: string
  3349. readOnly:
  3350. description: |-
  3351. readOnly Defaults to false (read/write). ReadOnly here will force
  3352. the ReadOnly setting in VolumeMounts.
  3353. type: boolean
  3354. secretRef:
  3355. description: |-
  3356. secretRef references to the secret for ScaleIO user and other
  3357. sensitive information. If this is not provided, Login operation will fail.
  3358. properties:
  3359. name:
  3360. default: ""
  3361. description: |-
  3362. Name of the referent.
  3363. This field is effectively required, but due to backwards compatibility is
  3364. allowed to be empty. Instances of this type with an empty value here are
  3365. almost certainly wrong.
  3366. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3367. type: string
  3368. type: object
  3369. x-kubernetes-map-type: atomic
  3370. sslEnabled:
  3371. description: sslEnabled Flag enable/disable SSL
  3372. communication with Gateway, default false
  3373. type: boolean
  3374. storageMode:
  3375. description: |-
  3376. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  3377. Default is ThinProvisioned.
  3378. type: string
  3379. storagePool:
  3380. description: storagePool is the ScaleIO Storage
  3381. Pool associated with the protection domain.
  3382. type: string
  3383. system:
  3384. description: system is the name of the storage system
  3385. as configured in ScaleIO.
  3386. type: string
  3387. volumeName:
  3388. description: |-
  3389. volumeName is the name of a volume already created in the ScaleIO system
  3390. that is associated with this volume source.
  3391. type: string
  3392. required:
  3393. - gateway
  3394. - secretRef
  3395. - system
  3396. type: object
  3397. secret:
  3398. description: |-
  3399. secret represents a secret that should populate this volume.
  3400. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  3401. properties:
  3402. defaultMode:
  3403. description: |-
  3404. defaultMode is Optional: mode bits used to set permissions on created files by default.
  3405. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3406. YAML accepts both octal and decimal values, JSON requires decimal values
  3407. for mode bits. Defaults to 0644.
  3408. Directories within the path are not affected by this setting.
  3409. This might be in conflict with other options that affect the file
  3410. mode, like fsGroup, and the result can be other mode bits set.
  3411. format: int32
  3412. type: integer
  3413. items:
  3414. description: |-
  3415. items If unspecified, each key-value pair in the Data field of the referenced
  3416. Secret will be projected into the volume as a file whose name is the
  3417. key and content is the value. If specified, the listed keys will be
  3418. projected into the specified paths, and unlisted keys will not be
  3419. present. If a key is specified which is not present in the Secret,
  3420. the volume setup will error unless it is marked optional. Paths must be
  3421. relative and may not contain the '..' path or start with '..'.
  3422. items:
  3423. description: Maps a string key to a path within
  3424. a volume.
  3425. properties:
  3426. key:
  3427. description: key is the key to project.
  3428. type: string
  3429. mode:
  3430. description: |-
  3431. mode is Optional: mode bits used to set permissions on this file.
  3432. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3433. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3434. If not specified, the volume defaultMode will be used.
  3435. This might be in conflict with other options that affect the file
  3436. mode, like fsGroup, and the result can be other mode bits set.
  3437. format: int32
  3438. type: integer
  3439. path:
  3440. description: |-
  3441. path is the relative path of the file to map the key to.
  3442. May not be an absolute path.
  3443. May not contain the path element '..'.
  3444. May not start with the string '..'.
  3445. type: string
  3446. required:
  3447. - key
  3448. - path
  3449. type: object
  3450. type: array
  3451. x-kubernetes-list-type: atomic
  3452. optional:
  3453. description: optional field specify whether the
  3454. Secret or its keys must be defined
  3455. type: boolean
  3456. secretName:
  3457. description: |-
  3458. secretName is the name of the secret in the pod's namespace to use.
  3459. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  3460. type: string
  3461. type: object
  3462. storageos:
  3463. description: storageOS represents a StorageOS volume
  3464. attached and mounted on Kubernetes nodes.
  3465. properties:
  3466. fsType:
  3467. description: |-
  3468. fsType is the filesystem type to mount.
  3469. Must be a filesystem type supported by the host operating system.
  3470. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3471. type: string
  3472. readOnly:
  3473. description: |-
  3474. readOnly defaults to false (read/write). ReadOnly here will force
  3475. the ReadOnly setting in VolumeMounts.
  3476. type: boolean
  3477. secretRef:
  3478. description: |-
  3479. secretRef specifies the secret to use for obtaining the StorageOS API
  3480. credentials. If not specified, default values will be attempted.
  3481. properties:
  3482. name:
  3483. default: ""
  3484. description: |-
  3485. Name of the referent.
  3486. This field is effectively required, but due to backwards compatibility is
  3487. allowed to be empty. Instances of this type with an empty value here are
  3488. almost certainly wrong.
  3489. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3490. type: string
  3491. type: object
  3492. x-kubernetes-map-type: atomic
  3493. volumeName:
  3494. description: |-
  3495. volumeName is the human-readable name of the StorageOS volume. Volume
  3496. names are only unique within a namespace.
  3497. type: string
  3498. volumeNamespace:
  3499. description: |-
  3500. volumeNamespace specifies the scope of the volume within StorageOS. If no
  3501. namespace is specified then the Pod's namespace will be used. This allows the
  3502. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  3503. Set VolumeName to any name to override the default behaviour.
  3504. Set to "default" if you are not using namespaces within StorageOS.
  3505. Namespaces that do not pre-exist within StorageOS will be created.
  3506. type: string
  3507. type: object
  3508. vsphereVolume:
  3509. description: vsphereVolume represents a vSphere volume
  3510. attached and mounted on kubelets host machine
  3511. properties:
  3512. fsType:
  3513. description: |-
  3514. fsType is filesystem type to mount.
  3515. Must be a filesystem type supported by the host operating system.
  3516. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3517. type: string
  3518. storagePolicyID:
  3519. description: storagePolicyID is the storage Policy
  3520. Based Management (SPBM) profile ID associated
  3521. with the StoragePolicyName.
  3522. type: string
  3523. storagePolicyName:
  3524. description: storagePolicyName is the storage Policy
  3525. Based Management (SPBM) profile name.
  3526. type: string
  3527. volumePath:
  3528. description: volumePath is the path that identifies
  3529. vSphere volume vmdk
  3530. type: string
  3531. required:
  3532. - volumePath
  3533. type: object
  3534. required:
  3535. - name
  3536. type: object
  3537. type: array
  3538. type: object
  3539. required:
  3540. - name
  3541. type: object
  3542. weights:
  3543. description: |-
  3544. weights specifies where to fetch the model weights from.
  3545. Exactly one source (huggingFace, url, pvc) must be set.
  3546. properties:
  3547. huggingFace:
  3548. description: |-
  3549. huggingFace pulls artifacts from HuggingFace Hub.
  3550. The operator creates a managed PVC and a one-off download Job.
  3551. properties:
  3552. endpoint:
  3553. description: |-
  3554. endpoint is the base URL for HuggingFace API requests.
  3555. Defaults to "https://huggingface.co" if not specified.
  3556. type: string
  3557. fileName:
  3558. description: fileName is the specific file to pull from the
  3559. repo (e.g. a single GGUF for llama.cpp).
  3560. type: string
  3561. repo:
  3562. description: |-
  3563. repo is the HuggingFace repository id (e.g. meta-llama/Llama-3.1-8B-Instruct).
  3564. Defaults from modelClassRef.baseModelId when omitted.
  3565. type: string
  3566. revision:
  3567. description: revision is the branch, tag, or commit to pull.
  3568. Defaults to "main".
  3569. type: string
  3570. tokenSecretRef:
  3571. description: |-
  3572. tokenSecretRef references a Secret key holding an HF token for gated or private repos.
  3573. Injected into the download Job only; inference pods do not receive the token.
  3574. properties:
  3575. key:
  3576. description: The key of the secret to select from. Must
  3577. be a valid secret key.
  3578. type: string
  3579. name:
  3580. default: ""
  3581. description: |-
  3582. Name of the referent.
  3583. This field is effectively required, but due to backwards compatibility is
  3584. allowed to be empty. Instances of this type with an empty value here are
  3585. almost certainly wrong.
  3586. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3587. type: string
  3588. optional:
  3589. description: Specify whether the Secret or its key must
  3590. be defined
  3591. type: boolean
  3592. required:
  3593. - key
  3594. type: object
  3595. x-kubernetes-map-type: atomic
  3596. required:
  3597. - repo
  3598. type: object
  3599. pvc:
  3600. description: |-
  3601. pvc mounts artifacts from a PersistentVolumeClaim.
  3602. The user is responsible for populating the volume before referencing it.
  3603. properties:
  3604. claimName:
  3605. description: claimName is the name of an existing PVC in the
  3606. same namespace.
  3607. type: string
  3608. filePath:
  3609. description: filePath is the path inside the PVC where the
  3610. artifact is located.
  3611. type: string
  3612. required:
  3613. - claimName
  3614. type: object
  3615. url:
  3616. description: |-
  3617. url downloads artifacts from an arbitrary HTTP/HTTPS URL.
  3618. The operator creates a managed PVC and a one-off download Job.
  3619. properties:
  3620. authSecretRef:
  3621. description: |-
  3622. authSecretRef references a Secret whose key-value pairs are injected as HTTP
  3623. request headers into the download Job. Not mounted in inference pods.
  3624. properties:
  3625. name:
  3626. default: ""
  3627. description: |-
  3628. Name of the referent.
  3629. This field is effectively required, but due to backwards compatibility is
  3630. allowed to be empty. Instances of this type with an empty value here are
  3631. almost certainly wrong.
  3632. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3633. type: string
  3634. type: object
  3635. x-kubernetes-map-type: atomic
  3636. checksum:
  3637. description: 'checksum is the expected checksum of the downloaded
  3638. file (format: sha256:<hex>).'
  3639. type: string
  3640. fileName:
  3641. description: |-
  3642. fileName is the filename to write inside the PVC.
  3643. Defaults to the last path segment of the URL.
  3644. type: string
  3645. url:
  3646. description: url is the HTTP or HTTPS URL to download the
  3647. artifacts from.
  3648. type: string
  3649. required:
  3650. - url
  3651. type: object
  3652. type: object
  3653. required:
  3654. - category
  3655. - modelName
  3656. - weights
  3657. type: object
  3658. status:
  3659. description: status defines the observed state of ManagedModel
  3660. properties:
  3661. conditions:
  3662. description: |-
  3663. conditions represent the current state of the ManagedModel resource.
  3664. Each condition has a unique type and reflects the status of a specific aspect of the resource.
  3665. Standard condition types include:
  3666. - "Available": the resource is fully functional
  3667. - "Progressing": the resource is being created or updated
  3668. - "Degraded": the resource failed to reach or maintain its desired state
  3669. The status of each condition is one of True, False, or Unknown.
  3670. items:
  3671. description: Condition contains details for one aspect of the current
  3672. state of this API Resource.
  3673. properties:
  3674. lastTransitionTime:
  3675. description: |-
  3676. lastTransitionTime is the last time the condition transitioned from one status to another.
  3677. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
  3678. format: date-time
  3679. type: string
  3680. message:
  3681. description: |-
  3682. message is a human readable message indicating details about the transition.
  3683. This may be an empty string.
  3684. maxLength: 32768
  3685. type: string
  3686. observedGeneration:
  3687. description: |-
  3688. observedGeneration represents the .metadata.generation that the condition was set based upon.
  3689. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
  3690. with respect to the current state of the instance.
  3691. format: int64
  3692. minimum: 0
  3693. type: integer
  3694. reason:
  3695. description: |-
  3696. reason contains a programmatic identifier indicating the reason for the condition's last transition.
  3697. Producers of specific condition types may define expected values and meanings for this field,
  3698. and whether the values are considered a guaranteed API.
  3699. The value should be a CamelCase string.
  3700. This field may not be empty.
  3701. maxLength: 1024
  3702. minLength: 1
  3703. pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
  3704. type: string
  3705. status:
  3706. description: status of the condition, one of True, False, Unknown.
  3707. enum:
  3708. - "True"
  3709. - "False"
  3710. - Unknown
  3711. type: string
  3712. type:
  3713. description: type of condition in CamelCase or in foo.example.com/CamelCase.
  3714. maxLength: 316
  3715. pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
  3716. type: string
  3717. required:
  3718. - lastTransitionTime
  3719. - message
  3720. - reason
  3721. - status
  3722. - type
  3723. type: object
  3724. type: array
  3725. x-kubernetes-list-map-keys:
  3726. - type
  3727. x-kubernetes-list-type: map
  3728. endpoint:
  3729. description: endpoint is the URL where the model can be accessed for
  3730. inference requests.
  3731. type: string
  3732. observedGeneration:
  3733. description: observedGeneration is the .metadata.generation last reconciled.
  3734. format: int64
  3735. type: integer
  3736. type: object
  3737. required:
  3738. - spec
  3739. type: object
  3740. served: true
  3741. storage: true
  3742. subresources:
  3743. status: {}