external-secrets.io_externalsecrets.yaml 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.15.0
  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. TODO: Add other useful fields. apiVersion, kind, uid?
  266. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  267. TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
  268. type: string
  269. type: object
  270. x-kubernetes-map-type: atomic
  271. conditions:
  272. items:
  273. properties:
  274. lastTransitionTime:
  275. format: date-time
  276. type: string
  277. message:
  278. type: string
  279. reason:
  280. type: string
  281. status:
  282. type: string
  283. type:
  284. type: string
  285. required:
  286. - status
  287. - type
  288. type: object
  289. type: array
  290. refreshTime:
  291. description: |-
  292. refreshTime is the time and date the external secret was fetched and
  293. the target secret updated
  294. format: date-time
  295. nullable: true
  296. type: string
  297. syncedResourceVersion:
  298. description: SyncedResourceVersion keeps track of the last synced
  299. version
  300. type: string
  301. type: object
  302. type: object
  303. served: true
  304. storage: false
  305. subresources:
  306. status: {}
  307. - additionalPrinterColumns:
  308. - jsonPath: .spec.secretStoreRef.name
  309. name: Store
  310. type: string
  311. - jsonPath: .spec.refreshInterval
  312. name: Refresh Interval
  313. type: string
  314. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  315. name: Status
  316. type: string
  317. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  318. name: Ready
  319. type: string
  320. name: v1beta1
  321. schema:
  322. openAPIV3Schema:
  323. description: ExternalSecret is the Schema for the external-secrets API.
  324. properties:
  325. apiVersion:
  326. description: |-
  327. APIVersion defines the versioned schema of this representation of an object.
  328. Servers should convert recognized schemas to the latest internal value, and
  329. may reject unrecognized values.
  330. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  331. type: string
  332. kind:
  333. description: |-
  334. Kind is a string value representing the REST resource this object represents.
  335. Servers may infer this from the endpoint the client submits requests to.
  336. Cannot be updated.
  337. In CamelCase.
  338. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  339. type: string
  340. metadata:
  341. type: object
  342. spec:
  343. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  344. properties:
  345. data:
  346. description: Data defines the connection between the Kubernetes Secret
  347. keys and the Provider data
  348. items:
  349. description: ExternalSecretData defines the connection between the
  350. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  351. properties:
  352. remoteRef:
  353. description: |-
  354. RemoteRef points to the remote secret and defines
  355. which secret (version/property/..) to fetch.
  356. properties:
  357. conversionStrategy:
  358. default: Default
  359. description: Used to define a conversion Strategy
  360. enum:
  361. - Default
  362. - Unicode
  363. type: string
  364. decodingStrategy:
  365. default: None
  366. description: Used to define a decoding Strategy
  367. enum:
  368. - Auto
  369. - Base64
  370. - Base64URL
  371. - None
  372. type: string
  373. key:
  374. description: Key is the key used in the Provider, mandatory
  375. type: string
  376. metadataPolicy:
  377. default: None
  378. description: Policy for fetching tags/labels from provider
  379. secrets, possible options are Fetch, None. Defaults to
  380. None
  381. enum:
  382. - None
  383. - Fetch
  384. type: string
  385. property:
  386. description: Used to select a specific property of the Provider
  387. value (if a map), if supported
  388. type: string
  389. version:
  390. description: Used to select a specific version of the Provider
  391. value, if supported
  392. type: string
  393. required:
  394. - key
  395. type: object
  396. secretKey:
  397. description: |-
  398. SecretKey defines the key in which the controller stores
  399. the value. This is the key in the Kind=Secret
  400. type: string
  401. sourceRef:
  402. description: |-
  403. SourceRef allows you to override the source
  404. from which the value will pulled from.
  405. maxProperties: 1
  406. properties:
  407. generatorRef:
  408. description: |-
  409. GeneratorRef points to a generator custom resource.
  410. Deprecated: The generatorRef is not implemented in .data[].
  411. this will be removed with v1.
  412. properties:
  413. apiVersion:
  414. default: generators.external-secrets.io/v1alpha1
  415. description: Specify the apiVersion of the generator
  416. resource
  417. type: string
  418. kind:
  419. description: Specify the Kind of the resource, e.g.
  420. Password, ACRAccessToken etc.
  421. type: string
  422. name:
  423. description: Specify the name of the generator resource
  424. type: string
  425. required:
  426. - kind
  427. - name
  428. type: object
  429. storeRef:
  430. description: SecretStoreRef defines which SecretStore to
  431. fetch the ExternalSecret data.
  432. properties:
  433. kind:
  434. description: |-
  435. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  436. Defaults to `SecretStore`
  437. type: string
  438. name:
  439. description: Name of the SecretStore resource
  440. type: string
  441. required:
  442. - name
  443. type: object
  444. type: object
  445. required:
  446. - remoteRef
  447. - secretKey
  448. type: object
  449. type: array
  450. dataFrom:
  451. description: |-
  452. DataFrom is used to fetch all properties from a specific Provider data
  453. If multiple entries are specified, the Secret keys are merged in the specified order
  454. items:
  455. properties:
  456. extract:
  457. description: |-
  458. Used to extract multiple key/value pairs from one secret
  459. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  460. properties:
  461. conversionStrategy:
  462. default: Default
  463. description: Used to define a conversion Strategy
  464. enum:
  465. - Default
  466. - Unicode
  467. type: string
  468. decodingStrategy:
  469. default: None
  470. description: Used to define a decoding Strategy
  471. enum:
  472. - Auto
  473. - Base64
  474. - Base64URL
  475. - None
  476. type: string
  477. key:
  478. description: Key is the key used in the Provider, mandatory
  479. type: string
  480. metadataPolicy:
  481. default: None
  482. description: Policy for fetching tags/labels from provider
  483. secrets, possible options are Fetch, None. Defaults to
  484. None
  485. enum:
  486. - None
  487. - Fetch
  488. type: string
  489. property:
  490. description: Used to select a specific property of the Provider
  491. value (if a map), if supported
  492. type: string
  493. version:
  494. description: Used to select a specific version of the Provider
  495. value, if supported
  496. type: string
  497. required:
  498. - key
  499. type: object
  500. find:
  501. description: |-
  502. Used to find secrets based on tags or regular expressions
  503. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  504. properties:
  505. conversionStrategy:
  506. default: Default
  507. description: Used to define a conversion Strategy
  508. enum:
  509. - Default
  510. - Unicode
  511. type: string
  512. decodingStrategy:
  513. default: None
  514. description: Used to define a decoding Strategy
  515. enum:
  516. - Auto
  517. - Base64
  518. - Base64URL
  519. - None
  520. type: string
  521. name:
  522. description: Finds secrets based on the name.
  523. properties:
  524. regexp:
  525. description: Finds secrets base
  526. type: string
  527. type: object
  528. path:
  529. description: A root path to start the find operations.
  530. type: string
  531. tags:
  532. additionalProperties:
  533. type: string
  534. description: Find secrets based on tags.
  535. type: object
  536. type: object
  537. rewrite:
  538. description: |-
  539. Used to rewrite secret Keys after getting them from the secret Provider
  540. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  541. items:
  542. properties:
  543. regexp:
  544. description: |-
  545. Used to rewrite with regular expressions.
  546. The resulting key will be the output of a regexp.ReplaceAll operation.
  547. properties:
  548. source:
  549. description: Used to define the regular expression
  550. of a re.Compiler.
  551. type: string
  552. target:
  553. description: Used to define the target pattern of
  554. a ReplaceAll operation.
  555. type: string
  556. required:
  557. - source
  558. - target
  559. type: object
  560. transform:
  561. description: |-
  562. Used to apply string transformation on the secrets.
  563. The resulting key will be the output of the template applied by the operation.
  564. properties:
  565. template:
  566. description: |-
  567. Used to define the template to apply on the secret name.
  568. `.value ` will specify the secret name in the template.
  569. type: string
  570. required:
  571. - template
  572. type: object
  573. type: object
  574. type: array
  575. sourceRef:
  576. description: |-
  577. SourceRef points to a store or generator
  578. which contains secret values ready to use.
  579. Use this in combination with Extract or Find pull values out of
  580. a specific SecretStore.
  581. When sourceRef points to a generator Extract or Find is not supported.
  582. The generator returns a static map of values
  583. maxProperties: 1
  584. properties:
  585. generatorRef:
  586. description: GeneratorRef points to a generator custom resource.
  587. properties:
  588. apiVersion:
  589. default: generators.external-secrets.io/v1alpha1
  590. description: Specify the apiVersion of the generator
  591. resource
  592. type: string
  593. kind:
  594. description: Specify the Kind of the resource, e.g.
  595. Password, ACRAccessToken etc.
  596. type: string
  597. name:
  598. description: Specify the name of the generator resource
  599. type: string
  600. required:
  601. - kind
  602. - name
  603. type: object
  604. storeRef:
  605. description: SecretStoreRef defines which SecretStore to
  606. fetch the ExternalSecret data.
  607. properties:
  608. kind:
  609. description: |-
  610. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  611. Defaults to `SecretStore`
  612. type: string
  613. name:
  614. description: Name of the SecretStore resource
  615. type: string
  616. required:
  617. - name
  618. type: object
  619. type: object
  620. type: object
  621. type: array
  622. refreshInterval:
  623. default: 1h
  624. description: |-
  625. RefreshInterval is the amount of time before the values are read again from the SecretStore provider
  626. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  627. May be set to zero to fetch and create it once. Defaults to 1h.
  628. type: string
  629. secretStoreRef:
  630. description: SecretStoreRef defines which SecretStore to fetch the
  631. ExternalSecret data.
  632. properties:
  633. kind:
  634. description: |-
  635. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  636. Defaults to `SecretStore`
  637. type: string
  638. name:
  639. description: Name of the SecretStore resource
  640. type: string
  641. required:
  642. - name
  643. type: object
  644. target:
  645. default:
  646. creationPolicy: Owner
  647. deletionPolicy: Retain
  648. description: |-
  649. ExternalSecretTarget defines the Kubernetes Secret to be created
  650. There can be only one target per ExternalSecret.
  651. properties:
  652. creationPolicy:
  653. default: Owner
  654. description: |-
  655. CreationPolicy defines rules on how to create the resulting Secret
  656. Defaults to 'Owner'
  657. enum:
  658. - Owner
  659. - Orphan
  660. - Merge
  661. - None
  662. type: string
  663. deletionPolicy:
  664. default: Retain
  665. description: |-
  666. DeletionPolicy defines rules on how to delete the resulting Secret
  667. Defaults to 'Retain'
  668. enum:
  669. - Delete
  670. - Merge
  671. - Retain
  672. type: string
  673. immutable:
  674. description: Immutable defines if the final secret will be immutable
  675. type: boolean
  676. name:
  677. description: |-
  678. Name defines the name of the Secret resource to be managed
  679. This field is immutable
  680. Defaults to the .metadata.name of the ExternalSecret resource
  681. type: string
  682. template:
  683. description: Template defines a blueprint for the created Secret
  684. resource.
  685. properties:
  686. data:
  687. additionalProperties:
  688. type: string
  689. type: object
  690. engineVersion:
  691. default: v2
  692. description: |-
  693. EngineVersion specifies the template engine version
  694. that should be used to compile/execute the
  695. template specified in .data and .templateFrom[].
  696. enum:
  697. - v1
  698. - v2
  699. type: string
  700. mergePolicy:
  701. default: Replace
  702. enum:
  703. - Replace
  704. - Merge
  705. type: string
  706. metadata:
  707. description: ExternalSecretTemplateMetadata defines metadata
  708. fields for the Secret blueprint.
  709. properties:
  710. annotations:
  711. additionalProperties:
  712. type: string
  713. type: object
  714. labels:
  715. additionalProperties:
  716. type: string
  717. type: object
  718. type: object
  719. templateFrom:
  720. items:
  721. properties:
  722. configMap:
  723. properties:
  724. items:
  725. items:
  726. properties:
  727. key:
  728. type: string
  729. templateAs:
  730. default: Values
  731. enum:
  732. - Values
  733. - KeysAndValues
  734. type: string
  735. required:
  736. - key
  737. type: object
  738. type: array
  739. name:
  740. type: string
  741. required:
  742. - items
  743. - name
  744. type: object
  745. literal:
  746. type: string
  747. secret:
  748. properties:
  749. items:
  750. items:
  751. properties:
  752. key:
  753. type: string
  754. templateAs:
  755. default: Values
  756. enum:
  757. - Values
  758. - KeysAndValues
  759. type: string
  760. required:
  761. - key
  762. type: object
  763. type: array
  764. name:
  765. type: string
  766. required:
  767. - items
  768. - name
  769. type: object
  770. target:
  771. default: Data
  772. enum:
  773. - Data
  774. - Annotations
  775. - Labels
  776. type: string
  777. type: object
  778. type: array
  779. type:
  780. type: string
  781. type: object
  782. type: object
  783. type: object
  784. status:
  785. properties:
  786. binding:
  787. description: Binding represents a servicebinding.io Provisioned Service
  788. reference to the secret
  789. properties:
  790. name:
  791. default: ""
  792. description: |-
  793. Name of the referent.
  794. This field is effectively required, but due to backwards compatibility is
  795. allowed to be empty. Instances of this type with an empty value here are
  796. almost certainly wrong.
  797. TODO: Add other useful fields. apiVersion, kind, uid?
  798. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  799. TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
  800. type: string
  801. type: object
  802. x-kubernetes-map-type: atomic
  803. conditions:
  804. items:
  805. properties:
  806. lastTransitionTime:
  807. format: date-time
  808. type: string
  809. message:
  810. type: string
  811. reason:
  812. type: string
  813. status:
  814. type: string
  815. type:
  816. type: string
  817. required:
  818. - status
  819. - type
  820. type: object
  821. type: array
  822. refreshTime:
  823. description: |-
  824. refreshTime is the time and date the external secret was fetched and
  825. the target secret updated
  826. format: date-time
  827. nullable: true
  828. type: string
  829. syncedResourceVersion:
  830. description: SyncedResourceVersion keeps track of the last synced
  831. version
  832. type: string
  833. type: object
  834. type: object
  835. served: true
  836. storage: true
  837. subresources:
  838. status: {}