external-secrets.io_externalsecrets.yaml 66 KB

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