external-secrets.io_externalsecrets.yaml 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.15.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. default: ""
  258. description: |-
  259. Name of the referent.
  260. This field is effectively required, but due to backwards compatibility is
  261. allowed to be empty. Instances of this type with an empty value here are
  262. almost certainly wrong.
  263. TODO: Add other useful fields. apiVersion, kind, uid?
  264. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  265. TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
  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. TODO: Add other useful fields. apiVersion, kind, uid?
  796. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  797. TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
  798. type: string
  799. type: object
  800. x-kubernetes-map-type: atomic
  801. conditions:
  802. items:
  803. properties:
  804. lastTransitionTime:
  805. format: date-time
  806. type: string
  807. message:
  808. type: string
  809. reason:
  810. type: string
  811. status:
  812. type: string
  813. type:
  814. type: string
  815. required:
  816. - status
  817. - type
  818. type: object
  819. type: array
  820. refreshTime:
  821. description: |-
  822. refreshTime is the time and date the external secret was fetched and
  823. the target secret updated
  824. format: date-time
  825. nullable: true
  826. type: string
  827. syncedResourceVersion:
  828. description: SyncedResourceVersion keeps track of the last synced
  829. version
  830. type: string
  831. type: object
  832. type: object
  833. served: true
  834. storage: true
  835. subresources:
  836. status: {}