generators.external-secrets.io_vaultdynamicsecrets.yaml 59 KB

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