external-secrets.io_externalsecrets.yaml 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404
  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: 1h0m0s
  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: "1h0m0s", "2h30m0s", "10m0s"
  447. May be set to "0s" to fetch and create it once. Defaults to 1h0m0s.
  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. manifest:
  513. description: |-
  514. Manifest defines a custom Kubernetes resource to create instead of a Secret.
  515. When specified, ExternalSecret will create the resource type defined here
  516. (e.g., ConfigMap, Custom Resource) instead of a Secret.
  517. Warning: Using Generic target. Make sure access policies and encryption are properly configured.
  518. properties:
  519. apiVersion:
  520. description: APIVersion of the target resource (e.g., "v1"
  521. for ConfigMap, "argoproj.io/v1alpha1" for ArgoCD Application)
  522. minLength: 1
  523. type: string
  524. kind:
  525. description: Kind of the target resource (e.g., "ConfigMap",
  526. "Application")
  527. minLength: 1
  528. type: string
  529. required:
  530. - apiVersion
  531. - kind
  532. type: object
  533. name:
  534. description: |-
  535. The name of the Secret resource to be managed.
  536. Defaults to the .metadata.name of the ExternalSecret resource
  537. maxLength: 253
  538. minLength: 1
  539. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  540. type: string
  541. template:
  542. description: Template defines a blueprint for the created Secret
  543. resource.
  544. properties:
  545. data:
  546. additionalProperties:
  547. type: string
  548. type: object
  549. engineVersion:
  550. default: v2
  551. description: |-
  552. EngineVersion specifies the template engine version
  553. that should be used to compile/execute the
  554. template specified in .data and .templateFrom[].
  555. enum:
  556. - v2
  557. type: string
  558. mergePolicy:
  559. default: Replace
  560. description: TemplateMergePolicy defines how the rendered
  561. template should be merged with the existing Secret data.
  562. enum:
  563. - Replace
  564. - Merge
  565. type: string
  566. metadata:
  567. description: ExternalSecretTemplateMetadata defines metadata
  568. fields for the Secret blueprint.
  569. properties:
  570. annotations:
  571. additionalProperties:
  572. type: string
  573. type: object
  574. finalizers:
  575. items:
  576. type: string
  577. type: array
  578. labels:
  579. additionalProperties:
  580. type: string
  581. type: object
  582. type: object
  583. templateFrom:
  584. items:
  585. description: |-
  586. TemplateFrom specifies a source for templates.
  587. Each item in the list can either reference a ConfigMap or a Secret resource.
  588. properties:
  589. configMap:
  590. description: TemplateRef specifies a reference to either
  591. a ConfigMap or a Secret resource.
  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. description: TemplateRefItem specifies a key in
  598. the ConfigMap/Secret to use as a template for
  599. Secret data.
  600. properties:
  601. key:
  602. description: A key in the ConfigMap/Secret
  603. maxLength: 253
  604. minLength: 1
  605. pattern: ^[-._a-zA-Z0-9]+$
  606. type: string
  607. templateAs:
  608. default: Values
  609. description: TemplateScope specifies how the
  610. template keys should be interpreted.
  611. enum:
  612. - Values
  613. - KeysAndValues
  614. type: string
  615. required:
  616. - key
  617. type: object
  618. type: array
  619. name:
  620. description: The name of the ConfigMap/Secret resource
  621. maxLength: 253
  622. minLength: 1
  623. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  624. type: string
  625. required:
  626. - items
  627. - name
  628. type: object
  629. literal:
  630. type: string
  631. secret:
  632. description: TemplateRef specifies a reference to either
  633. a ConfigMap or a Secret resource.
  634. properties:
  635. items:
  636. description: A list of keys in the ConfigMap/Secret
  637. to use as templates for Secret data
  638. items:
  639. description: TemplateRefItem specifies a key in
  640. the ConfigMap/Secret to use as a template for
  641. Secret data.
  642. properties:
  643. key:
  644. description: A key in the ConfigMap/Secret
  645. maxLength: 253
  646. minLength: 1
  647. pattern: ^[-._a-zA-Z0-9]+$
  648. type: string
  649. templateAs:
  650. default: Values
  651. description: TemplateScope specifies how the
  652. template keys should be interpreted.
  653. enum:
  654. - Values
  655. - KeysAndValues
  656. type: string
  657. required:
  658. - key
  659. type: object
  660. type: array
  661. name:
  662. description: The name of the ConfigMap/Secret resource
  663. maxLength: 253
  664. minLength: 1
  665. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  666. type: string
  667. required:
  668. - items
  669. - name
  670. type: object
  671. target:
  672. default: Data
  673. description: |-
  674. Target specifies where to place the template result.
  675. For Secret resources, common values are: "Data", "Annotations", "Labels".
  676. For custom resources (when spec.target.manifest is set), this supports
  677. nested paths like "spec.database.config" or "data".
  678. type: string
  679. type: object
  680. type: array
  681. type:
  682. type: string
  683. type: object
  684. type: object
  685. type: object
  686. status:
  687. description: ExternalSecretStatus defines the observed state of ExternalSecret.
  688. properties:
  689. binding:
  690. description: Binding represents a servicebinding.io Provisioned Service
  691. reference to the secret
  692. properties:
  693. name:
  694. default: ""
  695. description: |-
  696. Name of the referent.
  697. This field is effectively required, but due to backwards compatibility is
  698. allowed to be empty. Instances of this type with an empty value here are
  699. almost certainly wrong.
  700. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  701. type: string
  702. type: object
  703. x-kubernetes-map-type: atomic
  704. conditions:
  705. items:
  706. description: ExternalSecretStatusCondition defines a status condition
  707. of an ExternalSecret resource.
  708. properties:
  709. lastTransitionTime:
  710. format: date-time
  711. type: string
  712. message:
  713. type: string
  714. reason:
  715. type: string
  716. status:
  717. type: string
  718. type:
  719. description: ExternalSecretConditionType defines a value type
  720. for ExternalSecret conditions.
  721. enum:
  722. - Ready
  723. - Deleted
  724. type: string
  725. required:
  726. - status
  727. - type
  728. type: object
  729. type: array
  730. refreshTime:
  731. description: |-
  732. refreshTime is the time and date the external secret was fetched and
  733. the target secret updated
  734. format: date-time
  735. nullable: true
  736. type: string
  737. syncedResourceVersion:
  738. description: SyncedResourceVersion keeps track of the last synced
  739. version
  740. type: string
  741. type: object
  742. type: object
  743. selectableFields:
  744. - jsonPath: .spec.secretStoreRef.name
  745. - jsonPath: .spec.secretStoreRef.kind
  746. - jsonPath: .spec.target.name
  747. - jsonPath: .spec.refreshInterval
  748. served: true
  749. storage: true
  750. subresources:
  751. status: {}
  752. - additionalPrinterColumns:
  753. - jsonPath: .spec.secretStoreRef.kind
  754. name: StoreType
  755. type: string
  756. - jsonPath: .spec.secretStoreRef.name
  757. name: Store
  758. type: string
  759. - jsonPath: .spec.refreshInterval
  760. name: Refresh Interval
  761. type: string
  762. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  763. name: Status
  764. type: string
  765. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  766. name: Ready
  767. type: string
  768. deprecated: true
  769. name: v1beta1
  770. schema:
  771. openAPIV3Schema:
  772. description: ExternalSecret is the schema for the external-secrets API.
  773. properties:
  774. apiVersion:
  775. description: |-
  776. APIVersion defines the versioned schema of this representation of an object.
  777. Servers should convert recognized schemas to the latest internal value, and
  778. may reject unrecognized values.
  779. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  780. type: string
  781. kind:
  782. description: |-
  783. Kind is a string value representing the REST resource this object represents.
  784. Servers may infer this from the endpoint the client submits requests to.
  785. Cannot be updated.
  786. In CamelCase.
  787. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  788. type: string
  789. metadata:
  790. type: object
  791. spec:
  792. description: ExternalSecretSpec defines the desired state of ExternalSecret.
  793. properties:
  794. data:
  795. description: Data defines the connection between the Kubernetes Secret
  796. keys and the Provider data
  797. items:
  798. description: ExternalSecretData defines the connection between the
  799. Kubernetes Secret key (spec.data.<key>) and the Provider data.
  800. properties:
  801. remoteRef:
  802. description: |-
  803. RemoteRef points to the remote secret and defines
  804. which secret (version/property/..) to fetch.
  805. properties:
  806. conversionStrategy:
  807. default: Default
  808. description: Used to define a conversion Strategy
  809. enum:
  810. - Default
  811. - Unicode
  812. type: string
  813. decodingStrategy:
  814. default: None
  815. description: Used to define a decoding Strategy
  816. enum:
  817. - Auto
  818. - Base64
  819. - Base64URL
  820. - None
  821. type: string
  822. key:
  823. description: Key is the key used in the Provider, mandatory
  824. type: string
  825. metadataPolicy:
  826. default: None
  827. description: Policy for fetching tags/labels from provider
  828. secrets, possible options are Fetch, None. Defaults to
  829. None
  830. enum:
  831. - None
  832. - Fetch
  833. type: string
  834. property:
  835. description: Used to select a specific property of the Provider
  836. value (if a map), if supported
  837. type: string
  838. version:
  839. description: Used to select a specific version of the Provider
  840. value, if supported
  841. type: string
  842. required:
  843. - key
  844. type: object
  845. secretKey:
  846. description: The key in the Kubernetes Secret to store the value.
  847. maxLength: 253
  848. minLength: 1
  849. pattern: ^[-._a-zA-Z0-9]+$
  850. type: string
  851. sourceRef:
  852. description: |-
  853. SourceRef allows you to override the source
  854. from which the value will be pulled.
  855. maxProperties: 1
  856. minProperties: 1
  857. properties:
  858. generatorRef:
  859. description: |-
  860. GeneratorRef points to a generator custom resource.
  861. Deprecated: The generatorRef is not implemented in .data[].
  862. this will be removed with v1.
  863. properties:
  864. apiVersion:
  865. default: generators.external-secrets.io/v1alpha1
  866. description: Specify the apiVersion of the generator
  867. resource
  868. type: string
  869. kind:
  870. description: Specify the Kind of the generator resource
  871. enum:
  872. - ACRAccessToken
  873. - ClusterGenerator
  874. - ECRAuthorizationToken
  875. - Fake
  876. - GCRAccessToken
  877. - GithubAccessToken
  878. - QuayAccessToken
  879. - Password
  880. - SSHKey
  881. - STSSessionToken
  882. - UUID
  883. - VaultDynamicSecret
  884. - Webhook
  885. - Grafana
  886. type: string
  887. name:
  888. description: Specify the name of the generator resource
  889. maxLength: 253
  890. minLength: 1
  891. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  892. type: string
  893. required:
  894. - kind
  895. - name
  896. type: object
  897. storeRef:
  898. description: SecretStoreRef defines which SecretStore to
  899. fetch the ExternalSecret data.
  900. properties:
  901. kind:
  902. description: |-
  903. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  904. Defaults to `SecretStore`
  905. enum:
  906. - SecretStore
  907. - ClusterSecretStore
  908. type: string
  909. name:
  910. description: Name of the SecretStore resource
  911. maxLength: 253
  912. minLength: 1
  913. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  914. type: string
  915. type: object
  916. type: object
  917. required:
  918. - remoteRef
  919. - secretKey
  920. type: object
  921. type: array
  922. dataFrom:
  923. description: |-
  924. DataFrom is used to fetch all properties from a specific Provider data
  925. If multiple entries are specified, the Secret keys are merged in the specified order
  926. items:
  927. description: ExternalSecretDataFromRemoteRef defines a reference
  928. to multiple secrets in the provider to be fetched using options.
  929. properties:
  930. extract:
  931. description: |-
  932. Used to extract multiple key/value pairs from one secret
  933. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  934. properties:
  935. conversionStrategy:
  936. default: Default
  937. description: Used to define a conversion Strategy
  938. enum:
  939. - Default
  940. - Unicode
  941. type: string
  942. decodingStrategy:
  943. default: None
  944. description: Used to define a decoding Strategy
  945. enum:
  946. - Auto
  947. - Base64
  948. - Base64URL
  949. - None
  950. type: string
  951. key:
  952. description: Key is the key used in the Provider, mandatory
  953. type: string
  954. metadataPolicy:
  955. default: None
  956. description: Policy for fetching tags/labels from provider
  957. secrets, possible options are Fetch, None. Defaults to
  958. None
  959. enum:
  960. - None
  961. - Fetch
  962. type: string
  963. property:
  964. description: Used to select a specific property of the Provider
  965. value (if a map), if supported
  966. type: string
  967. version:
  968. description: Used to select a specific version of the Provider
  969. value, if supported
  970. type: string
  971. required:
  972. - key
  973. type: object
  974. find:
  975. description: |-
  976. Used to find secrets based on tags or regular expressions
  977. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  978. properties:
  979. conversionStrategy:
  980. default: Default
  981. description: Used to define a conversion Strategy
  982. enum:
  983. - Default
  984. - Unicode
  985. type: string
  986. decodingStrategy:
  987. default: None
  988. description: Used to define a decoding Strategy
  989. enum:
  990. - Auto
  991. - Base64
  992. - Base64URL
  993. - None
  994. type: string
  995. name:
  996. description: Finds secrets based on the name.
  997. properties:
  998. regexp:
  999. description: Finds secrets base
  1000. type: string
  1001. type: object
  1002. path:
  1003. description: A root path to start the find operations.
  1004. type: string
  1005. tags:
  1006. additionalProperties:
  1007. type: string
  1008. description: Find secrets based on tags.
  1009. type: object
  1010. type: object
  1011. rewrite:
  1012. description: |-
  1013. Used to rewrite secret Keys after getting them from the secret Provider
  1014. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  1015. items:
  1016. description: ExternalSecretRewrite defines rules on how to
  1017. rewrite secret keys.
  1018. maxProperties: 1
  1019. minProperties: 1
  1020. properties:
  1021. regexp:
  1022. description: |-
  1023. Used to rewrite with regular expressions.
  1024. The resulting key will be the output of a regexp.ReplaceAll operation.
  1025. properties:
  1026. source:
  1027. description: Used to define the regular expression
  1028. of a re.Compiler.
  1029. type: string
  1030. target:
  1031. description: Used to define the target pattern of
  1032. a ReplaceAll operation.
  1033. type: string
  1034. required:
  1035. - source
  1036. - target
  1037. type: object
  1038. transform:
  1039. description: |-
  1040. Used to apply string transformation on the secrets.
  1041. The resulting key will be the output of the template applied by the operation.
  1042. properties:
  1043. template:
  1044. description: |-
  1045. Used to define the template to apply on the secret name.
  1046. `.value ` will specify the secret name in the template.
  1047. type: string
  1048. required:
  1049. - template
  1050. type: object
  1051. type: object
  1052. type: array
  1053. sourceRef:
  1054. description: |-
  1055. SourceRef points to a store or generator
  1056. which contains secret values ready to use.
  1057. Use this in combination with Extract or Find pull values out of
  1058. a specific SecretStore.
  1059. When sourceRef points to a generator Extract or Find is not supported.
  1060. The generator returns a static map of values
  1061. maxProperties: 1
  1062. minProperties: 1
  1063. properties:
  1064. generatorRef:
  1065. description: GeneratorRef points to a generator custom resource.
  1066. properties:
  1067. apiVersion:
  1068. default: generators.external-secrets.io/v1alpha1
  1069. description: Specify the apiVersion of the generator
  1070. resource
  1071. type: string
  1072. kind:
  1073. description: Specify the Kind of the generator resource
  1074. enum:
  1075. - ACRAccessToken
  1076. - ClusterGenerator
  1077. - ECRAuthorizationToken
  1078. - Fake
  1079. - GCRAccessToken
  1080. - GithubAccessToken
  1081. - QuayAccessToken
  1082. - Password
  1083. - SSHKey
  1084. - STSSessionToken
  1085. - UUID
  1086. - VaultDynamicSecret
  1087. - Webhook
  1088. - Grafana
  1089. type: string
  1090. name:
  1091. description: Specify the name of the generator resource
  1092. maxLength: 253
  1093. minLength: 1
  1094. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1095. type: string
  1096. required:
  1097. - kind
  1098. - name
  1099. type: object
  1100. storeRef:
  1101. description: SecretStoreRef defines which SecretStore to
  1102. fetch the ExternalSecret data.
  1103. properties:
  1104. kind:
  1105. description: |-
  1106. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  1107. Defaults to `SecretStore`
  1108. enum:
  1109. - SecretStore
  1110. - ClusterSecretStore
  1111. type: string
  1112. name:
  1113. description: Name of the SecretStore resource
  1114. maxLength: 253
  1115. minLength: 1
  1116. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1117. type: string
  1118. type: object
  1119. type: object
  1120. type: object
  1121. type: array
  1122. refreshInterval:
  1123. default: 1h0m0s
  1124. description: |-
  1125. RefreshInterval is the amount of time before the values are read again from the SecretStore provider,
  1126. specified as Golang Duration strings.
  1127. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  1128. Example values: "1h0m0s", "2h30m0s", "10m0s"
  1129. May be set to "0s" to fetch and create it once. Defaults to 1h0m0s.
  1130. type: string
  1131. refreshPolicy:
  1132. description: |-
  1133. RefreshPolicy determines how the ExternalSecret should be refreshed:
  1134. - CreatedOnce: Creates the Secret only if it does not exist and does not update it thereafter
  1135. - Periodic: Synchronizes the Secret from the external source at regular intervals specified by refreshInterval.
  1136. No periodic updates occur if refreshInterval is 0.
  1137. - OnChange: Only synchronizes the Secret when the ExternalSecret's metadata or specification changes
  1138. enum:
  1139. - CreatedOnce
  1140. - Periodic
  1141. - OnChange
  1142. type: string
  1143. secretStoreRef:
  1144. description: SecretStoreRef defines which SecretStore to fetch the
  1145. ExternalSecret data.
  1146. properties:
  1147. kind:
  1148. description: |-
  1149. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  1150. Defaults to `SecretStore`
  1151. enum:
  1152. - SecretStore
  1153. - ClusterSecretStore
  1154. type: string
  1155. name:
  1156. description: Name of the SecretStore resource
  1157. maxLength: 253
  1158. minLength: 1
  1159. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1160. type: string
  1161. type: object
  1162. target:
  1163. default:
  1164. creationPolicy: Owner
  1165. deletionPolicy: Retain
  1166. description: |-
  1167. ExternalSecretTarget defines the Kubernetes Secret to be created
  1168. There can be only one target per ExternalSecret.
  1169. properties:
  1170. creationPolicy:
  1171. default: Owner
  1172. description: |-
  1173. CreationPolicy defines rules on how to create the resulting Secret.
  1174. Defaults to "Owner"
  1175. enum:
  1176. - Owner
  1177. - Orphan
  1178. - Merge
  1179. - None
  1180. type: string
  1181. deletionPolicy:
  1182. default: Retain
  1183. description: |-
  1184. DeletionPolicy defines rules on how to delete the resulting Secret.
  1185. Defaults to "Retain"
  1186. enum:
  1187. - Delete
  1188. - Merge
  1189. - Retain
  1190. type: string
  1191. immutable:
  1192. description: Immutable defines if the final secret will be immutable
  1193. type: boolean
  1194. name:
  1195. description: |-
  1196. The name of the Secret resource to be managed.
  1197. Defaults to the .metadata.name of the ExternalSecret resource
  1198. maxLength: 253
  1199. minLength: 1
  1200. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1201. type: string
  1202. template:
  1203. description: Template defines a blueprint for the created Secret
  1204. resource.
  1205. properties:
  1206. data:
  1207. additionalProperties:
  1208. type: string
  1209. type: object
  1210. engineVersion:
  1211. default: v2
  1212. description: |-
  1213. EngineVersion specifies the template engine version
  1214. that should be used to compile/execute the
  1215. template specified in .data and .templateFrom[].
  1216. enum:
  1217. - v2
  1218. type: string
  1219. mergePolicy:
  1220. default: Replace
  1221. description: TemplateMergePolicy defines how template values
  1222. should be merged when generating a secret.
  1223. enum:
  1224. - Replace
  1225. - Merge
  1226. type: string
  1227. metadata:
  1228. description: ExternalSecretTemplateMetadata defines metadata
  1229. fields for the Secret blueprint.
  1230. properties:
  1231. annotations:
  1232. additionalProperties:
  1233. type: string
  1234. type: object
  1235. labels:
  1236. additionalProperties:
  1237. type: string
  1238. type: object
  1239. type: object
  1240. templateFrom:
  1241. items:
  1242. description: TemplateFrom defines a source for template
  1243. data.
  1244. properties:
  1245. configMap:
  1246. description: TemplateRef defines a reference to a template
  1247. source in a ConfigMap or Secret.
  1248. properties:
  1249. items:
  1250. description: A list of keys in the ConfigMap/Secret
  1251. to use as templates for Secret data
  1252. items:
  1253. description: TemplateRefItem defines which key
  1254. in the referenced ConfigMap or Secret to use
  1255. as a template.
  1256. properties:
  1257. key:
  1258. description: A key in the ConfigMap/Secret
  1259. maxLength: 253
  1260. minLength: 1
  1261. pattern: ^[-._a-zA-Z0-9]+$
  1262. type: string
  1263. templateAs:
  1264. default: Values
  1265. description: TemplateScope defines the scope
  1266. of the template when processing template
  1267. data.
  1268. enum:
  1269. - Values
  1270. - KeysAndValues
  1271. type: string
  1272. required:
  1273. - key
  1274. type: object
  1275. type: array
  1276. name:
  1277. description: The name of the ConfigMap/Secret resource
  1278. maxLength: 253
  1279. minLength: 1
  1280. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1281. type: string
  1282. required:
  1283. - items
  1284. - name
  1285. type: object
  1286. literal:
  1287. type: string
  1288. secret:
  1289. description: TemplateRef defines a reference to a template
  1290. source in a ConfigMap or Secret.
  1291. properties:
  1292. items:
  1293. description: A list of keys in the ConfigMap/Secret
  1294. to use as templates for Secret data
  1295. items:
  1296. description: TemplateRefItem defines which key
  1297. in the referenced ConfigMap or Secret to use
  1298. as a template.
  1299. properties:
  1300. key:
  1301. description: A key in the ConfigMap/Secret
  1302. maxLength: 253
  1303. minLength: 1
  1304. pattern: ^[-._a-zA-Z0-9]+$
  1305. type: string
  1306. templateAs:
  1307. default: Values
  1308. description: TemplateScope defines the scope
  1309. of the template when processing template
  1310. data.
  1311. enum:
  1312. - Values
  1313. - KeysAndValues
  1314. type: string
  1315. required:
  1316. - key
  1317. type: object
  1318. type: array
  1319. name:
  1320. description: The name of the ConfigMap/Secret resource
  1321. maxLength: 253
  1322. minLength: 1
  1323. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1324. type: string
  1325. required:
  1326. - items
  1327. - name
  1328. type: object
  1329. target:
  1330. default: Data
  1331. description: TemplateTarget defines the target field
  1332. where the template result will be stored.
  1333. enum:
  1334. - Data
  1335. - Annotations
  1336. - Labels
  1337. type: string
  1338. type: object
  1339. type: array
  1340. type:
  1341. type: string
  1342. type: object
  1343. type: object
  1344. type: object
  1345. status:
  1346. description: ExternalSecretStatus defines the observed state of ExternalSecret.
  1347. properties:
  1348. binding:
  1349. description: Binding represents a servicebinding.io Provisioned Service
  1350. reference to the secret
  1351. properties:
  1352. name:
  1353. default: ""
  1354. description: |-
  1355. Name of the referent.
  1356. This field is effectively required, but due to backwards compatibility is
  1357. allowed to be empty. Instances of this type with an empty value here are
  1358. almost certainly wrong.
  1359. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1360. type: string
  1361. type: object
  1362. x-kubernetes-map-type: atomic
  1363. conditions:
  1364. items:
  1365. description: ExternalSecretStatusCondition contains condition information
  1366. for an ExternalSecret.
  1367. properties:
  1368. lastTransitionTime:
  1369. format: date-time
  1370. type: string
  1371. message:
  1372. type: string
  1373. reason:
  1374. type: string
  1375. status:
  1376. type: string
  1377. type:
  1378. description: ExternalSecretConditionType defines the condition
  1379. type for an ExternalSecret.
  1380. type: string
  1381. required:
  1382. - status
  1383. - type
  1384. type: object
  1385. type: array
  1386. refreshTime:
  1387. description: |-
  1388. refreshTime is the time and date the external secret was fetched and
  1389. the target secret updated
  1390. format: date-time
  1391. nullable: true
  1392. type: string
  1393. syncedResourceVersion:
  1394. description: SyncedResourceVersion keeps track of the last synced
  1395. version
  1396. type: string
  1397. type: object
  1398. type: object
  1399. served: false
  1400. storage: false
  1401. subresources:
  1402. status: {}