generators.external-secrets.io_vaultdynamicsecrets.yaml 39 KB

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