generators.external-secrets.io_vaultdynamicsecrets.yaml 49 KB

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