external-secrets.io_externalsecrets.yaml 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.14.0
  6. name: externalsecrets.external-secrets.io
  7. spec:
  8. group: external-secrets.io
  9. names:
  10. categories:
  11. - externalsecrets
  12. kind: ExternalSecret
  13. listKind: ExternalSecretList
  14. plural: externalsecrets
  15. shortNames:
  16. - es
  17. singular: externalsecret
  18. scope: Namespaced
  19. versions:
  20. - additionalPrinterColumns:
  21. - jsonPath: .spec.secretStoreRef.name
  22. name: Store
  23. type: string
  24. - jsonPath: .spec.refreshInterval
  25. name: Refresh Interval
  26. type: string
  27. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  28. name: Status
  29. type: string
  30. deprecated: true
  31. name: v1alpha1
  32. schema:
  33. openAPIV3Schema:
  34. description: ExternalSecret is the Schema for the external-secrets API.
  35. properties:
  36. apiVersion:
  37. description: |-
  38. APIVersion defines the versioned schema of this representation of an object.
  39. Servers should convert recognized schemas to the latest internal value, and
  40. may reject unrecognized values.
  41. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  42. type: string
  43. kind:
  44. description: |-
  45. Kind is a string value representing the REST resource this object represents.
  46. Servers may infer this from the endpoint the client submits requests to.
  47. Cannot be updated.
  48. In CamelCase.
  49. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  50. type: string
  51. metadata:
  52. type: object
  53. spec:
  54. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  55. properties:
  56. data:
  57. description: Data defines the connection between the Kubernetes Secret
  58. keys and the Provider data
  59. items:
  60. description: ExternalSecretData defines the connection between the
  61. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  62. properties:
  63. remoteRef:
  64. description: ExternalSecretDataRemoteRef defines Provider data
  65. location.
  66. properties:
  67. conversionStrategy:
  68. default: Default
  69. description: Used to define a conversion Strategy
  70. enum:
  71. - Default
  72. - Unicode
  73. type: string
  74. key:
  75. description: Key is the key used in the Provider, mandatory
  76. type: string
  77. property:
  78. description: Used to select a specific property of the Provider
  79. value (if a map), if supported
  80. type: string
  81. version:
  82. description: Used to select a specific version of the Provider
  83. value, if supported
  84. type: string
  85. required:
  86. - key
  87. type: object
  88. secretKey:
  89. type: string
  90. required:
  91. - remoteRef
  92. - secretKey
  93. type: object
  94. type: array
  95. dataFrom:
  96. description: |-
  97. DataFrom is used to fetch all properties from a specific Provider data
  98. If multiple entries are specified, the Secret keys are merged in the specified order
  99. items:
  100. description: ExternalSecretDataRemoteRef defines Provider data location.
  101. properties:
  102. conversionStrategy:
  103. default: Default
  104. description: Used to define a conversion Strategy
  105. enum:
  106. - Default
  107. - Unicode
  108. type: string
  109. key:
  110. description: Key is the key used in the Provider, mandatory
  111. type: string
  112. property:
  113. description: Used to select a specific property of the Provider
  114. value (if a map), if supported
  115. type: string
  116. version:
  117. description: Used to select a specific version of the Provider
  118. value, if supported
  119. type: string
  120. required:
  121. - key
  122. type: object
  123. type: array
  124. refreshInterval:
  125. default: 1h
  126. description: |-
  127. RefreshInterval is the amount of time before the values are read again from the SecretStore provider
  128. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  129. May be set to zero to fetch and create it once. Defaults to 1h.
  130. type: string
  131. secretStoreRef:
  132. description: SecretStoreRef defines which SecretStore to fetch the
  133. ExternalSecret data.
  134. properties:
  135. kind:
  136. description: |-
  137. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  138. Defaults to `SecretStore`
  139. type: string
  140. name:
  141. description: Name of the SecretStore resource
  142. type: string
  143. required:
  144. - name
  145. type: object
  146. target:
  147. description: |-
  148. ExternalSecretTarget defines the Kubernetes Secret to be created
  149. There can be only one target per ExternalSecret.
  150. properties:
  151. creationPolicy:
  152. default: Owner
  153. description: |-
  154. CreationPolicy defines rules on how to create the resulting Secret
  155. Defaults to 'Owner'
  156. enum:
  157. - Owner
  158. - Merge
  159. - None
  160. type: string
  161. immutable:
  162. description: Immutable defines if the final secret will be immutable
  163. type: boolean
  164. name:
  165. description: |-
  166. Name defines the name of the Secret resource to be managed
  167. This field is immutable
  168. Defaults to the .metadata.name of the ExternalSecret resource
  169. type: string
  170. template:
  171. description: Template defines a blueprint for the created Secret
  172. resource.
  173. properties:
  174. data:
  175. additionalProperties:
  176. type: string
  177. type: object
  178. engineVersion:
  179. default: v1
  180. description: |-
  181. EngineVersion specifies the template engine version
  182. that should be used to compile/execute the
  183. template specified in .data and .templateFrom[].
  184. enum:
  185. - v1
  186. - v2
  187. type: string
  188. metadata:
  189. description: ExternalSecretTemplateMetadata defines metadata
  190. fields for the Secret blueprint.
  191. properties:
  192. annotations:
  193. additionalProperties:
  194. type: string
  195. type: object
  196. labels:
  197. additionalProperties:
  198. type: string
  199. type: object
  200. type: object
  201. templateFrom:
  202. items:
  203. maxProperties: 1
  204. minProperties: 1
  205. properties:
  206. configMap:
  207. properties:
  208. items:
  209. items:
  210. properties:
  211. key:
  212. type: string
  213. required:
  214. - key
  215. type: object
  216. type: array
  217. name:
  218. type: string
  219. required:
  220. - items
  221. - name
  222. type: object
  223. secret:
  224. properties:
  225. items:
  226. items:
  227. properties:
  228. key:
  229. type: string
  230. required:
  231. - key
  232. type: object
  233. type: array
  234. name:
  235. type: string
  236. required:
  237. - items
  238. - name
  239. type: object
  240. type: object
  241. type: array
  242. type:
  243. type: string
  244. type: object
  245. type: object
  246. required:
  247. - secretStoreRef
  248. - target
  249. type: object
  250. status:
  251. properties:
  252. binding:
  253. description: Binding represents a servicebinding.io Provisioned Service
  254. reference to the secret
  255. properties:
  256. name:
  257. description: |-
  258. Name of the referent.
  259. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  260. TODO: Add other useful fields. apiVersion, kind, uid?
  261. type: string
  262. type: object
  263. x-kubernetes-map-type: atomic
  264. conditions:
  265. items:
  266. properties:
  267. lastTransitionTime:
  268. format: date-time
  269. type: string
  270. message:
  271. type: string
  272. reason:
  273. type: string
  274. status:
  275. type: string
  276. type:
  277. type: string
  278. required:
  279. - status
  280. - type
  281. type: object
  282. type: array
  283. refreshTime:
  284. description: |-
  285. refreshTime is the time and date the external secret was fetched and
  286. the target secret updated
  287. format: date-time
  288. nullable: true
  289. type: string
  290. syncedResourceVersion:
  291. description: SyncedResourceVersion keeps track of the last synced
  292. version
  293. type: string
  294. type: object
  295. type: object
  296. served: true
  297. storage: false
  298. subresources:
  299. status: {}
  300. - additionalPrinterColumns:
  301. - jsonPath: .spec.secretStoreRef.name
  302. name: Store
  303. type: string
  304. - jsonPath: .spec.refreshInterval
  305. name: Refresh Interval
  306. type: string
  307. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  308. name: Status
  309. type: string
  310. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  311. name: Ready
  312. type: string
  313. name: v1beta1
  314. schema:
  315. openAPIV3Schema:
  316. description: ExternalSecret is the Schema for the external-secrets API.
  317. properties:
  318. apiVersion:
  319. description: |-
  320. APIVersion defines the versioned schema of this representation of an object.
  321. Servers should convert recognized schemas to the latest internal value, and
  322. may reject unrecognized values.
  323. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  324. type: string
  325. kind:
  326. description: |-
  327. Kind is a string value representing the REST resource this object represents.
  328. Servers may infer this from the endpoint the client submits requests to.
  329. Cannot be updated.
  330. In CamelCase.
  331. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  332. type: string
  333. metadata:
  334. type: object
  335. spec:
  336. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  337. properties:
  338. data:
  339. description: Data defines the connection between the Kubernetes Secret
  340. keys and the Provider data
  341. items:
  342. description: ExternalSecretData defines the connection between the
  343. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  344. properties:
  345. remoteRef:
  346. description: |-
  347. RemoteRef points to the remote secret and defines
  348. which secret (version/property/..) to fetch.
  349. properties:
  350. conversionStrategy:
  351. default: Default
  352. description: Used to define a conversion Strategy
  353. enum:
  354. - Default
  355. - Unicode
  356. type: string
  357. decodingStrategy:
  358. default: None
  359. description: Used to define a decoding Strategy
  360. enum:
  361. - Auto
  362. - Base64
  363. - Base64URL
  364. - None
  365. type: string
  366. key:
  367. description: Key is the key used in the Provider, mandatory
  368. type: string
  369. metadataPolicy:
  370. default: None
  371. description: Policy for fetching tags/labels from provider
  372. secrets, possible options are Fetch, None. Defaults to
  373. None
  374. enum:
  375. - None
  376. - Fetch
  377. type: string
  378. property:
  379. description: Used to select a specific property of the Provider
  380. value (if a map), if supported
  381. type: string
  382. version:
  383. description: Used to select a specific version of the Provider
  384. value, if supported
  385. type: string
  386. required:
  387. - key
  388. type: object
  389. secretKey:
  390. description: |-
  391. SecretKey defines the key in which the controller stores
  392. the value. This is the key in the Kind=Secret
  393. type: string
  394. sourceRef:
  395. description: |-
  396. SourceRef allows you to override the source
  397. from which the value will pulled from.
  398. maxProperties: 1
  399. properties:
  400. generatorRef:
  401. description: |-
  402. GeneratorRef points to a generator custom resource.
  403. Deprecated: The generatorRef is not implemented in .data[].
  404. this will be removed with v1.
  405. properties:
  406. apiVersion:
  407. default: generators.external-secrets.io/v1alpha1
  408. description: Specify the apiVersion of the generator
  409. resource
  410. type: string
  411. kind:
  412. description: Specify the Kind of the resource, e.g.
  413. Password, ACRAccessToken etc.
  414. type: string
  415. name:
  416. description: Specify the name of the generator resource
  417. type: string
  418. required:
  419. - kind
  420. - name
  421. type: object
  422. storeRef:
  423. description: SecretStoreRef defines which SecretStore to
  424. fetch the ExternalSecret data.
  425. properties:
  426. kind:
  427. description: |-
  428. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  429. Defaults to `SecretStore`
  430. type: string
  431. name:
  432. description: Name of the SecretStore resource
  433. type: string
  434. required:
  435. - name
  436. type: object
  437. type: object
  438. required:
  439. - remoteRef
  440. - secretKey
  441. type: object
  442. type: array
  443. dataFrom:
  444. description: |-
  445. DataFrom is used to fetch all properties from a specific Provider data
  446. If multiple entries are specified, the Secret keys are merged in the specified order
  447. items:
  448. properties:
  449. extract:
  450. description: |-
  451. Used to extract multiple key/value pairs from one secret
  452. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  453. properties:
  454. conversionStrategy:
  455. default: Default
  456. description: Used to define a conversion Strategy
  457. enum:
  458. - Default
  459. - Unicode
  460. type: string
  461. decodingStrategy:
  462. default: None
  463. description: Used to define a decoding Strategy
  464. enum:
  465. - Auto
  466. - Base64
  467. - Base64URL
  468. - None
  469. type: string
  470. key:
  471. description: Key is the key used in the Provider, mandatory
  472. type: string
  473. metadataPolicy:
  474. default: None
  475. description: Policy for fetching tags/labels from provider
  476. secrets, possible options are Fetch, None. Defaults to
  477. None
  478. enum:
  479. - None
  480. - Fetch
  481. type: string
  482. property:
  483. description: Used to select a specific property of the Provider
  484. value (if a map), if supported
  485. type: string
  486. version:
  487. description: Used to select a specific version of the Provider
  488. value, if supported
  489. type: string
  490. required:
  491. - key
  492. type: object
  493. find:
  494. description: |-
  495. Used to find secrets based on tags or regular expressions
  496. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  497. properties:
  498. conversionStrategy:
  499. default: Default
  500. description: Used to define a conversion Strategy
  501. enum:
  502. - Default
  503. - Unicode
  504. type: string
  505. decodingStrategy:
  506. default: None
  507. description: Used to define a decoding Strategy
  508. enum:
  509. - Auto
  510. - Base64
  511. - Base64URL
  512. - None
  513. type: string
  514. name:
  515. description: Finds secrets based on the name.
  516. properties:
  517. regexp:
  518. description: Finds secrets base
  519. type: string
  520. type: object
  521. path:
  522. description: A root path to start the find operations.
  523. type: string
  524. tags:
  525. additionalProperties:
  526. type: string
  527. description: Find secrets based on tags.
  528. type: object
  529. type: object
  530. rewrite:
  531. description: |-
  532. Used to rewrite secret Keys after getting them from the secret Provider
  533. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  534. items:
  535. properties:
  536. regexp:
  537. description: |-
  538. Used to rewrite with regular expressions.
  539. The resulting key will be the output of a regexp.ReplaceAll operation.
  540. properties:
  541. source:
  542. description: Used to define the regular expression
  543. of a re.Compiler.
  544. type: string
  545. target:
  546. description: Used to define the target pattern of
  547. a ReplaceAll operation.
  548. type: string
  549. required:
  550. - source
  551. - target
  552. type: object
  553. transform:
  554. description: |-
  555. Used to apply string transformation on the secrets.
  556. The resulting key will be the output of the template applied by the operation.
  557. properties:
  558. template:
  559. description: |-
  560. Used to define the template to apply on the secret name.
  561. `.value ` will specify the secret name in the template.
  562. type: string
  563. required:
  564. - template
  565. type: object
  566. type: object
  567. type: array
  568. sourceRef:
  569. description: |-
  570. SourceRef points to a store or generator
  571. which contains secret values ready to use.
  572. Use this in combination with Extract or Find pull values out of
  573. a specific SecretStore.
  574. When sourceRef points to a generator Extract or Find is not supported.
  575. The generator returns a static map of values
  576. maxProperties: 1
  577. properties:
  578. generatorRef:
  579. description: GeneratorRef points to a generator custom resource.
  580. properties:
  581. apiVersion:
  582. default: generators.external-secrets.io/v1alpha1
  583. description: Specify the apiVersion of the generator
  584. resource
  585. type: string
  586. kind:
  587. description: Specify the Kind of the resource, e.g.
  588. Password, ACRAccessToken etc.
  589. type: string
  590. name:
  591. description: Specify the name of the generator resource
  592. type: string
  593. required:
  594. - kind
  595. - name
  596. type: object
  597. storeRef:
  598. description: SecretStoreRef defines which SecretStore to
  599. fetch the ExternalSecret data.
  600. properties:
  601. kind:
  602. description: |-
  603. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  604. Defaults to `SecretStore`
  605. type: string
  606. name:
  607. description: Name of the SecretStore resource
  608. type: string
  609. required:
  610. - name
  611. type: object
  612. type: object
  613. type: object
  614. type: array
  615. refreshInterval:
  616. default: 1h
  617. description: |-
  618. RefreshInterval is the amount of time before the values are read again from the SecretStore provider
  619. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  620. May be set to zero to fetch and create it once. Defaults to 1h.
  621. type: string
  622. secretStoreRef:
  623. description: SecretStoreRef defines which SecretStore to fetch the
  624. ExternalSecret data.
  625. properties:
  626. kind:
  627. description: |-
  628. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  629. Defaults to `SecretStore`
  630. type: string
  631. name:
  632. description: Name of the SecretStore resource
  633. type: string
  634. required:
  635. - name
  636. type: object
  637. target:
  638. default:
  639. creationPolicy: Owner
  640. deletionPolicy: Retain
  641. description: |-
  642. ExternalSecretTarget defines the Kubernetes Secret to be created
  643. There can be only one target per ExternalSecret.
  644. properties:
  645. creationPolicy:
  646. default: Owner
  647. description: |-
  648. CreationPolicy defines rules on how to create the resulting Secret
  649. Defaults to 'Owner'
  650. enum:
  651. - Owner
  652. - Orphan
  653. - Merge
  654. - None
  655. type: string
  656. deletionPolicy:
  657. default: Retain
  658. description: |-
  659. DeletionPolicy defines rules on how to delete the resulting Secret
  660. Defaults to 'Retain'
  661. enum:
  662. - Delete
  663. - Merge
  664. - Retain
  665. type: string
  666. immutable:
  667. description: Immutable defines if the final secret will be immutable
  668. type: boolean
  669. name:
  670. description: |-
  671. Name defines the name of the Secret resource to be managed
  672. This field is immutable
  673. Defaults to the .metadata.name of the ExternalSecret resource
  674. type: string
  675. template:
  676. description: Template defines a blueprint for the created Secret
  677. resource.
  678. properties:
  679. data:
  680. additionalProperties:
  681. type: string
  682. type: object
  683. engineVersion:
  684. default: v2
  685. description: |-
  686. EngineVersion specifies the template engine version
  687. that should be used to compile/execute the
  688. template specified in .data and .templateFrom[].
  689. enum:
  690. - v1
  691. - v2
  692. type: string
  693. mergePolicy:
  694. default: Replace
  695. enum:
  696. - Replace
  697. - Merge
  698. type: string
  699. metadata:
  700. description: ExternalSecretTemplateMetadata defines metadata
  701. fields for the Secret blueprint.
  702. properties:
  703. annotations:
  704. additionalProperties:
  705. type: string
  706. type: object
  707. labels:
  708. additionalProperties:
  709. type: string
  710. type: object
  711. type: object
  712. templateFrom:
  713. items:
  714. properties:
  715. configMap:
  716. properties:
  717. items:
  718. items:
  719. properties:
  720. key:
  721. type: string
  722. templateAs:
  723. default: Values
  724. enum:
  725. - Values
  726. - KeysAndValues
  727. type: string
  728. required:
  729. - key
  730. type: object
  731. type: array
  732. name:
  733. type: string
  734. required:
  735. - items
  736. - name
  737. type: object
  738. literal:
  739. type: string
  740. secret:
  741. properties:
  742. items:
  743. items:
  744. properties:
  745. key:
  746. type: string
  747. templateAs:
  748. default: Values
  749. enum:
  750. - Values
  751. - KeysAndValues
  752. type: string
  753. required:
  754. - key
  755. type: object
  756. type: array
  757. name:
  758. type: string
  759. required:
  760. - items
  761. - name
  762. type: object
  763. target:
  764. default: Data
  765. enum:
  766. - Data
  767. - Annotations
  768. - Labels
  769. type: string
  770. type: object
  771. type: array
  772. type:
  773. type: string
  774. type: object
  775. type: object
  776. type: object
  777. status:
  778. properties:
  779. binding:
  780. description: Binding represents a servicebinding.io Provisioned Service
  781. reference to the secret
  782. properties:
  783. name:
  784. description: |-
  785. Name of the referent.
  786. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  787. TODO: Add other useful fields. apiVersion, kind, uid?
  788. type: string
  789. type: object
  790. x-kubernetes-map-type: atomic
  791. conditions:
  792. items:
  793. properties:
  794. lastTransitionTime:
  795. format: date-time
  796. type: string
  797. message:
  798. type: string
  799. reason:
  800. type: string
  801. status:
  802. type: string
  803. type:
  804. type: string
  805. required:
  806. - status
  807. - type
  808. type: object
  809. type: array
  810. refreshTime:
  811. description: |-
  812. refreshTime is the time and date the external secret was fetched and
  813. the target secret updated
  814. format: date-time
  815. nullable: true
  816. type: string
  817. syncedResourceVersion:
  818. description: SyncedResourceVersion keeps track of the last synced
  819. version
  820. type: string
  821. type: object
  822. type: object
  823. served: true
  824. storage: true
  825. subresources:
  826. status: {}