external-secrets.io_clusterexternalsecrets.yaml 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.16.2
  6. labels:
  7. external-secrets.io/component: controller
  8. name: clusterexternalsecrets.external-secrets.io
  9. spec:
  10. group: external-secrets.io
  11. names:
  12. categories:
  13. - externalsecrets
  14. kind: ClusterExternalSecret
  15. listKind: ClusterExternalSecretList
  16. plural: clusterexternalsecrets
  17. shortNames:
  18. - ces
  19. singular: clusterexternalsecret
  20. scope: Cluster
  21. versions:
  22. - additionalPrinterColumns:
  23. - jsonPath: .spec.externalSecretSpec.secretStoreRef.name
  24. name: Store
  25. type: string
  26. - jsonPath: .spec.refreshTime
  27. name: Refresh Interval
  28. type: string
  29. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  30. name: Ready
  31. type: string
  32. name: v1beta1
  33. schema:
  34. openAPIV3Schema:
  35. description: ClusterExternalSecret is the Schema for the clusterexternalsecrets
  36. API.
  37. properties:
  38. apiVersion:
  39. description: |-
  40. APIVersion defines the versioned schema of this representation of an object.
  41. Servers should convert recognized schemas to the latest internal value, and
  42. may reject unrecognized values.
  43. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  44. type: string
  45. kind:
  46. description: |-
  47. Kind is a string value representing the REST resource this object represents.
  48. Servers may infer this from the endpoint the client submits requests to.
  49. Cannot be updated.
  50. In CamelCase.
  51. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  52. type: string
  53. metadata:
  54. type: object
  55. spec:
  56. description: ClusterExternalSecretSpec defines the desired state of ClusterExternalSecret.
  57. properties:
  58. externalSecretMetadata:
  59. description: The metadata of the external secrets to be created
  60. properties:
  61. annotations:
  62. additionalProperties:
  63. type: string
  64. type: object
  65. labels:
  66. additionalProperties:
  67. type: string
  68. type: object
  69. type: object
  70. externalSecretName:
  71. description: The name of the external secrets to be created defaults
  72. to the name of the ClusterExternalSecret
  73. type: string
  74. externalSecretSpec:
  75. description: The spec for the ExternalSecrets to be created
  76. properties:
  77. data:
  78. description: Data defines the connection between the Kubernetes
  79. Secret keys and the Provider data
  80. items:
  81. description: ExternalSecretData defines the connection between
  82. the Kubernetes Secret key (spec.data.<key>) and the Provider
  83. data.
  84. properties:
  85. remoteRef:
  86. description: |-
  87. RemoteRef points to the remote secret and defines
  88. which secret (version/property/..) to fetch.
  89. properties:
  90. conversionStrategy:
  91. default: Default
  92. description: Used to define a conversion Strategy
  93. enum:
  94. - Default
  95. - Unicode
  96. type: string
  97. decodingStrategy:
  98. default: None
  99. description: Used to define a decoding Strategy
  100. enum:
  101. - Auto
  102. - Base64
  103. - Base64URL
  104. - None
  105. type: string
  106. key:
  107. description: Key is the key used in the Provider, mandatory
  108. type: string
  109. metadataPolicy:
  110. default: None
  111. description: Policy for fetching tags/labels from provider
  112. secrets, possible options are Fetch, None. Defaults
  113. to None
  114. enum:
  115. - None
  116. - Fetch
  117. type: string
  118. property:
  119. description: Used to select a specific property of the
  120. Provider value (if a map), if supported
  121. type: string
  122. version:
  123. description: Used to select a specific version of the
  124. Provider value, if supported
  125. type: string
  126. required:
  127. - key
  128. type: object
  129. secretKey:
  130. description: |-
  131. SecretKey defines the key in which the controller stores
  132. the value. This is the key in the Kind=Secret
  133. type: string
  134. sourceRef:
  135. description: |-
  136. SourceRef allows you to override the source
  137. from which the value will pulled from.
  138. maxProperties: 1
  139. properties:
  140. generatorRef:
  141. description: |-
  142. GeneratorRef points to a generator custom resource.
  143. Deprecated: The generatorRef is not implemented in .data[].
  144. this will be removed with v1.
  145. properties:
  146. apiVersion:
  147. default: generators.external-secrets.io/v1alpha1
  148. description: Specify the apiVersion of the generator
  149. resource
  150. type: string
  151. kind:
  152. description: Specify the Kind of the resource, e.g.
  153. Password, ACRAccessToken etc.
  154. type: string
  155. name:
  156. description: Specify the name of the generator resource
  157. type: string
  158. required:
  159. - kind
  160. - name
  161. type: object
  162. storeRef:
  163. description: SecretStoreRef defines which SecretStore
  164. to fetch the ExternalSecret data.
  165. properties:
  166. kind:
  167. description: |-
  168. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  169. Defaults to `SecretStore`
  170. type: string
  171. name:
  172. description: Name of the SecretStore resource
  173. type: string
  174. required:
  175. - name
  176. type: object
  177. type: object
  178. required:
  179. - remoteRef
  180. - secretKey
  181. type: object
  182. type: array
  183. dataFrom:
  184. description: |-
  185. DataFrom is used to fetch all properties from a specific Provider data
  186. If multiple entries are specified, the Secret keys are merged in the specified order
  187. items:
  188. properties:
  189. extract:
  190. description: |-
  191. Used to extract multiple key/value pairs from one secret
  192. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  193. properties:
  194. conversionStrategy:
  195. default: Default
  196. description: Used to define a conversion Strategy
  197. enum:
  198. - Default
  199. - Unicode
  200. type: string
  201. decodingStrategy:
  202. default: None
  203. description: Used to define a decoding Strategy
  204. enum:
  205. - Auto
  206. - Base64
  207. - Base64URL
  208. - None
  209. type: string
  210. key:
  211. description: Key is the key used in the Provider, mandatory
  212. type: string
  213. metadataPolicy:
  214. default: None
  215. description: Policy for fetching tags/labels from provider
  216. secrets, possible options are Fetch, None. Defaults
  217. to None
  218. enum:
  219. - None
  220. - Fetch
  221. type: string
  222. property:
  223. description: Used to select a specific property of the
  224. Provider value (if a map), if supported
  225. type: string
  226. version:
  227. description: Used to select a specific version of the
  228. Provider value, if supported
  229. type: string
  230. required:
  231. - key
  232. type: object
  233. find:
  234. description: |-
  235. Used to find secrets based on tags or regular expressions
  236. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  237. properties:
  238. conversionStrategy:
  239. default: Default
  240. description: Used to define a conversion Strategy
  241. enum:
  242. - Default
  243. - Unicode
  244. type: string
  245. decodingStrategy:
  246. default: None
  247. description: Used to define a decoding Strategy
  248. enum:
  249. - Auto
  250. - Base64
  251. - Base64URL
  252. - None
  253. type: string
  254. name:
  255. description: Finds secrets based on the name.
  256. properties:
  257. regexp:
  258. description: Finds secrets base
  259. type: string
  260. type: object
  261. path:
  262. description: A root path to start the find operations.
  263. type: string
  264. tags:
  265. additionalProperties:
  266. type: string
  267. description: Find secrets based on tags.
  268. type: object
  269. type: object
  270. rewrite:
  271. description: |-
  272. Used to rewrite secret Keys after getting them from the secret Provider
  273. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  274. items:
  275. properties:
  276. regexp:
  277. description: |-
  278. Used to rewrite with regular expressions.
  279. The resulting key will be the output of a regexp.ReplaceAll operation.
  280. properties:
  281. source:
  282. description: Used to define the regular expression
  283. of a re.Compiler.
  284. type: string
  285. target:
  286. description: Used to define the target pattern
  287. of a ReplaceAll operation.
  288. type: string
  289. required:
  290. - source
  291. - target
  292. type: object
  293. transform:
  294. description: |-
  295. Used to apply string transformation on the secrets.
  296. The resulting key will be the output of the template applied by the operation.
  297. properties:
  298. template:
  299. description: |-
  300. Used to define the template to apply on the secret name.
  301. `.value ` will specify the secret name in the template.
  302. type: string
  303. required:
  304. - template
  305. type: object
  306. type: object
  307. type: array
  308. sourceRef:
  309. description: |-
  310. SourceRef points to a store or generator
  311. which contains secret values ready to use.
  312. Use this in combination with Extract or Find pull values out of
  313. a specific SecretStore.
  314. When sourceRef points to a generator Extract or Find is not supported.
  315. The generator returns a static map of values
  316. maxProperties: 1
  317. properties:
  318. generatorRef:
  319. description: GeneratorRef points to a generator custom
  320. resource.
  321. properties:
  322. apiVersion:
  323. default: generators.external-secrets.io/v1alpha1
  324. description: Specify the apiVersion of the generator
  325. resource
  326. type: string
  327. kind:
  328. description: Specify the Kind of the resource, e.g.
  329. Password, ACRAccessToken etc.
  330. type: string
  331. name:
  332. description: Specify the name of the generator resource
  333. type: string
  334. required:
  335. - kind
  336. - name
  337. type: object
  338. storeRef:
  339. description: SecretStoreRef defines which SecretStore
  340. to fetch the ExternalSecret data.
  341. properties:
  342. kind:
  343. description: |-
  344. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  345. Defaults to `SecretStore`
  346. type: string
  347. name:
  348. description: Name of the SecretStore resource
  349. type: string
  350. required:
  351. - name
  352. type: object
  353. type: object
  354. type: object
  355. type: array
  356. refreshInterval:
  357. default: 1h
  358. description: |-
  359. RefreshInterval is the amount of time before the values are read again from the SecretStore provider
  360. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  361. May be set to zero to fetch and create it once. Defaults to 1h.
  362. type: string
  363. secretStoreRef:
  364. description: SecretStoreRef defines which SecretStore to fetch
  365. the ExternalSecret data.
  366. properties:
  367. kind:
  368. description: |-
  369. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  370. Defaults to `SecretStore`
  371. type: string
  372. name:
  373. description: Name of the SecretStore resource
  374. type: string
  375. required:
  376. - name
  377. type: object
  378. target:
  379. default:
  380. creationPolicy: Owner
  381. deletionPolicy: Retain
  382. description: |-
  383. ExternalSecretTarget defines the Kubernetes Secret to be created
  384. There can be only one target per ExternalSecret.
  385. properties:
  386. creationPolicy:
  387. default: Owner
  388. description: |-
  389. CreationPolicy defines rules on how to create the resulting Secret
  390. Defaults to 'Owner'
  391. enum:
  392. - Owner
  393. - Orphan
  394. - Merge
  395. - None
  396. type: string
  397. deletionPolicy:
  398. default: Retain
  399. description: |-
  400. DeletionPolicy defines rules on how to delete the resulting Secret
  401. Defaults to 'Retain'
  402. enum:
  403. - Delete
  404. - Merge
  405. - Retain
  406. type: string
  407. immutable:
  408. description: Immutable defines if the final secret will be
  409. immutable
  410. type: boolean
  411. name:
  412. description: |-
  413. Name defines the name of the Secret resource to be managed
  414. This field is immutable
  415. Defaults to the .metadata.name of the ExternalSecret resource
  416. type: string
  417. template:
  418. description: Template defines a blueprint for the created
  419. Secret resource.
  420. properties:
  421. data:
  422. additionalProperties:
  423. type: string
  424. type: object
  425. engineVersion:
  426. default: v2
  427. description: |-
  428. EngineVersion specifies the template engine version
  429. that should be used to compile/execute the
  430. template specified in .data and .templateFrom[].
  431. enum:
  432. - v1
  433. - v2
  434. type: string
  435. mergePolicy:
  436. default: Replace
  437. enum:
  438. - Replace
  439. - Merge
  440. type: string
  441. metadata:
  442. description: ExternalSecretTemplateMetadata defines metadata
  443. fields for the Secret blueprint.
  444. properties:
  445. annotations:
  446. additionalProperties:
  447. type: string
  448. type: object
  449. labels:
  450. additionalProperties:
  451. type: string
  452. type: object
  453. type: object
  454. templateFrom:
  455. items:
  456. properties:
  457. configMap:
  458. properties:
  459. items:
  460. items:
  461. properties:
  462. key:
  463. type: string
  464. templateAs:
  465. default: Values
  466. enum:
  467. - Values
  468. - KeysAndValues
  469. type: string
  470. required:
  471. - key
  472. type: object
  473. type: array
  474. name:
  475. type: string
  476. required:
  477. - items
  478. - name
  479. type: object
  480. literal:
  481. type: string
  482. secret:
  483. properties:
  484. items:
  485. items:
  486. properties:
  487. key:
  488. type: string
  489. templateAs:
  490. default: Values
  491. enum:
  492. - Values
  493. - KeysAndValues
  494. type: string
  495. required:
  496. - key
  497. type: object
  498. type: array
  499. name:
  500. type: string
  501. required:
  502. - items
  503. - name
  504. type: object
  505. target:
  506. default: Data
  507. enum:
  508. - Data
  509. - Annotations
  510. - Labels
  511. type: string
  512. type: object
  513. type: array
  514. type:
  515. type: string
  516. type: object
  517. type: object
  518. type: object
  519. namespaceSelector:
  520. description: |-
  521. The labels to select by to find the Namespaces to create the ExternalSecrets in.
  522. Deprecated: Use NamespaceSelectors instead.
  523. properties:
  524. matchExpressions:
  525. description: matchExpressions is a list of label selector requirements.
  526. The requirements are ANDed.
  527. items:
  528. description: |-
  529. A label selector requirement is a selector that contains values, a key, and an operator that
  530. relates the key and values.
  531. properties:
  532. key:
  533. description: key is the label key that the selector applies
  534. to.
  535. type: string
  536. operator:
  537. description: |-
  538. operator represents a key's relationship to a set of values.
  539. Valid operators are In, NotIn, Exists and DoesNotExist.
  540. type: string
  541. values:
  542. description: |-
  543. values is an array of string values. If the operator is In or NotIn,
  544. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  545. the values array must be empty. This array is replaced during a strategic
  546. merge patch.
  547. items:
  548. type: string
  549. type: array
  550. x-kubernetes-list-type: atomic
  551. required:
  552. - key
  553. - operator
  554. type: object
  555. type: array
  556. x-kubernetes-list-type: atomic
  557. matchLabels:
  558. additionalProperties:
  559. type: string
  560. description: |-
  561. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  562. map is equivalent to an element of matchExpressions, whose key field is "key", the
  563. operator is "In", and the values array contains only "value". The requirements are ANDed.
  564. type: object
  565. type: object
  566. x-kubernetes-map-type: atomic
  567. namespaceSelectors:
  568. description: A list of labels to select by to find the Namespaces
  569. to create the ExternalSecrets in. The selectors are ORed.
  570. items:
  571. description: |-
  572. A label selector is a label query over a set of resources. The result of matchLabels and
  573. matchExpressions are ANDed. An empty label selector matches all objects. A null
  574. label selector matches no objects.
  575. properties:
  576. matchExpressions:
  577. description: matchExpressions is a list of label selector requirements.
  578. The requirements are ANDed.
  579. items:
  580. description: |-
  581. A label selector requirement is a selector that contains values, a key, and an operator that
  582. relates the key and values.
  583. properties:
  584. key:
  585. description: key is the label key that the selector applies
  586. to.
  587. type: string
  588. operator:
  589. description: |-
  590. operator represents a key's relationship to a set of values.
  591. Valid operators are In, NotIn, Exists and DoesNotExist.
  592. type: string
  593. values:
  594. description: |-
  595. values is an array of string values. If the operator is In or NotIn,
  596. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  597. the values array must be empty. This array is replaced during a strategic
  598. merge patch.
  599. items:
  600. type: string
  601. type: array
  602. x-kubernetes-list-type: atomic
  603. required:
  604. - key
  605. - operator
  606. type: object
  607. type: array
  608. x-kubernetes-list-type: atomic
  609. matchLabels:
  610. additionalProperties:
  611. type: string
  612. description: |-
  613. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  614. map is equivalent to an element of matchExpressions, whose key field is "key", the
  615. operator is "In", and the values array contains only "value". The requirements are ANDed.
  616. type: object
  617. type: object
  618. x-kubernetes-map-type: atomic
  619. type: array
  620. namespaces:
  621. description: Choose namespaces by name. This field is ORed with anything
  622. that NamespaceSelectors ends up choosing.
  623. items:
  624. type: string
  625. type: array
  626. refreshTime:
  627. description: The time in which the controller should reconcile its
  628. objects and recheck namespaces for labels.
  629. type: string
  630. required:
  631. - externalSecretSpec
  632. type: object
  633. status:
  634. description: ClusterExternalSecretStatus defines the observed state of
  635. ClusterExternalSecret.
  636. properties:
  637. conditions:
  638. items:
  639. properties:
  640. message:
  641. type: string
  642. status:
  643. type: string
  644. type:
  645. type: string
  646. required:
  647. - status
  648. - type
  649. type: object
  650. type: array
  651. externalSecretName:
  652. description: ExternalSecretName is the name of the ExternalSecrets
  653. created by the ClusterExternalSecret
  654. type: string
  655. failedNamespaces:
  656. description: Failed namespaces are the namespaces that failed to apply
  657. an ExternalSecret
  658. items:
  659. description: ClusterExternalSecretNamespaceFailure represents a
  660. failed namespace deployment and it's reason.
  661. properties:
  662. namespace:
  663. description: Namespace is the namespace that failed when trying
  664. to apply an ExternalSecret
  665. type: string
  666. reason:
  667. description: Reason is why the ExternalSecret failed to apply
  668. to the namespace
  669. type: string
  670. required:
  671. - namespace
  672. type: object
  673. type: array
  674. provisionedNamespaces:
  675. description: ProvisionedNamespaces are the namespaces where the ClusterExternalSecret
  676. has secrets
  677. items:
  678. type: string
  679. type: array
  680. type: object
  681. type: object
  682. served: true
  683. storage: true
  684. subresources:
  685. status: {}