external-secrets.io_externalsecrets.yaml 36 KB

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