clusterserviceversion.crd.yaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. apiVersion: apiextensions.k8s.io/v1beta1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. name: clusterserviceversions.operators.coreos.com
  5. annotations:
  6. displayName: Operator Version
  7. description: Represents an Operator that should be running on the cluster, including requirements and install strategy.
  8. spec:
  9. names:
  10. plural: clusterserviceversions
  11. singular: clusterserviceversion
  12. kind: ClusterServiceVersion
  13. listKind: ClusterServiceVersionList
  14. shortNames:
  15. - csv
  16. categories:
  17. - all
  18. - olm
  19. additionalPrinterColumns:
  20. - name: Display
  21. type: string
  22. description: The name of the CSV
  23. JSONPath: .spec.displayName
  24. - name: Version
  25. type: string
  26. description: The version of the CSV
  27. JSONPath: .spec.version
  28. - name: Replaces
  29. type: string
  30. description: The name of a CSV that this one replaces
  31. JSONPath: .spec.replaces
  32. - name: Phase
  33. type: string
  34. JSONPath: .status.phase
  35. group: operators.coreos.com
  36. version: v1alpha1
  37. versions:
  38. - name: v1alpha1
  39. served: true
  40. storage: true
  41. scope: Namespaced
  42. subresources:
  43. # status enables the status subresource.
  44. status: {}
  45. validation:
  46. openAPIV3Schema:
  47. properties:
  48. spec:
  49. type: object
  50. description: Spec for a ClusterServiceVersion
  51. required:
  52. - displayName
  53. - install
  54. properties:
  55. displayName:
  56. type: string
  57. description: Human readable name of the application that will be displayed in the ALM UI
  58. description:
  59. type: string
  60. description: Human readable description of what the application does
  61. keywords:
  62. type: array
  63. description: List of keywords which will be used to discover and categorize app types
  64. items:
  65. type: string
  66. maintainers:
  67. type: array
  68. description: Those responsible for the creation of this specific app type
  69. items:
  70. type: object
  71. description: Information for a single maintainer
  72. required:
  73. - name
  74. - email
  75. properties:
  76. name:
  77. type: string
  78. description: Maintainer's name
  79. email:
  80. type: string
  81. description: Maintainer's email address
  82. format: email
  83. optionalProperties:
  84. type: string
  85. description: "Any additional key-value metadata you wish to expose about the maintainer, e.g. github: <username>"
  86. links:
  87. type: array
  88. description: Interesting links to find more information about the project, such as marketing page, documentation, or github page
  89. items:
  90. type: object
  91. description: A single link to describe one aspect of the project
  92. required:
  93. - name
  94. - url
  95. properties:
  96. name:
  97. type: string
  98. description: Name of the link type, e.g. homepage or github url
  99. url:
  100. type: string
  101. description: URL to which the link should point
  102. format: uri
  103. icon:
  104. type: array
  105. description: Icon which should be rendered with the application information
  106. required:
  107. - base64data
  108. - mediatype
  109. properties:
  110. base64data:
  111. type: string
  112. description: Base64 binary representation of the icon image
  113. pattern: ^(?:[A-Za-z0-9+/]{4}){0,16250}(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
  114. mediatype:
  115. type: string
  116. description: Mediatype for the binary data specified in the base64data property
  117. enum:
  118. - image/gif
  119. - image/jpeg
  120. - image/png
  121. - image/svg+xml
  122. version:
  123. type: string
  124. description: Version string, recommended that users use semantic versioning
  125. pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
  126. replaces:
  127. type: string
  128. description: Name of the ClusterServiceVersion custom resource that this version replaces
  129. maturity:
  130. type: string
  131. description: What level of maturity the software has achieved at this version
  132. enum:
  133. - planning
  134. - pre-alpha
  135. - alpha
  136. - beta
  137. - stable
  138. - mature
  139. - inactive
  140. - deprecated
  141. labels:
  142. type: object
  143. description: Labels that will be applied to associated resources created by the operator.
  144. selector:
  145. type: object
  146. description: Label selector to find resources associated with or managed by the operator
  147. properties:
  148. matchLabels:
  149. type: object
  150. description: Label key:value pairs to match directly
  151. matchExpressions:
  152. type: array
  153. description: A set of expressions to match against the resource.
  154. items:
  155. allOf:
  156. - type: object
  157. required:
  158. - key
  159. - operator
  160. - values
  161. properties:
  162. key:
  163. type: string
  164. description: the key to match
  165. operator:
  166. type: string
  167. description: the operator for the expression
  168. enum:
  169. - In
  170. - NotIn
  171. - Exists
  172. - DoesNotExist
  173. values:
  174. type: array
  175. description: set of values for the expression
  176. customresourcedefinitions:
  177. type: object
  178. properties:
  179. owned:
  180. type: array
  181. description: What resources this operator is responsible for managing. No two running operators should manage the same resource.
  182. items:
  183. type: object
  184. required:
  185. - name
  186. - version
  187. - kind
  188. - displayName
  189. - description
  190. properties:
  191. name:
  192. type: string
  193. description: Fully qualified name of the CustomResourceDefinition (e.g. my-resource-v1.app.coreos.com)
  194. version:
  195. type: string
  196. description: The version field of the CustomResourceDefinition
  197. kind:
  198. type: string
  199. description: The kind field of the CustomResourceDefinition
  200. displayName:
  201. type: string
  202. description: A human-readable name for the CRD.
  203. description:
  204. type: string
  205. description: A description of the CRD
  206. resources:
  207. type: array
  208. items:
  209. type: object
  210. description: A list of resources that should be displayed for the CRD
  211. required:
  212. - kind
  213. - version
  214. properties:
  215. name:
  216. type: string
  217. description: If a CRD, the fully qualified name of the CustomResourceDefinition (e.g. my-resource-v1.app.coreos.com)
  218. version:
  219. type: string
  220. description: The version of the resource kind
  221. kind:
  222. type: string
  223. description: The kind field of the resource kind
  224. statusDescriptors:
  225. type: array
  226. items:
  227. type: object
  228. description: A spec for a field in the status block of the CRD
  229. required:
  230. - path
  231. - displayName
  232. - description
  233. properties:
  234. path:
  235. type: string
  236. description: A jsonpath indexing into the status object on the CR where the the status value can be found.
  237. displayName:
  238. type: string
  239. description: A human-readable name for the status entry.
  240. description:
  241. type: string
  242. description: A description of the status entry.
  243. x-descriptors:
  244. type: array
  245. description: A list of descriptors for the status entry that indicate the meaning of the field.
  246. items:
  247. type: string
  248. value:
  249. type: object
  250. description: If present, the value of this status is the same for all instances of the CRD and can be found here instead of on the CR.
  251. specDescriptors:
  252. type: array
  253. items:
  254. type: object
  255. description: A spec for a field in the spec block of the CRD
  256. required:
  257. - path
  258. - displayName
  259. - description
  260. properties:
  261. path:
  262. type: string
  263. description: A jsonpath indexing into the spec object on the CR where the the spec value can be found.
  264. displayName:
  265. type: string
  266. description: A human-readable name for the spec entry.
  267. description:
  268. type: string
  269. description: A description of the spec entry.
  270. x-descriptors:
  271. type: array
  272. description: A list of descriptors for the spec entry that indicate the meaning of the field.
  273. items:
  274. type: string
  275. value:
  276. type: object
  277. description: If present, the value of this spec is the same for all instances of the CRD and can be found here instead of on the CR.
  278. actionDescriptors:
  279. type: array
  280. items:
  281. type: object
  282. description: A spec for actions that can be performed on instances of the CRD
  283. required:
  284. - path
  285. - displayName
  286. - description
  287. properties:
  288. path:
  289. type: string
  290. description: A jsonpath indexing into the spec object on the CR where the the spec value can be found.
  291. displayName:
  292. type: string
  293. description: A human-readable name for the action.
  294. description:
  295. type: string
  296. description: A description of the action.
  297. x-descriptors:
  298. type: array
  299. description: A list of descriptors for the action that indicate the meaning of the action.
  300. items:
  301. type: string
  302. value:
  303. type: object
  304. description: If present, the value of this action is the same for all instances of the CRD and can be found here instead of on the CR.
  305. required:
  306. type: array
  307. description: What resources this operator is responsible for managing. No two running operators should manage the same resource.
  308. items:
  309. type: object
  310. required:
  311. - name
  312. - version
  313. - kind
  314. - displayName
  315. - description
  316. properties:
  317. name:
  318. type: string
  319. description: Fully qualified name of the CustomResourceDefinition (e.g. my-resource-v1.app.coreos.com)
  320. version:
  321. type: string
  322. description: The version field of the CustomResourceDefinition
  323. kind:
  324. type: string
  325. description: The kind field of the CustomResourceDefinition
  326. displayName:
  327. type: string
  328. description: A human-readable name for the CRD.
  329. description:
  330. type: string
  331. description: A description of the CRD
  332. statusDescriptors:
  333. type: array
  334. items:
  335. type: object
  336. description: A spec for a field in the status block of the CRD
  337. required:
  338. - path
  339. - displayName
  340. - description
  341. properties:
  342. path:
  343. type: string
  344. description: A jsonpath indexing into the status object on the CR where the the status value can be found.
  345. displayName:
  346. type: string
  347. description: A human-readable name for the status entry.
  348. description:
  349. type: string
  350. description: A description of the status entry.
  351. x-descriptors:
  352. type: array
  353. description: A list of descriptors for the status entry that indicate the meaning of the field.
  354. items:
  355. type: string
  356. value:
  357. type: object
  358. description: If present, the value of this status is the same for all instances of the CRD and can be found here instead of on the CR.
  359. install:
  360. type: object
  361. description: Information required to install this specific version of the operator software
  362. oneOf:
  363. - type: object
  364. required:
  365. - strategy
  366. - spec
  367. properties:
  368. strategy:
  369. type: string
  370. enum: ['image']
  371. spec:
  372. type: object
  373. required:
  374. - image
  375. properties:
  376. image:
  377. type: string
  378. - type: object
  379. required:
  380. - strategy
  381. - spec
  382. properties:
  383. strategy:
  384. type: string
  385. enum: ['deployment']
  386. spec:
  387. type: object
  388. required:
  389. - deployments
  390. properties:
  391. deployments:
  392. type: array
  393. description: List of deployments to create
  394. items:
  395. type: object
  396. description: A name and deployment to create in the cluster
  397. required:
  398. - name
  399. - spec
  400. properties:
  401. name:
  402. type: string
  403. description: the consistent name of the deployment
  404. spec:
  405. type: object
  406. description: The deployment spec to create in the cluster
  407. permissions:
  408. type: array
  409. description: Permissions needed by the deployement to run correctly
  410. items:
  411. type: object
  412. required:
  413. - serviceAccountName
  414. - rules
  415. properties:
  416. serviceAccountName:
  417. type: string
  418. description: The service account name to create for the deployment
  419. rules:
  420. type: array
  421. items:
  422. type: object
  423. description: a rule required by the service account
  424. properties:
  425. apiGroups:
  426. type: array
  427. description: apiGroups the rule applies to
  428. items:
  429. type: string
  430. resources:
  431. type: array
  432. items:
  433. type: string
  434. resourceNames:
  435. type: array
  436. items:
  437. type: string
  438. verbs:
  439. type: array
  440. items:
  441. type: string
  442. enum:
  443. - "*"
  444. - get
  445. - list
  446. - watch
  447. - create
  448. - update
  449. - patch
  450. - delete
  451. - deletecollection
  452. status:
  453. type: object
  454. description: Status for a ClusterServiceVersion