external-secrets.io_externalsecrets.yaml 60 KB

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