external-secrets.io_externalsecrets.yaml 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.19.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. - external-secrets
  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.kind
  24. name: StoreType
  25. type: string
  26. - jsonPath: .spec.secretStoreRef.name
  27. name: Store
  28. type: string
  29. - jsonPath: .spec.refreshInterval
  30. name: Refresh Interval
  31. type: string
  32. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  33. name: Status
  34. type: string
  35. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  36. name: Ready
  37. type: string
  38. name: v1
  39. schema:
  40. openAPIV3Schema:
  41. description: |-
  42. ExternalSecret is the Schema for the external-secrets API.
  43. It defines how to fetch data from external APIs and make it available as Kubernetes Secrets.
  44. properties:
  45. apiVersion:
  46. description: |-
  47. APIVersion defines the versioned schema of this representation of an object.
  48. Servers should convert recognized schemas to the latest internal value, and
  49. may reject unrecognized values.
  50. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  51. type: string
  52. kind:
  53. description: |-
  54. Kind is a string value representing the REST resource this object represents.
  55. Servers may infer this from the endpoint the client submits requests to.
  56. Cannot be updated.
  57. In CamelCase.
  58. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  59. type: string
  60. metadata:
  61. type: object
  62. spec:
  63. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  64. properties:
  65. data:
  66. description: Data defines the connection between the Kubernetes Secret
  67. keys and the Provider data
  68. items:
  69. description: ExternalSecretData defines the connection between the
  70. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  71. properties:
  72. remoteRef:
  73. description: |-
  74. RemoteRef points to the remote secret and defines
  75. which secret (version/property/..) to fetch.
  76. properties:
  77. conversionStrategy:
  78. default: Default
  79. description: Used to define a conversion Strategy
  80. enum:
  81. - Default
  82. - Unicode
  83. type: string
  84. decodingStrategy:
  85. default: None
  86. description: Used to define a decoding Strategy
  87. enum:
  88. - Auto
  89. - Base64
  90. - Base64URL
  91. - None
  92. type: string
  93. key:
  94. description: Key is the key used in the Provider, mandatory
  95. type: string
  96. metadataPolicy:
  97. default: None
  98. description: Policy for fetching tags/labels from provider
  99. secrets, possible options are Fetch, None. Defaults to
  100. None
  101. enum:
  102. - None
  103. - Fetch
  104. type: string
  105. property:
  106. description: Used to select a specific property of the Provider
  107. value (if a map), if supported
  108. type: string
  109. version:
  110. description: Used to select a specific version of the Provider
  111. value, if supported
  112. type: string
  113. required:
  114. - key
  115. type: object
  116. secretKey:
  117. description: The key in the Kubernetes Secret to store the value.
  118. maxLength: 253
  119. minLength: 1
  120. pattern: ^[-._a-zA-Z0-9]+$
  121. type: string
  122. sourceRef:
  123. description: |-
  124. SourceRef allows you to override the source
  125. from which the value will be pulled.
  126. maxProperties: 1
  127. minProperties: 1
  128. properties:
  129. generatorRef:
  130. description: |-
  131. GeneratorRef points to a generator custom resource.
  132. Deprecated: The generatorRef is not implemented in .data[].
  133. this will be removed with v1.
  134. properties:
  135. apiVersion:
  136. default: generators.external-secrets.io/v1alpha1
  137. description: Specify the apiVersion of the generator
  138. resource
  139. type: string
  140. kind:
  141. description: Specify the Kind of the generator resource
  142. enum:
  143. - ACRAccessToken
  144. - ClusterGenerator
  145. - CloudsmithAccessToken
  146. - ECRAuthorizationToken
  147. - Fake
  148. - GCRAccessToken
  149. - GithubAccessToken
  150. - QuayAccessToken
  151. - Password
  152. - SSHKey
  153. - STSSessionToken
  154. - UUID
  155. - VaultDynamicSecret
  156. - Webhook
  157. - Grafana
  158. - MFA
  159. type: string
  160. name:
  161. description: Specify the name of the generator resource
  162. maxLength: 253
  163. minLength: 1
  164. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  165. type: string
  166. required:
  167. - kind
  168. - name
  169. type: object
  170. storeRef:
  171. description: SecretStoreRef defines which SecretStore to
  172. fetch the ExternalSecret data.
  173. properties:
  174. kind:
  175. description: |-
  176. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  177. Defaults to `SecretStore`
  178. enum:
  179. - SecretStore
  180. - ClusterSecretStore
  181. type: string
  182. name:
  183. description: Name of the SecretStore resource
  184. maxLength: 253
  185. minLength: 1
  186. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  187. type: string
  188. type: object
  189. type: object
  190. required:
  191. - remoteRef
  192. - secretKey
  193. type: object
  194. type: array
  195. dataFrom:
  196. description: |-
  197. DataFrom is used to fetch all properties from a specific Provider data
  198. If multiple entries are specified, the Secret keys are merged in the specified order
  199. items:
  200. description: |-
  201. ExternalSecretDataFromRemoteRef defines the connection between the Kubernetes Secret keys and the Provider data
  202. when using DataFrom to fetch multiple values from a Provider.
  203. properties:
  204. extract:
  205. description: |-
  206. Used to extract multiple key/value pairs from one secret
  207. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  208. properties:
  209. conversionStrategy:
  210. default: Default
  211. description: Used to define a conversion Strategy
  212. enum:
  213. - Default
  214. - Unicode
  215. type: string
  216. decodingStrategy:
  217. default: None
  218. description: Used to define a decoding Strategy
  219. enum:
  220. - Auto
  221. - Base64
  222. - Base64URL
  223. - None
  224. type: string
  225. key:
  226. description: Key is the key used in the Provider, mandatory
  227. type: string
  228. metadataPolicy:
  229. default: None
  230. description: Policy for fetching tags/labels from provider
  231. secrets, possible options are Fetch, None. Defaults to
  232. None
  233. enum:
  234. - None
  235. - Fetch
  236. type: string
  237. property:
  238. description: Used to select a specific property of the Provider
  239. value (if a map), if supported
  240. type: string
  241. version:
  242. description: Used to select a specific version of the Provider
  243. value, if supported
  244. type: string
  245. required:
  246. - key
  247. type: object
  248. find:
  249. description: |-
  250. Used to find secrets based on tags or regular expressions
  251. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  252. properties:
  253. conversionStrategy:
  254. default: Default
  255. description: Used to define a conversion Strategy
  256. enum:
  257. - Default
  258. - Unicode
  259. type: string
  260. decodingStrategy:
  261. default: None
  262. description: Used to define a decoding Strategy
  263. enum:
  264. - Auto
  265. - Base64
  266. - Base64URL
  267. - None
  268. type: string
  269. name:
  270. description: Finds secrets based on the name.
  271. properties:
  272. regexp:
  273. description: Finds secrets base
  274. type: string
  275. type: object
  276. path:
  277. description: A root path to start the find operations.
  278. type: string
  279. tags:
  280. additionalProperties:
  281. type: string
  282. description: Find secrets based on tags.
  283. type: object
  284. type: object
  285. rewrite:
  286. description: |-
  287. Used to rewrite secret Keys after getting them from the secret Provider
  288. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  289. items:
  290. description: ExternalSecretRewrite defines how to rewrite
  291. secret data values before they are written to the Secret.
  292. maxProperties: 1
  293. minProperties: 1
  294. properties:
  295. merge:
  296. description: |-
  297. Used to merge key/values in one single Secret
  298. The resulting key will contain all values from the specified secrets
  299. properties:
  300. conflictPolicy:
  301. default: Error
  302. description: Used to define the policy to use in conflict
  303. resolution.
  304. enum:
  305. - Ignore
  306. - Error
  307. type: string
  308. into:
  309. default: ""
  310. description: |-
  311. Used to define the target key of the merge operation.
  312. Required if strategy is JSON. Ignored otherwise.
  313. type: string
  314. priority:
  315. description: Used to define key priority in conflict
  316. resolution.
  317. items:
  318. type: string
  319. type: array
  320. priorityPolicy:
  321. default: Strict
  322. description: Used to define the policy when a key
  323. in the priority list does not exist in the input.
  324. enum:
  325. - IgnoreNotFound
  326. - Strict
  327. type: string
  328. strategy:
  329. default: Extract
  330. description: Used to define the strategy to use in
  331. the merge operation.
  332. enum:
  333. - Extract
  334. - JSON
  335. type: string
  336. type: object
  337. regexp:
  338. description: |-
  339. Used to rewrite with regular expressions.
  340. The resulting key will be the output of a regexp.ReplaceAll operation.
  341. properties:
  342. source:
  343. description: Used to define the regular expression
  344. of a re.Compiler.
  345. type: string
  346. target:
  347. description: Used to define the target pattern of
  348. a ReplaceAll operation.
  349. type: string
  350. required:
  351. - source
  352. - target
  353. type: object
  354. transform:
  355. description: |-
  356. Used to apply string transformation on the secrets.
  357. The resulting key will be the output of the template applied by the operation.
  358. properties:
  359. template:
  360. description: |-
  361. Used to define the template to apply on the secret name.
  362. `.value ` will specify the secret name in the template.
  363. type: string
  364. required:
  365. - template
  366. type: object
  367. type: object
  368. type: array
  369. sourceRef:
  370. description: |-
  371. SourceRef points to a store or generator
  372. which contains secret values ready to use.
  373. Use this in combination with Extract or Find pull values out of
  374. a specific SecretStore.
  375. When sourceRef points to a generator Extract or Find is not supported.
  376. The generator returns a static map of values
  377. maxProperties: 1
  378. minProperties: 1
  379. properties:
  380. generatorRef:
  381. description: GeneratorRef points to a generator custom resource.
  382. properties:
  383. apiVersion:
  384. default: generators.external-secrets.io/v1alpha1
  385. description: Specify the apiVersion of the generator
  386. resource
  387. type: string
  388. kind:
  389. description: Specify the Kind of the generator resource
  390. enum:
  391. - ACRAccessToken
  392. - ClusterGenerator
  393. - CloudsmithAccessToken
  394. - ECRAuthorizationToken
  395. - Fake
  396. - GCRAccessToken
  397. - GithubAccessToken
  398. - QuayAccessToken
  399. - Password
  400. - SSHKey
  401. - STSSessionToken
  402. - UUID
  403. - VaultDynamicSecret
  404. - Webhook
  405. - Grafana
  406. - MFA
  407. type: string
  408. name:
  409. description: Specify the name of the generator resource
  410. maxLength: 253
  411. minLength: 1
  412. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  413. type: string
  414. required:
  415. - kind
  416. - name
  417. type: object
  418. storeRef:
  419. description: SecretStoreRef defines which SecretStore to
  420. fetch the ExternalSecret data.
  421. properties:
  422. kind:
  423. description: |-
  424. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  425. Defaults to `SecretStore`
  426. enum:
  427. - SecretStore
  428. - ClusterSecretStore
  429. type: string
  430. name:
  431. description: Name of the SecretStore resource
  432. maxLength: 253
  433. minLength: 1
  434. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  435. type: string
  436. type: object
  437. type: object
  438. type: object
  439. type: array
  440. refreshInterval:
  441. default: 1h
  442. description: |-
  443. RefreshInterval is the amount of time before the values are read again from the SecretStore provider,
  444. specified as Golang Duration strings.
  445. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  446. Example values: "1h", "2h30m", "10s"
  447. May be set to zero to fetch and create it once. Defaults to 1h.
  448. type: string
  449. refreshPolicy:
  450. description: |-
  451. RefreshPolicy determines how the ExternalSecret should be refreshed:
  452. - CreatedOnce: Creates the Secret only if it does not exist and does not update it thereafter
  453. - Periodic: Synchronizes the Secret from the external source at regular intervals specified by refreshInterval.
  454. No periodic updates occur if refreshInterval is 0.
  455. - OnChange: Only synchronizes the Secret when the ExternalSecret's metadata or specification changes
  456. enum:
  457. - CreatedOnce
  458. - Periodic
  459. - OnChange
  460. type: string
  461. secretStoreRef:
  462. description: SecretStoreRef defines which SecretStore to fetch the
  463. ExternalSecret data.
  464. properties:
  465. kind:
  466. description: |-
  467. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  468. Defaults to `SecretStore`
  469. enum:
  470. - SecretStore
  471. - ClusterSecretStore
  472. type: string
  473. name:
  474. description: Name of the SecretStore resource
  475. maxLength: 253
  476. minLength: 1
  477. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  478. type: string
  479. type: object
  480. target:
  481. default:
  482. creationPolicy: Owner
  483. deletionPolicy: Retain
  484. description: |-
  485. ExternalSecretTarget defines the Kubernetes Secret to be created,
  486. there can be only one target per ExternalSecret.
  487. properties:
  488. creationPolicy:
  489. default: Owner
  490. description: |-
  491. CreationPolicy defines rules on how to create the resulting Secret.
  492. Defaults to "Owner"
  493. enum:
  494. - Owner
  495. - Orphan
  496. - Merge
  497. - None
  498. type: string
  499. deletionPolicy:
  500. default: Retain
  501. description: |-
  502. DeletionPolicy defines rules on how to delete the resulting Secret.
  503. Defaults to "Retain"
  504. enum:
  505. - Delete
  506. - Merge
  507. - Retain
  508. type: string
  509. immutable:
  510. description: Immutable defines if the final secret will be immutable
  511. type: boolean
  512. name:
  513. description: |-
  514. The name of the Secret resource to be managed.
  515. Defaults to the .metadata.name of the ExternalSecret resource
  516. maxLength: 253
  517. minLength: 1
  518. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  519. type: string
  520. template:
  521. description: Template defines a blueprint for the created Secret
  522. resource.
  523. properties:
  524. data:
  525. additionalProperties:
  526. type: string
  527. type: object
  528. engineVersion:
  529. default: v2
  530. description: |-
  531. EngineVersion specifies the template engine version
  532. that should be used to compile/execute the
  533. template specified in .data and .templateFrom[].
  534. enum:
  535. - v2
  536. type: string
  537. mergePolicy:
  538. default: Replace
  539. description: TemplateMergePolicy defines how the rendered
  540. template should be merged with the existing Secret data.
  541. enum:
  542. - Replace
  543. - Merge
  544. type: string
  545. metadata:
  546. description: ExternalSecretTemplateMetadata defines metadata
  547. fields for the Secret blueprint.
  548. properties:
  549. annotations:
  550. additionalProperties:
  551. type: string
  552. type: object
  553. finalizers:
  554. items:
  555. type: string
  556. type: array
  557. labels:
  558. additionalProperties:
  559. type: string
  560. type: object
  561. type: object
  562. templateFrom:
  563. items:
  564. description: |-
  565. TemplateFrom specifies a source for templates.
  566. Each item in the list can either reference a ConfigMap or a Secret resource.
  567. properties:
  568. configMap:
  569. description: TemplateRef specifies a reference to either
  570. a ConfigMap or a Secret resource.
  571. properties:
  572. items:
  573. description: A list of keys in the ConfigMap/Secret
  574. to use as templates for Secret data
  575. items:
  576. description: TemplateRefItem specifies a key in
  577. the ConfigMap/Secret to use as a template for
  578. Secret data.
  579. properties:
  580. key:
  581. description: A key in the ConfigMap/Secret
  582. maxLength: 253
  583. minLength: 1
  584. pattern: ^[-._a-zA-Z0-9]+$
  585. type: string
  586. templateAs:
  587. default: Values
  588. description: TemplateScope specifies how the
  589. template keys should be interpreted.
  590. enum:
  591. - Values
  592. - KeysAndValues
  593. type: string
  594. required:
  595. - key
  596. type: object
  597. type: array
  598. name:
  599. description: The name of the ConfigMap/Secret resource
  600. maxLength: 253
  601. minLength: 1
  602. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  603. type: string
  604. required:
  605. - items
  606. - name
  607. type: object
  608. literal:
  609. type: string
  610. secret:
  611. description: TemplateRef specifies a reference to either
  612. a ConfigMap or a Secret resource.
  613. properties:
  614. items:
  615. description: A list of keys in the ConfigMap/Secret
  616. to use as templates for Secret data
  617. items:
  618. description: TemplateRefItem specifies a key in
  619. the ConfigMap/Secret to use as a template for
  620. Secret data.
  621. properties:
  622. key:
  623. description: A key in the ConfigMap/Secret
  624. maxLength: 253
  625. minLength: 1
  626. pattern: ^[-._a-zA-Z0-9]+$
  627. type: string
  628. templateAs:
  629. default: Values
  630. description: TemplateScope specifies how the
  631. template keys should be interpreted.
  632. enum:
  633. - Values
  634. - KeysAndValues
  635. type: string
  636. required:
  637. - key
  638. type: object
  639. type: array
  640. name:
  641. description: The name of the ConfigMap/Secret resource
  642. maxLength: 253
  643. minLength: 1
  644. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  645. type: string
  646. required:
  647. - items
  648. - name
  649. type: object
  650. target:
  651. default: Data
  652. description: TemplateTarget specifies where the rendered
  653. templates should be applied.
  654. enum:
  655. - Data
  656. - Annotations
  657. - Labels
  658. type: string
  659. type: object
  660. type: array
  661. type:
  662. type: string
  663. type: object
  664. type: object
  665. type: object
  666. status:
  667. description: ExternalSecretStatus defines the observed state of ExternalSecret.
  668. properties:
  669. binding:
  670. description: Binding represents a servicebinding.io Provisioned Service
  671. reference to the secret
  672. properties:
  673. name:
  674. default: ""
  675. description: |-
  676. Name of the referent.
  677. This field is effectively required, but due to backwards compatibility is
  678. allowed to be empty. Instances of this type with an empty value here are
  679. almost certainly wrong.
  680. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  681. type: string
  682. type: object
  683. x-kubernetes-map-type: atomic
  684. conditions:
  685. items:
  686. description: ExternalSecretStatusCondition defines a status condition
  687. of an ExternalSecret resource.
  688. properties:
  689. lastTransitionTime:
  690. format: date-time
  691. type: string
  692. message:
  693. type: string
  694. reason:
  695. type: string
  696. status:
  697. type: string
  698. type:
  699. description: ExternalSecretConditionType defines a value type
  700. for ExternalSecret conditions.
  701. enum:
  702. - Ready
  703. - Deleted
  704. type: string
  705. required:
  706. - status
  707. - type
  708. type: object
  709. type: array
  710. refreshTime:
  711. description: |-
  712. refreshTime is the time and date the external secret was fetched and
  713. the target secret updated
  714. format: date-time
  715. nullable: true
  716. type: string
  717. syncedResourceVersion:
  718. description: SyncedResourceVersion keeps track of the last synced
  719. version
  720. type: string
  721. type: object
  722. type: object
  723. selectableFields:
  724. - jsonPath: .spec.secretStoreRef.name
  725. - jsonPath: .spec.secretStoreRef.kind
  726. - jsonPath: .spec.target.name
  727. - jsonPath: .spec.refreshInterval
  728. served: true
  729. storage: true
  730. subresources:
  731. status: {}
  732. - additionalPrinterColumns:
  733. - jsonPath: .spec.secretStoreRef.kind
  734. name: StoreType
  735. type: string
  736. - jsonPath: .spec.secretStoreRef.name
  737. name: Store
  738. type: string
  739. - jsonPath: .spec.refreshInterval
  740. name: Refresh Interval
  741. type: string
  742. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  743. name: Status
  744. type: string
  745. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  746. name: Ready
  747. type: string
  748. deprecated: true
  749. name: v1beta1
  750. schema:
  751. openAPIV3Schema:
  752. description: ExternalSecret is the schema for the external-secrets API.
  753. properties:
  754. apiVersion:
  755. description: |-
  756. APIVersion defines the versioned schema of this representation of an object.
  757. Servers should convert recognized schemas to the latest internal value, and
  758. may reject unrecognized values.
  759. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  760. type: string
  761. kind:
  762. description: |-
  763. Kind is a string value representing the REST resource this object represents.
  764. Servers may infer this from the endpoint the client submits requests to.
  765. Cannot be updated.
  766. In CamelCase.
  767. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  768. type: string
  769. metadata:
  770. type: object
  771. spec:
  772. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  773. properties:
  774. data:
  775. description: Data defines the connection between the Kubernetes Secret
  776. keys and the Provider data
  777. items:
  778. description: ExternalSecretData defines the connection between the
  779. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  780. properties:
  781. remoteRef:
  782. description: |-
  783. RemoteRef points to the remote secret and defines
  784. which secret (version/property/..) to fetch.
  785. properties:
  786. conversionStrategy:
  787. default: Default
  788. description: Used to define a conversion Strategy
  789. enum:
  790. - Default
  791. - Unicode
  792. type: string
  793. decodingStrategy:
  794. default: None
  795. description: Used to define a decoding Strategy
  796. enum:
  797. - Auto
  798. - Base64
  799. - Base64URL
  800. - None
  801. type: string
  802. key:
  803. description: Key is the key used in the Provider, mandatory
  804. type: string
  805. metadataPolicy:
  806. default: None
  807. description: Policy for fetching tags/labels from provider
  808. secrets, possible options are Fetch, None. Defaults to
  809. None
  810. enum:
  811. - None
  812. - Fetch
  813. type: string
  814. property:
  815. description: Used to select a specific property of the Provider
  816. value (if a map), if supported
  817. type: string
  818. version:
  819. description: Used to select a specific version of the Provider
  820. value, if supported
  821. type: string
  822. required:
  823. - key
  824. type: object
  825. secretKey:
  826. description: The key in the Kubernetes Secret to store the value.
  827. maxLength: 253
  828. minLength: 1
  829. pattern: ^[-._a-zA-Z0-9]+$
  830. type: string
  831. sourceRef:
  832. description: |-
  833. SourceRef allows you to override the source
  834. from which the value will be pulled.
  835. maxProperties: 1
  836. minProperties: 1
  837. properties:
  838. generatorRef:
  839. description: |-
  840. GeneratorRef points to a generator custom resource.
  841. Deprecated: The generatorRef is not implemented in .data[].
  842. this will be removed with v1.
  843. properties:
  844. apiVersion:
  845. default: generators.external-secrets.io/v1alpha1
  846. description: Specify the apiVersion of the generator
  847. resource
  848. type: string
  849. kind:
  850. description: Specify the Kind of the generator resource
  851. enum:
  852. - ACRAccessToken
  853. - ClusterGenerator
  854. - ECRAuthorizationToken
  855. - Fake
  856. - GCRAccessToken
  857. - GithubAccessToken
  858. - QuayAccessToken
  859. - Password
  860. - SSHKey
  861. - STSSessionToken
  862. - UUID
  863. - VaultDynamicSecret
  864. - Webhook
  865. - Grafana
  866. type: string
  867. name:
  868. description: Specify the name of the generator resource
  869. maxLength: 253
  870. minLength: 1
  871. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  872. type: string
  873. required:
  874. - kind
  875. - name
  876. type: object
  877. storeRef:
  878. description: SecretStoreRef defines which SecretStore to
  879. fetch the ExternalSecret data.
  880. properties:
  881. kind:
  882. description: |-
  883. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  884. Defaults to `SecretStore`
  885. enum:
  886. - SecretStore
  887. - ClusterSecretStore
  888. type: string
  889. name:
  890. description: Name of the SecretStore resource
  891. maxLength: 253
  892. minLength: 1
  893. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  894. type: string
  895. type: object
  896. type: object
  897. required:
  898. - remoteRef
  899. - secretKey
  900. type: object
  901. type: array
  902. dataFrom:
  903. description: |-
  904. DataFrom is used to fetch all properties from a specific Provider data
  905. If multiple entries are specified, the Secret keys are merged in the specified order
  906. items:
  907. description: ExternalSecretDataFromRemoteRef defines a reference
  908. to multiple secrets in the provider to be fetched using options.
  909. properties:
  910. extract:
  911. description: |-
  912. Used to extract multiple key/value pairs from one secret
  913. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  914. properties:
  915. conversionStrategy:
  916. default: Default
  917. description: Used to define a conversion Strategy
  918. enum:
  919. - Default
  920. - Unicode
  921. type: string
  922. decodingStrategy:
  923. default: None
  924. description: Used to define a decoding Strategy
  925. enum:
  926. - Auto
  927. - Base64
  928. - Base64URL
  929. - None
  930. type: string
  931. key:
  932. description: Key is the key used in the Provider, mandatory
  933. type: string
  934. metadataPolicy:
  935. default: None
  936. description: Policy for fetching tags/labels from provider
  937. secrets, possible options are Fetch, None. Defaults to
  938. None
  939. enum:
  940. - None
  941. - Fetch
  942. type: string
  943. property:
  944. description: Used to select a specific property of the Provider
  945. value (if a map), if supported
  946. type: string
  947. version:
  948. description: Used to select a specific version of the Provider
  949. value, if supported
  950. type: string
  951. required:
  952. - key
  953. type: object
  954. find:
  955. description: |-
  956. Used to find secrets based on tags or regular expressions
  957. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  958. properties:
  959. conversionStrategy:
  960. default: Default
  961. description: Used to define a conversion Strategy
  962. enum:
  963. - Default
  964. - Unicode
  965. type: string
  966. decodingStrategy:
  967. default: None
  968. description: Used to define a decoding Strategy
  969. enum:
  970. - Auto
  971. - Base64
  972. - Base64URL
  973. - None
  974. type: string
  975. name:
  976. description: Finds secrets based on the name.
  977. properties:
  978. regexp:
  979. description: Finds secrets base
  980. type: string
  981. type: object
  982. path:
  983. description: A root path to start the find operations.
  984. type: string
  985. tags:
  986. additionalProperties:
  987. type: string
  988. description: Find secrets based on tags.
  989. type: object
  990. type: object
  991. rewrite:
  992. description: |-
  993. Used to rewrite secret Keys after getting them from the secret Provider
  994. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  995. items:
  996. description: ExternalSecretRewrite defines rules on how to
  997. rewrite secret keys.
  998. maxProperties: 1
  999. minProperties: 1
  1000. properties:
  1001. regexp:
  1002. description: |-
  1003. Used to rewrite with regular expressions.
  1004. The resulting key will be the output of a regexp.ReplaceAll operation.
  1005. properties:
  1006. source:
  1007. description: Used to define the regular expression
  1008. of a re.Compiler.
  1009. type: string
  1010. target:
  1011. description: Used to define the target pattern of
  1012. a ReplaceAll operation.
  1013. type: string
  1014. required:
  1015. - source
  1016. - target
  1017. type: object
  1018. transform:
  1019. description: |-
  1020. Used to apply string transformation on the secrets.
  1021. The resulting key will be the output of the template applied by the operation.
  1022. properties:
  1023. template:
  1024. description: |-
  1025. Used to define the template to apply on the secret name.
  1026. `.value ` will specify the secret name in the template.
  1027. type: string
  1028. required:
  1029. - template
  1030. type: object
  1031. type: object
  1032. type: array
  1033. sourceRef:
  1034. description: |-
  1035. SourceRef points to a store or generator
  1036. which contains secret values ready to use.
  1037. Use this in combination with Extract or Find pull values out of
  1038. a specific SecretStore.
  1039. When sourceRef points to a generator Extract or Find is not supported.
  1040. The generator returns a static map of values
  1041. maxProperties: 1
  1042. minProperties: 1
  1043. properties:
  1044. generatorRef:
  1045. description: GeneratorRef points to a generator custom resource.
  1046. properties:
  1047. apiVersion:
  1048. default: generators.external-secrets.io/v1alpha1
  1049. description: Specify the apiVersion of the generator
  1050. resource
  1051. type: string
  1052. kind:
  1053. description: Specify the Kind of the generator resource
  1054. enum:
  1055. - ACRAccessToken
  1056. - ClusterGenerator
  1057. - ECRAuthorizationToken
  1058. - Fake
  1059. - GCRAccessToken
  1060. - GithubAccessToken
  1061. - QuayAccessToken
  1062. - Password
  1063. - SSHKey
  1064. - STSSessionToken
  1065. - UUID
  1066. - VaultDynamicSecret
  1067. - Webhook
  1068. - Grafana
  1069. type: string
  1070. name:
  1071. description: Specify the name of the generator resource
  1072. maxLength: 253
  1073. minLength: 1
  1074. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1075. type: string
  1076. required:
  1077. - kind
  1078. - name
  1079. type: object
  1080. storeRef:
  1081. description: SecretStoreRef defines which SecretStore to
  1082. fetch the ExternalSecret data.
  1083. properties:
  1084. kind:
  1085. description: |-
  1086. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  1087. Defaults to `SecretStore`
  1088. enum:
  1089. - SecretStore
  1090. - ClusterSecretStore
  1091. type: string
  1092. name:
  1093. description: Name of the SecretStore resource
  1094. maxLength: 253
  1095. minLength: 1
  1096. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1097. type: string
  1098. type: object
  1099. type: object
  1100. type: object
  1101. type: array
  1102. refreshInterval:
  1103. default: 1h
  1104. description: |-
  1105. RefreshInterval is the amount of time before the values are read again from the SecretStore provider,
  1106. specified as Golang Duration strings.
  1107. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  1108. Example values: "1h", "2h30m", "10s"
  1109. May be set to zero to fetch and create it once. Defaults to 1h.
  1110. type: string
  1111. refreshPolicy:
  1112. description: |-
  1113. RefreshPolicy determines how the ExternalSecret should be refreshed:
  1114. - CreatedOnce: Creates the Secret only if it does not exist and does not update it thereafter
  1115. - Periodic: Synchronizes the Secret from the external source at regular intervals specified by refreshInterval.
  1116. No periodic updates occur if refreshInterval is 0.
  1117. - OnChange: Only synchronizes the Secret when the ExternalSecret's metadata or specification changes
  1118. enum:
  1119. - CreatedOnce
  1120. - Periodic
  1121. - OnChange
  1122. type: string
  1123. secretStoreRef:
  1124. description: SecretStoreRef defines which SecretStore to fetch the
  1125. ExternalSecret data.
  1126. properties:
  1127. kind:
  1128. description: |-
  1129. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  1130. Defaults to `SecretStore`
  1131. enum:
  1132. - SecretStore
  1133. - ClusterSecretStore
  1134. type: string
  1135. name:
  1136. description: Name of the SecretStore resource
  1137. maxLength: 253
  1138. minLength: 1
  1139. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1140. type: string
  1141. type: object
  1142. target:
  1143. default:
  1144. creationPolicy: Owner
  1145. deletionPolicy: Retain
  1146. description: |-
  1147. ExternalSecretTarget defines the Kubernetes Secret to be created
  1148. There can be only one target per ExternalSecret.
  1149. properties:
  1150. creationPolicy:
  1151. default: Owner
  1152. description: |-
  1153. CreationPolicy defines rules on how to create the resulting Secret.
  1154. Defaults to "Owner"
  1155. enum:
  1156. - Owner
  1157. - Orphan
  1158. - Merge
  1159. - None
  1160. type: string
  1161. deletionPolicy:
  1162. default: Retain
  1163. description: |-
  1164. DeletionPolicy defines rules on how to delete the resulting Secret.
  1165. Defaults to "Retain"
  1166. enum:
  1167. - Delete
  1168. - Merge
  1169. - Retain
  1170. type: string
  1171. immutable:
  1172. description: Immutable defines if the final secret will be immutable
  1173. type: boolean
  1174. name:
  1175. description: |-
  1176. The name of the Secret resource to be managed.
  1177. Defaults to the .metadata.name of the ExternalSecret resource
  1178. maxLength: 253
  1179. minLength: 1
  1180. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1181. type: string
  1182. template:
  1183. description: Template defines a blueprint for the created Secret
  1184. resource.
  1185. properties:
  1186. data:
  1187. additionalProperties:
  1188. type: string
  1189. type: object
  1190. engineVersion:
  1191. default: v2
  1192. description: |-
  1193. EngineVersion specifies the template engine version
  1194. that should be used to compile/execute the
  1195. template specified in .data and .templateFrom[].
  1196. enum:
  1197. - v2
  1198. type: string
  1199. mergePolicy:
  1200. default: Replace
  1201. description: TemplateMergePolicy defines how template values
  1202. should be merged when generating a secret.
  1203. enum:
  1204. - Replace
  1205. - Merge
  1206. type: string
  1207. metadata:
  1208. description: ExternalSecretTemplateMetadata defines metadata
  1209. fields for the Secret blueprint.
  1210. properties:
  1211. annotations:
  1212. additionalProperties:
  1213. type: string
  1214. type: object
  1215. labels:
  1216. additionalProperties:
  1217. type: string
  1218. type: object
  1219. type: object
  1220. templateFrom:
  1221. items:
  1222. description: TemplateFrom defines a source for template
  1223. data.
  1224. properties:
  1225. configMap:
  1226. description: TemplateRef defines a reference to a template
  1227. source in a ConfigMap or Secret.
  1228. properties:
  1229. items:
  1230. description: A list of keys in the ConfigMap/Secret
  1231. to use as templates for Secret data
  1232. items:
  1233. description: TemplateRefItem defines which key
  1234. in the referenced ConfigMap or Secret to use
  1235. as a template.
  1236. properties:
  1237. key:
  1238. description: A key in the ConfigMap/Secret
  1239. maxLength: 253
  1240. minLength: 1
  1241. pattern: ^[-._a-zA-Z0-9]+$
  1242. type: string
  1243. templateAs:
  1244. default: Values
  1245. description: TemplateScope defines the scope
  1246. of the template when processing template
  1247. data.
  1248. enum:
  1249. - Values
  1250. - KeysAndValues
  1251. type: string
  1252. required:
  1253. - key
  1254. type: object
  1255. type: array
  1256. name:
  1257. description: The name of the ConfigMap/Secret resource
  1258. maxLength: 253
  1259. minLength: 1
  1260. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1261. type: string
  1262. required:
  1263. - items
  1264. - name
  1265. type: object
  1266. literal:
  1267. type: string
  1268. secret:
  1269. description: TemplateRef defines a reference to a template
  1270. source in a ConfigMap or Secret.
  1271. properties:
  1272. items:
  1273. description: A list of keys in the ConfigMap/Secret
  1274. to use as templates for Secret data
  1275. items:
  1276. description: TemplateRefItem defines which key
  1277. in the referenced ConfigMap or Secret to use
  1278. as a template.
  1279. properties:
  1280. key:
  1281. description: A key in the ConfigMap/Secret
  1282. maxLength: 253
  1283. minLength: 1
  1284. pattern: ^[-._a-zA-Z0-9]+$
  1285. type: string
  1286. templateAs:
  1287. default: Values
  1288. description: TemplateScope defines the scope
  1289. of the template when processing template
  1290. data.
  1291. enum:
  1292. - Values
  1293. - KeysAndValues
  1294. type: string
  1295. required:
  1296. - key
  1297. type: object
  1298. type: array
  1299. name:
  1300. description: The name of the ConfigMap/Secret resource
  1301. maxLength: 253
  1302. minLength: 1
  1303. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1304. type: string
  1305. required:
  1306. - items
  1307. - name
  1308. type: object
  1309. target:
  1310. default: Data
  1311. description: TemplateTarget defines the target field
  1312. where the template result will be stored.
  1313. enum:
  1314. - Data
  1315. - Annotations
  1316. - Labels
  1317. type: string
  1318. type: object
  1319. type: array
  1320. type:
  1321. type: string
  1322. type: object
  1323. type: object
  1324. type: object
  1325. status:
  1326. description: ExternalSecretStatus defines the observed state of ExternalSecret.
  1327. properties:
  1328. binding:
  1329. description: Binding represents a servicebinding.io Provisioned Service
  1330. reference to the secret
  1331. properties:
  1332. name:
  1333. default: ""
  1334. description: |-
  1335. Name of the referent.
  1336. This field is effectively required, but due to backwards compatibility is
  1337. allowed to be empty. Instances of this type with an empty value here are
  1338. almost certainly wrong.
  1339. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1340. type: string
  1341. type: object
  1342. x-kubernetes-map-type: atomic
  1343. conditions:
  1344. items:
  1345. description: ExternalSecretStatusCondition contains condition information
  1346. for an ExternalSecret.
  1347. properties:
  1348. lastTransitionTime:
  1349. format: date-time
  1350. type: string
  1351. message:
  1352. type: string
  1353. reason:
  1354. type: string
  1355. status:
  1356. type: string
  1357. type:
  1358. description: ExternalSecretConditionType defines the condition
  1359. type for an ExternalSecret.
  1360. type: string
  1361. required:
  1362. - status
  1363. - type
  1364. type: object
  1365. type: array
  1366. refreshTime:
  1367. description: |-
  1368. refreshTime is the time and date the external secret was fetched and
  1369. the target secret updated
  1370. format: date-time
  1371. nullable: true
  1372. type: string
  1373. syncedResourceVersion:
  1374. description: SyncedResourceVersion keeps track of the last synced
  1375. version
  1376. type: string
  1377. type: object
  1378. type: object
  1379. served: false
  1380. storage: false
  1381. subresources:
  1382. status: {}