generators.external-secrets.io_vaultdynamicsecrets.yaml 48 KB

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