generators.external-secrets.io_vaultdynamicsecrets.yaml 50 KB

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