generators.external-secrets.io_vaultdynamicsecrets.yaml 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052
  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. vaultRole:
  225. description: VaultRole specifies the Vault role to use
  226. for TLS certificate authentication.
  227. type: string
  228. type: object
  229. gcp:
  230. description: |-
  231. Gcp authenticates with Vault using Google Cloud Platform authentication method
  232. GCP authentication method
  233. properties:
  234. location:
  235. description: Location optionally defines a location/region
  236. for the secret
  237. type: string
  238. path:
  239. default: gcp
  240. description: 'Path where the GCP auth method is enabled
  241. in Vault, e.g: "gcp"'
  242. type: string
  243. projectID:
  244. description: Project ID of the Google Cloud Platform project
  245. type: string
  246. role:
  247. description: Vault Role. In Vault, a role describes an
  248. identity with a set of permissions, groups, or policies
  249. you want to attach to a user of the secrets engine.
  250. type: string
  251. secretRef:
  252. description: Specify credentials in a Secret object
  253. properties:
  254. secretAccessKeySecretRef:
  255. description: The SecretAccessKey is used for authentication
  256. properties:
  257. key:
  258. description: |-
  259. A key in the referenced Secret.
  260. Some instances of this field may be defaulted, in others it may be required.
  261. maxLength: 253
  262. minLength: 1
  263. pattern: ^[-._a-zA-Z0-9]+$
  264. type: string
  265. name:
  266. description: The name of the Secret resource being
  267. referred to.
  268. maxLength: 253
  269. minLength: 1
  270. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  271. type: string
  272. namespace:
  273. description: |-
  274. The namespace of the Secret resource being referred to.
  275. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  276. maxLength: 63
  277. minLength: 1
  278. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  279. type: string
  280. type: object
  281. type: object
  282. serviceAccountRef:
  283. description: ServiceAccountRef to a service account for
  284. impersonation
  285. properties:
  286. audiences:
  287. description: |-
  288. Audience specifies the `aud` claim for the service account token
  289. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  290. then this audiences will be appended to the list
  291. items:
  292. type: string
  293. type: array
  294. name:
  295. description: The name of the ServiceAccount resource
  296. being referred to.
  297. maxLength: 253
  298. minLength: 1
  299. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  300. type: string
  301. namespace:
  302. description: |-
  303. Namespace of the resource being referred to.
  304. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  305. maxLength: 63
  306. minLength: 1
  307. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  308. type: string
  309. required:
  310. - name
  311. type: object
  312. workloadIdentity:
  313. description: Specify a service account with Workload Identity
  314. properties:
  315. clusterLocation:
  316. description: |-
  317. ClusterLocation is the location of the cluster
  318. If not specified, it fetches information from the metadata server
  319. type: string
  320. clusterName:
  321. description: |-
  322. ClusterName is the name of the cluster
  323. If not specified, it fetches information from the metadata server
  324. type: string
  325. clusterProjectID:
  326. description: |-
  327. ClusterProjectID is the project ID of the cluster
  328. If not specified, it fetches information from the metadata server
  329. type: string
  330. serviceAccountRef:
  331. description: ServiceAccountSelector is a reference
  332. to a ServiceAccount resource.
  333. properties:
  334. audiences:
  335. description: |-
  336. Audience specifies the `aud` claim for the service account token
  337. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  338. then this audiences will be appended to the list
  339. items:
  340. type: string
  341. type: array
  342. name:
  343. description: The name of the ServiceAccount resource
  344. being referred to.
  345. maxLength: 253
  346. minLength: 1
  347. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  348. type: string
  349. namespace:
  350. description: |-
  351. Namespace of the resource being referred to.
  352. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  353. maxLength: 63
  354. minLength: 1
  355. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  356. type: string
  357. required:
  358. - name
  359. type: object
  360. required:
  361. - serviceAccountRef
  362. type: object
  363. required:
  364. - role
  365. type: object
  366. iam:
  367. description: |-
  368. Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials
  369. AWS IAM authentication method
  370. properties:
  371. externalID:
  372. description: AWS External ID set on assumed IAM roles
  373. type: string
  374. jwt:
  375. description: Specify a service account with IRSA enabled
  376. properties:
  377. serviceAccountRef:
  378. description: ServiceAccountSelector is a reference
  379. to a ServiceAccount resource.
  380. properties:
  381. audiences:
  382. description: |-
  383. Audience specifies the `aud` claim for the service account token
  384. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  385. then this audiences will be appended to the list
  386. items:
  387. type: string
  388. type: array
  389. name:
  390. description: The name of the ServiceAccount resource
  391. being referred to.
  392. maxLength: 253
  393. minLength: 1
  394. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  395. type: string
  396. namespace:
  397. description: |-
  398. Namespace of the resource being referred to.
  399. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  400. maxLength: 63
  401. minLength: 1
  402. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  403. type: string
  404. required:
  405. - name
  406. type: object
  407. type: object
  408. path:
  409. description: 'Path where the AWS auth method is enabled
  410. in Vault, e.g: "aws"'
  411. type: string
  412. region:
  413. description: AWS region
  414. type: string
  415. role:
  416. description: This is the AWS role to be assumed before
  417. talking to vault
  418. type: string
  419. secretRef:
  420. description: Specify credentials in a Secret object
  421. properties:
  422. accessKeyIDSecretRef:
  423. description: The AccessKeyID is used for authentication
  424. properties:
  425. key:
  426. description: |-
  427. A key in the referenced Secret.
  428. Some instances of this field may be defaulted, in others it may be required.
  429. maxLength: 253
  430. minLength: 1
  431. pattern: ^[-._a-zA-Z0-9]+$
  432. type: string
  433. name:
  434. description: The name of the Secret resource being
  435. referred to.
  436. maxLength: 253
  437. minLength: 1
  438. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  439. type: string
  440. namespace:
  441. description: |-
  442. The namespace of the Secret resource being referred to.
  443. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  444. maxLength: 63
  445. minLength: 1
  446. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  447. type: string
  448. type: object
  449. secretAccessKeySecretRef:
  450. description: The SecretAccessKey is used for authentication
  451. properties:
  452. key:
  453. description: |-
  454. A key in the referenced Secret.
  455. Some instances of this field may be defaulted, in others it may be required.
  456. maxLength: 253
  457. minLength: 1
  458. pattern: ^[-._a-zA-Z0-9]+$
  459. type: string
  460. name:
  461. description: The name of the Secret resource being
  462. referred to.
  463. maxLength: 253
  464. minLength: 1
  465. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  466. type: string
  467. namespace:
  468. description: |-
  469. The namespace of the Secret resource being referred to.
  470. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  471. maxLength: 63
  472. minLength: 1
  473. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  474. type: string
  475. type: object
  476. sessionTokenSecretRef:
  477. description: |-
  478. The SessionToken used for authentication
  479. This must be defined if AccessKeyID and SecretAccessKey are temporary credentials
  480. see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
  481. properties:
  482. key:
  483. description: |-
  484. A key in the referenced Secret.
  485. Some instances of this field may be defaulted, in others it may be required.
  486. maxLength: 253
  487. minLength: 1
  488. pattern: ^[-._a-zA-Z0-9]+$
  489. type: string
  490. name:
  491. description: The name of the Secret resource being
  492. referred to.
  493. maxLength: 253
  494. minLength: 1
  495. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  496. type: string
  497. namespace:
  498. description: |-
  499. The namespace of the Secret resource being referred to.
  500. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  501. maxLength: 63
  502. minLength: 1
  503. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  504. type: string
  505. type: object
  506. type: object
  507. vaultAwsIamServerID:
  508. description: 'X-Vault-AWS-IAM-Server-ID is an additional
  509. header used by Vault IAM auth method to mitigate against
  510. different types of replay attacks. More details here:
  511. https://developer.hashicorp.com/vault/docs/auth/aws'
  512. type: string
  513. vaultRole:
  514. description: Vault Role. In vault, a role describes an
  515. identity with a set of permissions, groups, or policies
  516. you want to attach a user of the secrets engine
  517. type: string
  518. required:
  519. - vaultRole
  520. type: object
  521. jwt:
  522. description: |-
  523. Jwt authenticates with Vault by passing role and JWT token using the
  524. JWT/OIDC authentication method
  525. properties:
  526. kubernetesServiceAccountToken:
  527. description: |-
  528. Optional ServiceAccountToken specifies the Kubernetes service account for which to request
  529. a token for with the `TokenRequest` API.
  530. properties:
  531. audiences:
  532. description: |-
  533. Optional audiences field that will be used to request a temporary Kubernetes service
  534. account token for the service account referenced by `serviceAccountRef`.
  535. Defaults to a single audience `vault` it not specified.
  536. Deprecated: use serviceAccountRef.Audiences instead
  537. items:
  538. type: string
  539. type: array
  540. expirationSeconds:
  541. description: |-
  542. Optional expiration time in seconds that will be used to request a temporary
  543. Kubernetes service account token for the service account referenced by
  544. `serviceAccountRef`.
  545. Deprecated: this will be removed in the future.
  546. Defaults to 10 minutes.
  547. format: int64
  548. type: integer
  549. serviceAccountRef:
  550. description: Service account field containing the
  551. name of a kubernetes ServiceAccount.
  552. properties:
  553. audiences:
  554. description: |-
  555. Audience specifies the `aud` claim for the service account token
  556. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  557. then this audiences will be appended to the list
  558. items:
  559. type: string
  560. type: array
  561. name:
  562. description: The name of the ServiceAccount resource
  563. being referred to.
  564. maxLength: 253
  565. minLength: 1
  566. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  567. type: string
  568. namespace:
  569. description: |-
  570. Namespace of the resource being referred to.
  571. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  572. maxLength: 63
  573. minLength: 1
  574. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  575. type: string
  576. required:
  577. - name
  578. type: object
  579. required:
  580. - serviceAccountRef
  581. type: object
  582. path:
  583. default: jwt
  584. description: |-
  585. Path where the JWT authentication backend is mounted
  586. in Vault, e.g: "jwt"
  587. type: string
  588. role:
  589. description: |-
  590. Role is a JWT role to authenticate using the JWT/OIDC Vault
  591. authentication method
  592. type: string
  593. secretRef:
  594. description: |-
  595. Optional SecretRef that refers to a key in a Secret resource containing JWT token to
  596. authenticate with Vault using the JWT/OIDC authentication method.
  597. properties:
  598. key:
  599. description: |-
  600. A key in the referenced Secret.
  601. Some instances of this field may be defaulted, in others it may be required.
  602. maxLength: 253
  603. minLength: 1
  604. pattern: ^[-._a-zA-Z0-9]+$
  605. type: string
  606. name:
  607. description: The name of the Secret resource being
  608. referred to.
  609. maxLength: 253
  610. minLength: 1
  611. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  612. type: string
  613. namespace:
  614. description: |-
  615. The namespace of the Secret resource being referred to.
  616. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  617. maxLength: 63
  618. minLength: 1
  619. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  620. type: string
  621. type: object
  622. required:
  623. - path
  624. type: object
  625. kubernetes:
  626. description: |-
  627. Kubernetes authenticates with Vault by passing the ServiceAccount
  628. token stored in the named Secret resource to the Vault server.
  629. properties:
  630. mountPath:
  631. default: kubernetes
  632. description: |-
  633. Path where the Kubernetes authentication backend is mounted in Vault, e.g:
  634. "kubernetes"
  635. type: string
  636. role:
  637. description: |-
  638. A required field containing the Vault Role to assume. A Role binds a
  639. Kubernetes ServiceAccount with a set of Vault policies.
  640. type: string
  641. secretRef:
  642. description: |-
  643. Optional secret field containing a Kubernetes ServiceAccount JWT used
  644. for authenticating with Vault. If a name is specified without a key,
  645. `token` is the default. If one is not specified, the one bound to
  646. the controller will be used.
  647. properties:
  648. key:
  649. description: |-
  650. A key in the referenced Secret.
  651. Some instances of this field may be defaulted, in others it may be required.
  652. maxLength: 253
  653. minLength: 1
  654. pattern: ^[-._a-zA-Z0-9]+$
  655. type: string
  656. name:
  657. description: The name of the Secret resource being
  658. referred to.
  659. maxLength: 253
  660. minLength: 1
  661. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  662. type: string
  663. namespace:
  664. description: |-
  665. The namespace of the Secret resource being referred to.
  666. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  667. maxLength: 63
  668. minLength: 1
  669. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  670. type: string
  671. type: object
  672. serviceAccountRef:
  673. description: |-
  674. Optional service account field containing the name of a kubernetes ServiceAccount.
  675. If the service account is specified, the service account secret token JWT will be used
  676. for authenticating with Vault. If the service account selector is not supplied,
  677. the secretRef will be used instead.
  678. properties:
  679. audiences:
  680. description: |-
  681. Audience specifies the `aud` claim for the service account token
  682. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  683. then this audiences will be appended to the list
  684. items:
  685. type: string
  686. type: array
  687. name:
  688. description: The name of the ServiceAccount resource
  689. being referred to.
  690. maxLength: 253
  691. minLength: 1
  692. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  693. type: string
  694. namespace:
  695. description: |-
  696. Namespace of the resource being referred to.
  697. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  698. maxLength: 63
  699. minLength: 1
  700. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  701. type: string
  702. required:
  703. - name
  704. type: object
  705. required:
  706. - mountPath
  707. - role
  708. type: object
  709. ldap:
  710. description: |-
  711. Ldap authenticates with Vault by passing username/password pair using
  712. the LDAP authentication method
  713. properties:
  714. path:
  715. default: ldap
  716. description: |-
  717. Path where the LDAP authentication backend is mounted
  718. in Vault, e.g: "ldap"
  719. type: string
  720. secretRef:
  721. description: |-
  722. SecretRef to a key in a Secret resource containing password for the LDAP
  723. user used to authenticate with Vault using the LDAP authentication
  724. method
  725. properties:
  726. key:
  727. description: |-
  728. A key in the referenced Secret.
  729. Some instances of this field may be defaulted, in others it may be required.
  730. maxLength: 253
  731. minLength: 1
  732. pattern: ^[-._a-zA-Z0-9]+$
  733. type: string
  734. name:
  735. description: The name of the Secret resource being
  736. referred to.
  737. maxLength: 253
  738. minLength: 1
  739. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  740. type: string
  741. namespace:
  742. description: |-
  743. The namespace of the Secret resource being referred to.
  744. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  745. maxLength: 63
  746. minLength: 1
  747. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  748. type: string
  749. type: object
  750. username:
  751. description: |-
  752. Username is an LDAP username used to authenticate using the LDAP Vault
  753. authentication method
  754. type: string
  755. required:
  756. - path
  757. - username
  758. type: object
  759. namespace:
  760. description: |-
  761. Name of the vault namespace to authenticate to. This can be different than the namespace your secret is in.
  762. Namespaces is a set of features within Vault Enterprise that allows
  763. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  764. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  765. This will default to Vault.Namespace field if set, or empty otherwise
  766. type: string
  767. tokenSecretRef:
  768. description: TokenSecretRef authenticates with Vault by presenting
  769. a token.
  770. properties:
  771. key:
  772. description: |-
  773. A key in the referenced Secret.
  774. Some instances of this field may be defaulted, in others it may be required.
  775. maxLength: 253
  776. minLength: 1
  777. pattern: ^[-._a-zA-Z0-9]+$
  778. type: string
  779. name:
  780. description: The name of the Secret resource being referred
  781. to.
  782. maxLength: 253
  783. minLength: 1
  784. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  785. type: string
  786. namespace:
  787. description: |-
  788. The namespace of the Secret resource being referred to.
  789. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  790. maxLength: 63
  791. minLength: 1
  792. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  793. type: string
  794. type: object
  795. userPass:
  796. description: UserPass authenticates with Vault by passing
  797. username/password pair
  798. properties:
  799. path:
  800. default: userpass
  801. description: |-
  802. Path where the UserPassword authentication backend is mounted
  803. in Vault, e.g: "userpass"
  804. type: string
  805. secretRef:
  806. description: |-
  807. SecretRef to a key in a Secret resource containing password for the
  808. user used to authenticate with Vault using the UserPass authentication
  809. method
  810. properties:
  811. key:
  812. description: |-
  813. A key in the referenced Secret.
  814. Some instances of this field may be defaulted, in others it may be required.
  815. maxLength: 253
  816. minLength: 1
  817. pattern: ^[-._a-zA-Z0-9]+$
  818. type: string
  819. name:
  820. description: The name of the Secret resource being
  821. referred to.
  822. maxLength: 253
  823. minLength: 1
  824. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  825. type: string
  826. namespace:
  827. description: |-
  828. The namespace of the Secret resource being referred to.
  829. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  830. maxLength: 63
  831. minLength: 1
  832. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  833. type: string
  834. type: object
  835. username:
  836. description: |-
  837. Username is a username used to authenticate using the UserPass Vault
  838. authentication method
  839. type: string
  840. required:
  841. - path
  842. - username
  843. type: object
  844. type: object
  845. caBundle:
  846. description: |-
  847. PEM encoded CA bundle used to validate Vault server certificate. Only used
  848. if the Server URL is using HTTPS protocol. This parameter is ignored for
  849. plain HTTP protocol connection. If not set the system root certificates
  850. are used to validate the TLS connection.
  851. format: byte
  852. type: string
  853. caProvider:
  854. description: The provider for the CA bundle to use to validate
  855. Vault server certificate.
  856. properties:
  857. key:
  858. description: The key where the CA certificate can be found
  859. in the Secret or ConfigMap.
  860. maxLength: 253
  861. minLength: 1
  862. pattern: ^[-._a-zA-Z0-9]+$
  863. type: string
  864. name:
  865. description: The name of the object located at the provider
  866. type.
  867. maxLength: 253
  868. minLength: 1
  869. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  870. type: string
  871. namespace:
  872. description: |-
  873. The namespace the Provider type is in.
  874. Can only be defined when used in a ClusterSecretStore.
  875. maxLength: 63
  876. minLength: 1
  877. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  878. type: string
  879. type:
  880. description: The type of provider to use such as "Secret",
  881. or "ConfigMap".
  882. enum:
  883. - Secret
  884. - ConfigMap
  885. type: string
  886. required:
  887. - name
  888. - type
  889. type: object
  890. checkAndSet:
  891. description: |-
  892. CheckAndSet defines the Check-And-Set (CAS) settings for PushSecret operations.
  893. Only applies to Vault KV v2 stores. When enabled, write operations must include
  894. the current version of the secret to prevent unintentional overwrites.
  895. properties:
  896. required:
  897. description: |-
  898. Required when true, all write operations must include a check-and-set parameter.
  899. This helps prevent unintentional overwrites of secrets.
  900. type: boolean
  901. type: object
  902. forwardInconsistent:
  903. description: |-
  904. ForwardInconsistent tells Vault to forward read-after-write requests to the Vault
  905. leader instead of simply retrying within a loop. This can increase performance if
  906. the option is enabled serverside.
  907. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header
  908. type: boolean
  909. headers:
  910. additionalProperties:
  911. type: string
  912. description: Headers to be added in Vault request
  913. type: object
  914. namespace:
  915. description: |-
  916. Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows
  917. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  918. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  919. type: string
  920. path:
  921. description: |-
  922. Path is the mount path of the Vault KV backend endpoint, e.g:
  923. "secret". The v2 KV secret engine version specific "/data" path suffix
  924. for fetching secrets from Vault is optional and will be appended
  925. if not present in specified path.
  926. type: string
  927. readYourWrites:
  928. description: |-
  929. ReadYourWrites ensures isolated read-after-write semantics by
  930. providing discovered cluster replication states in each request.
  931. More information about eventual consistency in Vault can be found here
  932. https://www.vaultproject.io/docs/enterprise/consistency
  933. type: boolean
  934. server:
  935. description: 'Server is the connection address for the Vault server,
  936. e.g: "https://vault.example.com:8200".'
  937. type: string
  938. tls:
  939. description: |-
  940. The configuration used for client side related TLS communication, when the Vault server
  941. requires mutual authentication. Only used if the Server URL is using HTTPS protocol.
  942. This parameter is ignored for plain HTTP protocol connection.
  943. It's worth noting this configuration is different from the "TLS certificates auth method",
  944. which is available under the `auth.cert` section.
  945. properties:
  946. certSecretRef:
  947. description: |-
  948. CertSecretRef is a certificate added to the transport layer
  949. when communicating with the Vault server.
  950. If no key for the Secret is specified, external-secret will default to 'tls.crt'.
  951. properties:
  952. key:
  953. description: |-
  954. A key in the referenced Secret.
  955. Some instances of this field may be defaulted, in others it may be required.
  956. maxLength: 253
  957. minLength: 1
  958. pattern: ^[-._a-zA-Z0-9]+$
  959. type: string
  960. name:
  961. description: The name of the Secret resource being referred
  962. to.
  963. maxLength: 253
  964. minLength: 1
  965. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  966. type: string
  967. namespace:
  968. description: |-
  969. The namespace of the Secret resource being referred to.
  970. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  971. maxLength: 63
  972. minLength: 1
  973. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  974. type: string
  975. type: object
  976. keySecretRef:
  977. description: |-
  978. KeySecretRef to a key in a Secret resource containing client private key
  979. added to the transport layer when communicating with the Vault server.
  980. If no key for the Secret is specified, external-secret will default to 'tls.key'.
  981. properties:
  982. key:
  983. description: |-
  984. A key in the referenced Secret.
  985. Some instances of this field may be defaulted, in others it may be required.
  986. maxLength: 253
  987. minLength: 1
  988. pattern: ^[-._a-zA-Z0-9]+$
  989. type: string
  990. name:
  991. description: The name of the Secret resource being referred
  992. to.
  993. maxLength: 253
  994. minLength: 1
  995. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  996. type: string
  997. namespace:
  998. description: |-
  999. The namespace of the Secret resource being referred to.
  1000. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1001. maxLength: 63
  1002. minLength: 1
  1003. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1004. type: string
  1005. type: object
  1006. type: object
  1007. version:
  1008. default: v2
  1009. description: |-
  1010. Version is the Vault KV secret engine version. This can be either "v1" or
  1011. "v2". Version defaults to "v2".
  1012. enum:
  1013. - v1
  1014. - v2
  1015. type: string
  1016. required:
  1017. - server
  1018. type: object
  1019. resultType:
  1020. default: Data
  1021. description: |-
  1022. Result type defines which data is returned from the generator.
  1023. By default, it is the "data" section of the Vault API response.
  1024. When using e.g. /auth/token/create the "data" section is empty but
  1025. the "auth" section contains the generated token.
  1026. Please refer to the vault docs regarding the result data structure.
  1027. Additionally, accessing the raw response is possibly by using "Raw" result type.
  1028. enum:
  1029. - Data
  1030. - Auth
  1031. - Raw
  1032. type: string
  1033. retrySettings:
  1034. description: Used to configure http retries if failed
  1035. properties:
  1036. maxRetries:
  1037. format: int32
  1038. type: integer
  1039. retryInterval:
  1040. type: string
  1041. type: object
  1042. required:
  1043. - path
  1044. - provider
  1045. type: object
  1046. type: object
  1047. served: true
  1048. storage: true
  1049. subresources:
  1050. status: {}