clusterserviceversion.crd.yaml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  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. required:
  279. type: array
  280. description: What resources this operator is responsible for managing. No two running operators should manage the same resource.
  281. items:
  282. type: object
  283. required:
  284. - name
  285. - version
  286. - kind
  287. - displayName
  288. - description
  289. properties:
  290. name:
  291. type: string
  292. description: Fully qualified name of the CustomResourceDefinition (e.g. my-resource-v1.app.coreos.com)
  293. version:
  294. type: string
  295. description: The version field of the CustomResourceDefinition
  296. kind:
  297. type: string
  298. description: The kind field of the CustomResourceDefinition
  299. displayName:
  300. type: string
  301. description: A human-readable name for the CRD.
  302. description:
  303. type: string
  304. description: A description of the CRD
  305. statusDescriptors:
  306. type: array
  307. items:
  308. type: object
  309. description: A spec for a field in the status block of the CRD
  310. required:
  311. - path
  312. - displayName
  313. - description
  314. properties:
  315. path:
  316. type: string
  317. description: A jsonpath indexing into the status object on the CR where the the status value can be found.
  318. displayName:
  319. type: string
  320. description: A human-readable name for the status entry.
  321. description:
  322. type: string
  323. description: A description of the status entry.
  324. x-descriptors:
  325. type: array
  326. description: A list of descriptors for the status entry that indicate the meaning of the field.
  327. items:
  328. type: string
  329. value:
  330. type: object
  331. 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.
  332. install:
  333. type: object
  334. description: Information required to install this specific version of the operator software
  335. oneOf:
  336. - type: object
  337. required:
  338. - strategy
  339. - spec
  340. properties:
  341. strategy:
  342. type: string
  343. enum: ['image']
  344. spec:
  345. type: object
  346. required:
  347. - image
  348. properties:
  349. image:
  350. type: string
  351. - type: object
  352. required:
  353. - strategy
  354. - spec
  355. properties:
  356. strategy:
  357. type: string
  358. enum: ['deployment']
  359. spec:
  360. type: object
  361. required:
  362. - deployments
  363. properties:
  364. deployments:
  365. type: array
  366. description: List of deployments to create
  367. items:
  368. type: object
  369. description: A name and deployment to create in the cluster
  370. required:
  371. - name
  372. - spec
  373. properties:
  374. name:
  375. type: string
  376. description: the consistent name of the deployment
  377. spec:
  378. type: object
  379. description: The deployment spec to create in the cluster
  380. permissions:
  381. type: array
  382. description: Permissions needed by the deployement to run correctly
  383. items:
  384. type: object
  385. required:
  386. - serviceAccountName
  387. - rules
  388. properties:
  389. serviceAccountName:
  390. type: string
  391. description: The service account name to create for the deployment
  392. rules:
  393. type: array
  394. items:
  395. type: object
  396. description: a rule required by the service account
  397. properties:
  398. apiGroups:
  399. type: array
  400. description: apiGroups the rule applies to
  401. items:
  402. type: string
  403. resources:
  404. type: array
  405. items:
  406. type: string
  407. resourceNames:
  408. type: array
  409. items:
  410. type: string
  411. verbs:
  412. type: array
  413. items:
  414. type: string
  415. enum:
  416. - "*"
  417. - get
  418. - list
  419. - watch
  420. - create
  421. - update
  422. - patch
  423. - delete
  424. - deletecollection
  425. status:
  426. type: object
  427. description: Status for a ClusterServiceVersion