generators.external-secrets.io_vaultdynamicsecrets.yaml 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048
  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: vaultdynamicsecrets.generators.external-secrets.io
  9. spec:
  10. group: generators.external-secrets.io
  11. names:
  12. categories:
  13. - external-secrets
  14. - external-secrets-generators
  15. kind: VaultDynamicSecret
  16. listKind: VaultDynamicSecretList
  17. plural: vaultdynamicsecrets
  18. singular: vaultdynamicsecret
  19. scope: Namespaced
  20. versions:
  21. - name: v1alpha1
  22. schema:
  23. openAPIV3Schema:
  24. description: VaultDynamicSecret represents a generator that can create dynamic
  25. secrets from HashiCorp Vault.
  26. properties:
  27. apiVersion:
  28. description: |-
  29. APIVersion defines the versioned schema of this representation of an object.
  30. Servers should convert recognized schemas to the latest internal value, and
  31. may reject unrecognized values.
  32. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  33. type: string
  34. kind:
  35. description: |-
  36. Kind is a string value representing the REST resource this object represents.
  37. Servers may infer this from the endpoint the client submits requests to.
  38. Cannot be updated.
  39. In CamelCase.
  40. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  41. type: string
  42. metadata:
  43. type: object
  44. spec:
  45. description: VaultDynamicSecretSpec defines the desired spec of VaultDynamicSecret.
  46. properties:
  47. allowEmptyResponse:
  48. default: false
  49. description: Do not fail if no secrets are found. Useful for requests
  50. where no data is expected.
  51. type: boolean
  52. controller:
  53. description: |-
  54. Used to select the correct ESO controller (think: ingress.ingressClassName)
  55. The ESO controller is instantiated with a specific controller name and filters VDS based on this property
  56. type: string
  57. method:
  58. description: Vault API method to use (GET/POST/other)
  59. type: string
  60. parameters:
  61. description: Parameters to pass to Vault write (for non-GET methods)
  62. x-kubernetes-preserve-unknown-fields: true
  63. path:
  64. description: Vault path to obtain the dynamic secret from
  65. type: string
  66. provider:
  67. description: Vault provider common spec
  68. properties:
  69. auth:
  70. description: Auth configures how secret-manager authenticates
  71. with the Vault server.
  72. properties:
  73. appRole:
  74. description: |-
  75. AppRole authenticates with Vault using the App Role auth mechanism,
  76. with the role and secret stored in a Kubernetes Secret resource.
  77. properties:
  78. path:
  79. default: approle
  80. description: |-
  81. Path where the App Role authentication backend is mounted
  82. in Vault, e.g: "approle"
  83. type: string
  84. roleId:
  85. description: |-
  86. RoleID configured in the App Role authentication backend when setting
  87. up the authentication backend in Vault.
  88. type: string
  89. roleRef:
  90. description: |-
  91. Reference to a key in a Secret that contains the App Role ID used
  92. to authenticate with Vault.
  93. The `key` field must be specified and denotes which entry within the Secret
  94. resource is used as the app role id.
  95. properties:
  96. key:
  97. description: |-
  98. A key in the referenced Secret.
  99. Some instances of this field may be defaulted, in others it may be required.
  100. maxLength: 253
  101. minLength: 1
  102. pattern: ^[-._a-zA-Z0-9]+$
  103. type: string
  104. name:
  105. description: The name of the Secret resource being
  106. referred to.
  107. maxLength: 253
  108. minLength: 1
  109. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  110. type: string
  111. namespace:
  112. description: |-
  113. The namespace of the Secret resource being referred to.
  114. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  115. maxLength: 63
  116. minLength: 1
  117. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  118. type: string
  119. type: object
  120. secretRef:
  121. description: |-
  122. Reference to a key in a Secret that contains the App Role secret used
  123. to authenticate with Vault.
  124. The `key` field must be specified and denotes which entry within the Secret
  125. resource is used as the app role secret.
  126. properties:
  127. key:
  128. description: |-
  129. A key in the referenced Secret.
  130. Some instances of this field may be defaulted, in others it may be required.
  131. maxLength: 253
  132. minLength: 1
  133. pattern: ^[-._a-zA-Z0-9]+$
  134. type: string
  135. name:
  136. description: The name of the Secret resource being
  137. referred to.
  138. maxLength: 253
  139. minLength: 1
  140. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  141. type: string
  142. namespace:
  143. description: |-
  144. The namespace of the Secret resource being referred to.
  145. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  146. maxLength: 63
  147. minLength: 1
  148. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  149. type: string
  150. type: object
  151. required:
  152. - path
  153. - secretRef
  154. type: object
  155. cert:
  156. description: |-
  157. Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate
  158. Cert authentication method
  159. properties:
  160. clientCert:
  161. description: |-
  162. ClientCert is a certificate to authenticate using the Cert Vault
  163. authentication method
  164. properties:
  165. key:
  166. description: |-
  167. A key in the referenced Secret.
  168. Some instances of this field may be defaulted, in others it may be required.
  169. maxLength: 253
  170. minLength: 1
  171. pattern: ^[-._a-zA-Z0-9]+$
  172. type: string
  173. name:
  174. description: The name of the Secret resource being
  175. referred to.
  176. maxLength: 253
  177. minLength: 1
  178. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  179. type: string
  180. namespace:
  181. description: |-
  182. The namespace of the Secret resource being referred to.
  183. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  184. maxLength: 63
  185. minLength: 1
  186. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  187. type: string
  188. type: object
  189. path:
  190. default: cert
  191. description: |-
  192. Path where the Certificate authentication backend is mounted
  193. in Vault, e.g: "cert"
  194. type: string
  195. secretRef:
  196. description: |-
  197. SecretRef to a key in a Secret resource containing client private key to
  198. authenticate with Vault using the Cert authentication method
  199. properties:
  200. key:
  201. description: |-
  202. A key in the referenced Secret.
  203. Some instances of this field may be defaulted, in others it may be required.
  204. maxLength: 253
  205. minLength: 1
  206. pattern: ^[-._a-zA-Z0-9]+$
  207. type: string
  208. name:
  209. description: The name of the Secret resource being
  210. referred to.
  211. maxLength: 253
  212. minLength: 1
  213. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  214. type: string
  215. namespace:
  216. description: |-
  217. The namespace of the Secret resource being referred to.
  218. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  219. maxLength: 63
  220. minLength: 1
  221. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  222. type: string
  223. type: object
  224. type: object
  225. gcp:
  226. description: |-
  227. Gcp authenticates with Vault using Google Cloud Platform authentication method
  228. GCP authentication method
  229. properties:
  230. location:
  231. description: Location optionally defines a location/region
  232. for the secret
  233. type: string
  234. path:
  235. default: gcp
  236. description: 'Path where the GCP auth method is enabled
  237. in Vault, e.g: "gcp"'
  238. type: string
  239. projectID:
  240. description: Project ID of the Google Cloud Platform project
  241. type: string
  242. role:
  243. description: Vault Role. In Vault, a role describes an
  244. identity with a set of permissions, groups, or policies
  245. you want to attach to a user of the secrets engine.
  246. type: string
  247. secretRef:
  248. description: Specify credentials in a Secret object
  249. properties:
  250. secretAccessKeySecretRef:
  251. description: The SecretAccessKey is used for authentication
  252. properties:
  253. key:
  254. description: |-
  255. A key in the referenced Secret.
  256. Some instances of this field may be defaulted, in others it may be required.
  257. maxLength: 253
  258. minLength: 1
  259. pattern: ^[-._a-zA-Z0-9]+$
  260. type: string
  261. name:
  262. description: The name of the Secret resource being
  263. referred to.
  264. maxLength: 253
  265. minLength: 1
  266. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  267. type: string
  268. namespace:
  269. description: |-
  270. The namespace of the Secret resource being referred to.
  271. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  272. maxLength: 63
  273. minLength: 1
  274. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  275. type: string
  276. type: object
  277. type: object
  278. serviceAccountRef:
  279. description: ServiceAccountRef to a service account for
  280. impersonation
  281. properties:
  282. audiences:
  283. description: |-
  284. Audience specifies the `aud` claim for the service account token
  285. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  286. then this audiences will be appended to the list
  287. items:
  288. type: string
  289. type: array
  290. name:
  291. description: The name of the ServiceAccount resource
  292. being referred to.
  293. maxLength: 253
  294. minLength: 1
  295. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  296. type: string
  297. namespace:
  298. description: |-
  299. Namespace of the resource being referred to.
  300. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  301. maxLength: 63
  302. minLength: 1
  303. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  304. type: string
  305. required:
  306. - name
  307. type: object
  308. workloadIdentity:
  309. description: Specify a service account with Workload Identity
  310. properties:
  311. clusterLocation:
  312. description: |-
  313. ClusterLocation is the location of the cluster
  314. If not specified, it fetches information from the metadata server
  315. type: string
  316. clusterName:
  317. description: |-
  318. ClusterName is the name of the cluster
  319. If not specified, it fetches information from the metadata server
  320. type: string
  321. clusterProjectID:
  322. description: |-
  323. ClusterProjectID is the project ID of the cluster
  324. If not specified, it fetches information from the metadata server
  325. type: string
  326. serviceAccountRef:
  327. description: ServiceAccountSelector is a reference
  328. to a ServiceAccount resource.
  329. properties:
  330. audiences:
  331. description: |-
  332. Audience specifies the `aud` claim for the service account token
  333. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  334. then this audiences will be appended to the list
  335. items:
  336. type: string
  337. type: array
  338. name:
  339. description: The name of the ServiceAccount resource
  340. being referred to.
  341. maxLength: 253
  342. minLength: 1
  343. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  344. type: string
  345. namespace:
  346. description: |-
  347. Namespace of the resource being referred to.
  348. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  349. maxLength: 63
  350. minLength: 1
  351. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  352. type: string
  353. required:
  354. - name
  355. type: object
  356. required:
  357. - serviceAccountRef
  358. type: object
  359. required:
  360. - role
  361. type: object
  362. iam:
  363. description: |-
  364. Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials
  365. AWS IAM authentication method
  366. properties:
  367. externalID:
  368. description: AWS External ID set on assumed IAM roles
  369. type: string
  370. jwt:
  371. description: Specify a service account with IRSA enabled
  372. properties:
  373. serviceAccountRef:
  374. description: ServiceAccountSelector is a reference
  375. to a ServiceAccount resource.
  376. properties:
  377. audiences:
  378. description: |-
  379. Audience specifies the `aud` claim for the service account token
  380. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  381. then this audiences will be appended to the list
  382. items:
  383. type: string
  384. type: array
  385. name:
  386. description: The name of the ServiceAccount resource
  387. being referred to.
  388. maxLength: 253
  389. minLength: 1
  390. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  391. type: string
  392. namespace:
  393. description: |-
  394. Namespace of the resource being referred to.
  395. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  396. maxLength: 63
  397. minLength: 1
  398. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  399. type: string
  400. required:
  401. - name
  402. type: object
  403. type: object
  404. path:
  405. description: 'Path where the AWS auth method is enabled
  406. in Vault, e.g: "aws"'
  407. type: string
  408. region:
  409. description: AWS region
  410. type: string
  411. role:
  412. description: This is the AWS role to be assumed before
  413. talking to vault
  414. type: string
  415. secretRef:
  416. description: Specify credentials in a Secret object
  417. properties:
  418. accessKeyIDSecretRef:
  419. description: The AccessKeyID is used for authentication
  420. properties:
  421. key:
  422. description: |-
  423. A key in the referenced Secret.
  424. Some instances of this field may be defaulted, in others it may be required.
  425. maxLength: 253
  426. minLength: 1
  427. pattern: ^[-._a-zA-Z0-9]+$
  428. type: string
  429. name:
  430. description: The name of the Secret resource being
  431. referred to.
  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. namespace:
  437. description: |-
  438. The namespace of the Secret resource being referred to.
  439. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  440. maxLength: 63
  441. minLength: 1
  442. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  443. type: string
  444. type: object
  445. secretAccessKeySecretRef:
  446. description: The SecretAccessKey is used for authentication
  447. properties:
  448. key:
  449. description: |-
  450. A key in the referenced Secret.
  451. Some instances of this field may be defaulted, in others it may be required.
  452. maxLength: 253
  453. minLength: 1
  454. pattern: ^[-._a-zA-Z0-9]+$
  455. type: string
  456. name:
  457. description: The name of the Secret resource being
  458. referred to.
  459. maxLength: 253
  460. minLength: 1
  461. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  462. type: string
  463. namespace:
  464. description: |-
  465. The namespace of the Secret resource being referred to.
  466. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  467. maxLength: 63
  468. minLength: 1
  469. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  470. type: string
  471. type: object
  472. sessionTokenSecretRef:
  473. description: |-
  474. The SessionToken used for authentication
  475. This must be defined if AccessKeyID and SecretAccessKey are temporary credentials
  476. see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
  477. properties:
  478. key:
  479. description: |-
  480. A key in the referenced Secret.
  481. Some instances of this field may be defaulted, in others it may be required.
  482. maxLength: 253
  483. minLength: 1
  484. pattern: ^[-._a-zA-Z0-9]+$
  485. type: string
  486. name:
  487. description: The name of the Secret resource being
  488. referred to.
  489. maxLength: 253
  490. minLength: 1
  491. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  492. type: string
  493. namespace:
  494. description: |-
  495. The namespace of the Secret resource being referred to.
  496. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  497. maxLength: 63
  498. minLength: 1
  499. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  500. type: string
  501. type: object
  502. type: object
  503. vaultAwsIamServerID:
  504. description: 'X-Vault-AWS-IAM-Server-ID is an additional
  505. header used by Vault IAM auth method to mitigate against
  506. different types of replay attacks. More details here:
  507. https://developer.hashicorp.com/vault/docs/auth/aws'
  508. type: string
  509. vaultRole:
  510. description: Vault Role. In vault, a role describes an
  511. identity with a set of permissions, groups, or policies
  512. you want to attach a user of the secrets engine
  513. type: string
  514. required:
  515. - vaultRole
  516. type: object
  517. jwt:
  518. description: |-
  519. Jwt authenticates with Vault by passing role and JWT token using the
  520. JWT/OIDC authentication method
  521. properties:
  522. kubernetesServiceAccountToken:
  523. description: |-
  524. Optional ServiceAccountToken specifies the Kubernetes service account for which to request
  525. a token for with the `TokenRequest` API.
  526. properties:
  527. audiences:
  528. description: |-
  529. Optional audiences field that will be used to request a temporary Kubernetes service
  530. account token for the service account referenced by `serviceAccountRef`.
  531. Defaults to a single audience `vault` it not specified.
  532. Deprecated: use serviceAccountRef.Audiences instead
  533. items:
  534. type: string
  535. type: array
  536. expirationSeconds:
  537. description: |-
  538. Optional expiration time in seconds that will be used to request a temporary
  539. Kubernetes service account token for the service account referenced by
  540. `serviceAccountRef`.
  541. Deprecated: this will be removed in the future.
  542. Defaults to 10 minutes.
  543. format: int64
  544. type: integer
  545. serviceAccountRef:
  546. description: Service account field containing the
  547. name of a kubernetes ServiceAccount.
  548. properties:
  549. audiences:
  550. description: |-
  551. Audience specifies the `aud` claim for the service account token
  552. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  553. then this audiences will be appended to the list
  554. items:
  555. type: string
  556. type: array
  557. name:
  558. description: The name of the ServiceAccount resource
  559. being referred to.
  560. maxLength: 253
  561. minLength: 1
  562. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  563. type: string
  564. namespace:
  565. description: |-
  566. Namespace of the resource being referred to.
  567. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  568. maxLength: 63
  569. minLength: 1
  570. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  571. type: string
  572. required:
  573. - name
  574. type: object
  575. required:
  576. - serviceAccountRef
  577. type: object
  578. path:
  579. default: jwt
  580. description: |-
  581. Path where the JWT authentication backend is mounted
  582. in Vault, e.g: "jwt"
  583. type: string
  584. role:
  585. description: |-
  586. Role is a JWT role to authenticate using the JWT/OIDC Vault
  587. authentication method
  588. type: string
  589. secretRef:
  590. description: |-
  591. Optional SecretRef that refers to a key in a Secret resource containing JWT token to
  592. authenticate with Vault using the JWT/OIDC authentication method.
  593. properties:
  594. key:
  595. description: |-
  596. A key in the referenced Secret.
  597. Some instances of this field may be defaulted, in others it may be required.
  598. maxLength: 253
  599. minLength: 1
  600. pattern: ^[-._a-zA-Z0-9]+$
  601. type: string
  602. name:
  603. description: The name of the Secret resource being
  604. referred to.
  605. maxLength: 253
  606. minLength: 1
  607. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  608. type: string
  609. namespace:
  610. description: |-
  611. The namespace of the Secret resource being referred to.
  612. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  613. maxLength: 63
  614. minLength: 1
  615. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  616. type: string
  617. type: object
  618. required:
  619. - path
  620. type: object
  621. kubernetes:
  622. description: |-
  623. Kubernetes authenticates with Vault by passing the ServiceAccount
  624. token stored in the named Secret resource to the Vault server.
  625. properties:
  626. mountPath:
  627. default: kubernetes
  628. description: |-
  629. Path where the Kubernetes authentication backend is mounted in Vault, e.g:
  630. "kubernetes"
  631. type: string
  632. role:
  633. description: |-
  634. A required field containing the Vault Role to assume. A Role binds a
  635. Kubernetes ServiceAccount with a set of Vault policies.
  636. type: string
  637. secretRef:
  638. description: |-
  639. Optional secret field containing a Kubernetes ServiceAccount JWT used
  640. for authenticating with Vault. If a name is specified without a key,
  641. `token` is the default. If one is not specified, the one bound to
  642. the controller will be used.
  643. properties:
  644. key:
  645. description: |-
  646. A key in the referenced Secret.
  647. Some instances of this field may be defaulted, in others it may be required.
  648. maxLength: 253
  649. minLength: 1
  650. pattern: ^[-._a-zA-Z0-9]+$
  651. type: string
  652. name:
  653. description: The name of the Secret resource being
  654. referred to.
  655. maxLength: 253
  656. minLength: 1
  657. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  658. type: string
  659. namespace:
  660. description: |-
  661. The namespace of the Secret resource being referred to.
  662. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  663. maxLength: 63
  664. minLength: 1
  665. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  666. type: string
  667. type: object
  668. serviceAccountRef:
  669. description: |-
  670. Optional service account field containing the name of a kubernetes ServiceAccount.
  671. If the service account is specified, the service account secret token JWT will be used
  672. for authenticating with Vault. If the service account selector is not supplied,
  673. the secretRef will be used instead.
  674. properties:
  675. audiences:
  676. description: |-
  677. Audience specifies the `aud` claim for the service account token
  678. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  679. then this audiences will be appended to the list
  680. items:
  681. type: string
  682. type: array
  683. name:
  684. description: The name of the ServiceAccount resource
  685. being referred to.
  686. maxLength: 253
  687. minLength: 1
  688. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  689. type: string
  690. namespace:
  691. description: |-
  692. Namespace of the resource being referred to.
  693. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  694. maxLength: 63
  695. minLength: 1
  696. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  697. type: string
  698. required:
  699. - name
  700. type: object
  701. required:
  702. - mountPath
  703. - role
  704. type: object
  705. ldap:
  706. description: |-
  707. Ldap authenticates with Vault by passing username/password pair using
  708. the LDAP authentication method
  709. properties:
  710. path:
  711. default: ldap
  712. description: |-
  713. Path where the LDAP authentication backend is mounted
  714. in Vault, e.g: "ldap"
  715. type: string
  716. secretRef:
  717. description: |-
  718. SecretRef to a key in a Secret resource containing password for the LDAP
  719. user used to authenticate with Vault using the LDAP authentication
  720. method
  721. properties:
  722. key:
  723. description: |-
  724. A key in the referenced Secret.
  725. Some instances of this field may be defaulted, in others it may be required.
  726. maxLength: 253
  727. minLength: 1
  728. pattern: ^[-._a-zA-Z0-9]+$
  729. type: string
  730. name:
  731. description: The name of the Secret resource being
  732. referred to.
  733. maxLength: 253
  734. minLength: 1
  735. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  736. type: string
  737. namespace:
  738. description: |-
  739. The namespace of the Secret resource being referred to.
  740. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  741. maxLength: 63
  742. minLength: 1
  743. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  744. type: string
  745. type: object
  746. username:
  747. description: |-
  748. Username is an LDAP username used to authenticate using the LDAP Vault
  749. authentication method
  750. type: string
  751. required:
  752. - path
  753. - username
  754. type: object
  755. namespace:
  756. description: |-
  757. Name of the vault namespace to authenticate to. This can be different than the namespace your secret is in.
  758. Namespaces is a set of features within Vault Enterprise that allows
  759. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  760. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  761. This will default to Vault.Namespace field if set, or empty otherwise
  762. type: string
  763. tokenSecretRef:
  764. description: TokenSecretRef authenticates with Vault by presenting
  765. a token.
  766. properties:
  767. key:
  768. description: |-
  769. A key in the referenced Secret.
  770. Some instances of this field may be defaulted, in others it may be required.
  771. maxLength: 253
  772. minLength: 1
  773. pattern: ^[-._a-zA-Z0-9]+$
  774. type: string
  775. name:
  776. description: The name of the Secret resource being referred
  777. to.
  778. maxLength: 253
  779. minLength: 1
  780. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  781. type: string
  782. namespace:
  783. description: |-
  784. The namespace of the Secret resource being referred to.
  785. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  786. maxLength: 63
  787. minLength: 1
  788. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  789. type: string
  790. type: object
  791. userPass:
  792. description: UserPass authenticates with Vault by passing
  793. username/password pair
  794. properties:
  795. path:
  796. default: userpass
  797. description: |-
  798. Path where the UserPassword authentication backend is mounted
  799. in Vault, e.g: "userpass"
  800. type: string
  801. secretRef:
  802. description: |-
  803. SecretRef to a key in a Secret resource containing password for the
  804. user used to authenticate with Vault using the UserPass authentication
  805. method
  806. properties:
  807. key:
  808. description: |-
  809. A key in the referenced Secret.
  810. Some instances of this field may be defaulted, in others it may be required.
  811. maxLength: 253
  812. minLength: 1
  813. pattern: ^[-._a-zA-Z0-9]+$
  814. type: string
  815. name:
  816. description: The name of the Secret resource being
  817. referred to.
  818. maxLength: 253
  819. minLength: 1
  820. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  821. type: string
  822. namespace:
  823. description: |-
  824. The namespace of the Secret resource being referred to.
  825. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  826. maxLength: 63
  827. minLength: 1
  828. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  829. type: string
  830. type: object
  831. username:
  832. description: |-
  833. Username is a username used to authenticate using the UserPass Vault
  834. authentication method
  835. type: string
  836. required:
  837. - path
  838. - username
  839. type: object
  840. type: object
  841. caBundle:
  842. description: |-
  843. PEM encoded CA bundle used to validate Vault server certificate. Only used
  844. if the Server URL is using HTTPS protocol. This parameter is ignored for
  845. plain HTTP protocol connection. If not set the system root certificates
  846. are used to validate the TLS connection.
  847. format: byte
  848. type: string
  849. caProvider:
  850. description: The provider for the CA bundle to use to validate
  851. Vault server certificate.
  852. properties:
  853. key:
  854. description: The key where the CA certificate can be found
  855. in the Secret or ConfigMap.
  856. maxLength: 253
  857. minLength: 1
  858. pattern: ^[-._a-zA-Z0-9]+$
  859. type: string
  860. name:
  861. description: The name of the object located at the provider
  862. type.
  863. maxLength: 253
  864. minLength: 1
  865. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  866. type: string
  867. namespace:
  868. description: |-
  869. The namespace the Provider type is in.
  870. Can only be defined when used in a ClusterSecretStore.
  871. maxLength: 63
  872. minLength: 1
  873. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  874. type: string
  875. type:
  876. description: The type of provider to use such as "Secret",
  877. or "ConfigMap".
  878. enum:
  879. - Secret
  880. - ConfigMap
  881. type: string
  882. required:
  883. - name
  884. - type
  885. type: object
  886. checkAndSet:
  887. description: |-
  888. CheckAndSet defines the Check-And-Set (CAS) settings for PushSecret operations.
  889. Only applies to Vault KV v2 stores. When enabled, write operations must include
  890. the current version of the secret to prevent unintentional overwrites.
  891. properties:
  892. required:
  893. description: |-
  894. Required when true, all write operations must include a check-and-set parameter.
  895. This helps prevent unintentional overwrites of secrets.
  896. type: boolean
  897. type: object
  898. forwardInconsistent:
  899. description: |-
  900. ForwardInconsistent tells Vault to forward read-after-write requests to the Vault
  901. leader instead of simply retrying within a loop. This can increase performance if
  902. the option is enabled serverside.
  903. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header
  904. type: boolean
  905. headers:
  906. additionalProperties:
  907. type: string
  908. description: Headers to be added in Vault request
  909. type: object
  910. namespace:
  911. description: |-
  912. Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows
  913. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  914. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  915. type: string
  916. path:
  917. description: |-
  918. Path is the mount path of the Vault KV backend endpoint, e.g:
  919. "secret". The v2 KV secret engine version specific "/data" path suffix
  920. for fetching secrets from Vault is optional and will be appended
  921. if not present in specified path.
  922. type: string
  923. readYourWrites:
  924. description: |-
  925. ReadYourWrites ensures isolated read-after-write semantics by
  926. providing discovered cluster replication states in each request.
  927. More information about eventual consistency in Vault can be found here
  928. https://www.vaultproject.io/docs/enterprise/consistency
  929. type: boolean
  930. server:
  931. description: 'Server is the connection address for the Vault server,
  932. e.g: "https://vault.example.com:8200".'
  933. type: string
  934. tls:
  935. description: |-
  936. The configuration used for client side related TLS communication, when the Vault server
  937. requires mutual authentication. Only used if the Server URL is using HTTPS protocol.
  938. This parameter is ignored for plain HTTP protocol connection.
  939. It's worth noting this configuration is different from the "TLS certificates auth method",
  940. which is available under the `auth.cert` section.
  941. properties:
  942. certSecretRef:
  943. description: |-
  944. CertSecretRef is a certificate added to the transport layer
  945. when communicating with the Vault server.
  946. If no key for the Secret is specified, external-secret will default to 'tls.crt'.
  947. properties:
  948. key:
  949. description: |-
  950. A key in the referenced Secret.
  951. Some instances of this field may be defaulted, in others it may be required.
  952. maxLength: 253
  953. minLength: 1
  954. pattern: ^[-._a-zA-Z0-9]+$
  955. type: string
  956. name:
  957. description: The name of the Secret resource being referred
  958. to.
  959. maxLength: 253
  960. minLength: 1
  961. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  962. type: string
  963. namespace:
  964. description: |-
  965. The namespace of the Secret resource being referred to.
  966. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  967. maxLength: 63
  968. minLength: 1
  969. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  970. type: string
  971. type: object
  972. keySecretRef:
  973. description: |-
  974. KeySecretRef to a key in a Secret resource containing client private key
  975. added to the transport layer when communicating with the Vault server.
  976. If no key for the Secret is specified, external-secret will default to 'tls.key'.
  977. properties:
  978. key:
  979. description: |-
  980. A key in the referenced Secret.
  981. Some instances of this field may be defaulted, in others it may be required.
  982. maxLength: 253
  983. minLength: 1
  984. pattern: ^[-._a-zA-Z0-9]+$
  985. type: string
  986. name:
  987. description: The name of the Secret resource being referred
  988. to.
  989. maxLength: 253
  990. minLength: 1
  991. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  992. type: string
  993. namespace:
  994. description: |-
  995. The namespace of the Secret resource being referred to.
  996. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  997. maxLength: 63
  998. minLength: 1
  999. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1000. type: string
  1001. type: object
  1002. type: object
  1003. version:
  1004. default: v2
  1005. description: |-
  1006. Version is the Vault KV secret engine version. This can be either "v1" or
  1007. "v2". Version defaults to "v2".
  1008. enum:
  1009. - v1
  1010. - v2
  1011. type: string
  1012. required:
  1013. - server
  1014. type: object
  1015. resultType:
  1016. default: Data
  1017. description: |-
  1018. Result type defines which data is returned from the generator.
  1019. By default, it is the "data" section of the Vault API response.
  1020. When using e.g. /auth/token/create the "data" section is empty but
  1021. the "auth" section contains the generated token.
  1022. Please refer to the vault docs regarding the result data structure.
  1023. Additionally, accessing the raw response is possibly by using "Raw" result type.
  1024. enum:
  1025. - Data
  1026. - Auth
  1027. - Raw
  1028. type: string
  1029. retrySettings:
  1030. description: Used to configure http retries if failed
  1031. properties:
  1032. maxRetries:
  1033. format: int32
  1034. type: integer
  1035. retryInterval:
  1036. type: string
  1037. type: object
  1038. required:
  1039. - path
  1040. - provider
  1041. type: object
  1042. type: object
  1043. served: true
  1044. storage: true
  1045. subresources:
  1046. status: {}