generators.external-secrets.io_vaultdynamicsecrets.yaml 50 KB

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