external-secrets.io_externalsecrets.yaml 32 KB

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