generators.external-secrets.io_vaultdynamicsecrets.yaml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.11.4
  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. method:
  39. description: Vault API method to use (GET/POST/other)
  40. type: string
  41. parameters:
  42. description: Parameters to pass to Vault write (for non-GET methods)
  43. x-kubernetes-preserve-unknown-fields: true
  44. path:
  45. description: Vault path to obtain the dynamic secret from
  46. type: string
  47. provider:
  48. description: Vault provider common spec
  49. properties:
  50. auth:
  51. description: Auth configures how secret-manager authenticates
  52. with the Vault server.
  53. properties:
  54. appRole:
  55. description: AppRole authenticates with Vault using the App
  56. Role auth mechanism, with the role and secret stored in
  57. a Kubernetes Secret resource.
  58. properties:
  59. path:
  60. default: approle
  61. description: 'Path where the App Role authentication backend
  62. is mounted in Vault, e.g: "approle"'
  63. type: string
  64. roleId:
  65. description: RoleID configured in the App Role authentication
  66. backend when setting up the authentication backend in
  67. Vault.
  68. type: string
  69. roleRef:
  70. description: Reference to a key in a Secret that contains
  71. the App Role ID used to authenticate with Vault. The
  72. `key` field must be specified and denotes which entry
  73. within the Secret resource is used as the app role id.
  74. properties:
  75. key:
  76. description: The key of the entry in the Secret resource's
  77. `data` field to be used. Some instances of this
  78. field may be defaulted, in others it may be required.
  79. type: string
  80. name:
  81. description: The name of the Secret resource being
  82. referred to.
  83. type: string
  84. namespace:
  85. description: Namespace of the resource being referred
  86. to. Ignored if referent is not cluster-scoped. cluster-scoped
  87. defaults to the namespace of the referent.
  88. type: string
  89. type: object
  90. secretRef:
  91. description: Reference to a key in a Secret that contains
  92. the App Role secret used to authenticate with Vault.
  93. The `key` field must be specified and denotes which
  94. entry within the Secret resource is used as the app
  95. role secret.
  96. properties:
  97. key:
  98. description: The key of the entry in the Secret resource's
  99. `data` field to be used. Some instances of this
  100. field may be defaulted, in others it may be required.
  101. type: string
  102. name:
  103. description: The name of the Secret resource being
  104. referred to.
  105. type: string
  106. namespace:
  107. description: Namespace of the resource being referred
  108. to. Ignored if referent is not cluster-scoped. cluster-scoped
  109. defaults to the namespace of the referent.
  110. type: string
  111. type: object
  112. required:
  113. - path
  114. - secretRef
  115. type: object
  116. cert:
  117. description: Cert authenticates with TLS Certificates by passing
  118. client certificate, private key and ca certificate Cert
  119. authentication method
  120. properties:
  121. clientCert:
  122. description: ClientCert is a certificate to authenticate
  123. using the Cert Vault authentication method
  124. properties:
  125. key:
  126. description: The key of the entry in the Secret resource's
  127. `data` field to be used. Some instances of this
  128. field may be defaulted, in others it may be required.
  129. type: string
  130. name:
  131. description: The name of the Secret resource being
  132. referred to.
  133. type: string
  134. namespace:
  135. description: Namespace of the resource being referred
  136. to. Ignored if referent is not cluster-scoped. cluster-scoped
  137. defaults to the namespace of the referent.
  138. type: string
  139. type: object
  140. secretRef:
  141. description: SecretRef to a key in a Secret resource containing
  142. client private key to authenticate with Vault using
  143. the Cert authentication method
  144. properties:
  145. key:
  146. description: The key of the entry in the Secret resource's
  147. `data` field to be used. Some instances of this
  148. field may be defaulted, in others it may be required.
  149. type: string
  150. name:
  151. description: The name of the Secret resource being
  152. referred to.
  153. type: string
  154. namespace:
  155. description: Namespace of the resource being referred
  156. to. Ignored if referent is not cluster-scoped. cluster-scoped
  157. defaults to the namespace of the referent.
  158. type: string
  159. type: object
  160. type: object
  161. iam:
  162. description: Iam authenticates with vault by passing a special
  163. AWS request signed with AWS IAM credentials AWS IAM authentication
  164. method
  165. properties:
  166. externalID:
  167. description: AWS External ID set on assumed IAM roles
  168. type: string
  169. jwt:
  170. description: Specify a service account with IRSA enabled
  171. properties:
  172. serviceAccountRef:
  173. description: A reference to a ServiceAccount resource.
  174. properties:
  175. audiences:
  176. description: Audience specifies the `aud` claim
  177. for the service account token If the service
  178. account uses a well-known annotation for e.g.
  179. IRSA or GCP Workload Identity then this audiences
  180. will be appended to the list
  181. items:
  182. type: string
  183. type: array
  184. name:
  185. description: The name of the ServiceAccount resource
  186. being referred to.
  187. type: string
  188. namespace:
  189. description: Namespace of the resource being referred
  190. to. Ignored if referent is not cluster-scoped.
  191. cluster-scoped defaults to the namespace of
  192. the referent.
  193. type: string
  194. required:
  195. - name
  196. type: object
  197. type: object
  198. path:
  199. description: 'Path where the AWS auth method is enabled
  200. in Vault, e.g: "aws"'
  201. type: string
  202. region:
  203. description: AWS region
  204. type: string
  205. role:
  206. description: This is the AWS role to be assumed before
  207. talking to vault
  208. type: string
  209. secretRef:
  210. description: Specify credentials in a Secret object
  211. properties:
  212. accessKeyIDSecretRef:
  213. description: The AccessKeyID is used for authentication
  214. properties:
  215. key:
  216. description: The key of the entry in the Secret
  217. resource's `data` field to be used. Some instances
  218. of this field may be defaulted, in others it
  219. may be required.
  220. type: string
  221. name:
  222. description: The name of the Secret resource being
  223. referred to.
  224. type: string
  225. namespace:
  226. description: Namespace of the resource being referred
  227. to. Ignored if referent is not cluster-scoped.
  228. cluster-scoped defaults to the namespace of
  229. the referent.
  230. type: string
  231. type: object
  232. secretAccessKeySecretRef:
  233. description: The SecretAccessKey is used for authentication
  234. properties:
  235. key:
  236. description: The key of the entry in the Secret
  237. resource's `data` field to be used. Some instances
  238. of this field may be defaulted, in others it
  239. may be required.
  240. type: string
  241. name:
  242. description: The name of the Secret resource being
  243. referred to.
  244. type: string
  245. namespace:
  246. description: Namespace of the resource being referred
  247. to. Ignored if referent is not cluster-scoped.
  248. cluster-scoped defaults to the namespace of
  249. the referent.
  250. type: string
  251. type: object
  252. sessionTokenSecretRef:
  253. description: 'The SessionToken used for authentication
  254. This must be defined if AccessKeyID and SecretAccessKey
  255. are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html'
  256. properties:
  257. key:
  258. description: The key of the entry in the Secret
  259. resource's `data` field to be used. Some instances
  260. of this field may be defaulted, in others it
  261. may be required.
  262. type: string
  263. name:
  264. description: The name of the Secret resource being
  265. referred to.
  266. type: string
  267. namespace:
  268. description: Namespace of the resource being referred
  269. to. Ignored if referent is not cluster-scoped.
  270. cluster-scoped defaults to the namespace of
  271. the referent.
  272. type: string
  273. type: object
  274. type: object
  275. vaultAwsIamServerID:
  276. description: 'X-Vault-AWS-IAM-Server-ID is an additional
  277. header used by Vault IAM auth method to mitigate against
  278. different types of replay attacks. More details here:
  279. https://developer.hashicorp.com/vault/docs/auth/aws'
  280. type: string
  281. vaultRole:
  282. description: Vault Role. In vault, a role describes an
  283. identity with a set of permissions, groups, or policies
  284. you want to attach a user of the secrets engine
  285. type: string
  286. required:
  287. - vaultRole
  288. type: object
  289. jwt:
  290. description: Jwt authenticates with Vault by passing role
  291. and JWT token using the JWT/OIDC authentication method
  292. properties:
  293. kubernetesServiceAccountToken:
  294. description: Optional ServiceAccountToken specifies the
  295. Kubernetes service account for which to request a token
  296. for with the `TokenRequest` API.
  297. properties:
  298. audiences:
  299. description: 'Optional audiences field that will be
  300. used to request a temporary Kubernetes service account
  301. token for the service account referenced by `serviceAccountRef`.
  302. Defaults to a single audience `vault` it not specified.
  303. Deprecated: use serviceAccountRef.Audiences instead'
  304. items:
  305. type: string
  306. type: array
  307. expirationSeconds:
  308. description: 'Optional expiration time in seconds
  309. that will be used to request a temporary Kubernetes
  310. service account token for the service account referenced
  311. by `serviceAccountRef`. Deprecated: this will be
  312. removed in the future. Defaults to 10 minutes.'
  313. format: int64
  314. type: integer
  315. serviceAccountRef:
  316. description: Service account field containing the
  317. name of a kubernetes ServiceAccount.
  318. properties:
  319. audiences:
  320. description: Audience specifies the `aud` claim
  321. for the service account token If the service
  322. account uses a well-known annotation for e.g.
  323. IRSA or GCP Workload Identity then this audiences
  324. will be appended to the list
  325. items:
  326. type: string
  327. type: array
  328. name:
  329. description: The name of the ServiceAccount resource
  330. being referred to.
  331. type: string
  332. namespace:
  333. description: Namespace of the resource being referred
  334. to. Ignored if referent is not cluster-scoped.
  335. cluster-scoped defaults to the namespace of
  336. the referent.
  337. type: string
  338. required:
  339. - name
  340. type: object
  341. required:
  342. - serviceAccountRef
  343. type: object
  344. path:
  345. default: jwt
  346. description: 'Path where the JWT authentication backend
  347. is mounted in Vault, e.g: "jwt"'
  348. type: string
  349. role:
  350. description: Role is a JWT role to authenticate using
  351. the JWT/OIDC Vault authentication method
  352. type: string
  353. secretRef:
  354. description: Optional SecretRef that refers to a key in
  355. a Secret resource containing JWT token to authenticate
  356. with Vault using the JWT/OIDC authentication method.
  357. properties:
  358. key:
  359. description: The key of the entry in the Secret resource's
  360. `data` field to be used. Some instances of this
  361. field may be defaulted, in others it may be required.
  362. type: string
  363. name:
  364. description: The name of the Secret resource being
  365. referred to.
  366. type: string
  367. namespace:
  368. description: Namespace of the resource being referred
  369. to. Ignored if referent is not cluster-scoped. cluster-scoped
  370. defaults to the namespace of the referent.
  371. type: string
  372. type: object
  373. required:
  374. - path
  375. type: object
  376. kubernetes:
  377. description: Kubernetes authenticates with Vault by passing
  378. the ServiceAccount token stored in the named Secret resource
  379. to the Vault server.
  380. properties:
  381. mountPath:
  382. default: kubernetes
  383. description: 'Path where the Kubernetes authentication
  384. backend is mounted in Vault, e.g: "kubernetes"'
  385. type: string
  386. role:
  387. description: A required field containing the Vault Role
  388. to assume. A Role binds a Kubernetes ServiceAccount
  389. with a set of Vault policies.
  390. type: string
  391. secretRef:
  392. description: Optional secret field containing a Kubernetes
  393. ServiceAccount JWT used for authenticating with Vault.
  394. If a name is specified without a key, `token` is the
  395. default. If one is not specified, the one bound to the
  396. controller will be used.
  397. properties:
  398. key:
  399. description: The key of the entry in the Secret resource's
  400. `data` field to be used. Some instances of this
  401. field may be defaulted, in others it may be required.
  402. type: string
  403. name:
  404. description: The name of the Secret resource being
  405. referred to.
  406. type: string
  407. namespace:
  408. description: Namespace of the resource being referred
  409. to. Ignored if referent is not cluster-scoped. cluster-scoped
  410. defaults to the namespace of the referent.
  411. type: string
  412. type: object
  413. serviceAccountRef:
  414. description: Optional service account field containing
  415. the name of a kubernetes ServiceAccount. If the service
  416. account is specified, the service account secret token
  417. JWT will be used for authenticating with Vault. If the
  418. service account selector is not supplied, the secretRef
  419. will be used instead.
  420. properties:
  421. audiences:
  422. description: Audience specifies the `aud` claim for
  423. the service account token If the service account
  424. uses a well-known annotation for e.g. IRSA or GCP
  425. Workload Identity then this audiences will be appended
  426. to the list
  427. items:
  428. type: string
  429. type: array
  430. name:
  431. description: The name of the ServiceAccount resource
  432. being referred to.
  433. type: string
  434. namespace:
  435. description: Namespace of the resource being referred
  436. to. Ignored if referent is not cluster-scoped. cluster-scoped
  437. defaults to the namespace of the referent.
  438. type: string
  439. required:
  440. - name
  441. type: object
  442. required:
  443. - mountPath
  444. - role
  445. type: object
  446. ldap:
  447. description: Ldap authenticates with Vault by passing username/password
  448. pair using the LDAP authentication method
  449. properties:
  450. path:
  451. default: ldap
  452. description: 'Path where the LDAP authentication backend
  453. is mounted in Vault, e.g: "ldap"'
  454. type: string
  455. secretRef:
  456. description: SecretRef to a key in a Secret resource containing
  457. password for the LDAP user used to authenticate with
  458. Vault using the LDAP authentication method
  459. properties:
  460. key:
  461. description: The key of the entry in the Secret resource's
  462. `data` field to be used. Some instances of this
  463. field may be defaulted, in others it may be required.
  464. type: string
  465. name:
  466. description: The name of the Secret resource being
  467. referred to.
  468. type: string
  469. namespace:
  470. description: Namespace of the resource being referred
  471. to. Ignored if referent is not cluster-scoped. cluster-scoped
  472. defaults to the namespace of the referent.
  473. type: string
  474. type: object
  475. username:
  476. description: Username is a LDAP user name used to authenticate
  477. using the LDAP Vault authentication method
  478. type: string
  479. required:
  480. - path
  481. - username
  482. type: object
  483. tokenSecretRef:
  484. description: TokenSecretRef authenticates with Vault by presenting
  485. a token.
  486. properties:
  487. key:
  488. description: The key of the entry in the Secret resource's
  489. `data` field to be used. Some instances of this field
  490. may be defaulted, in others it may be required.
  491. type: string
  492. name:
  493. description: The name of the Secret resource being referred
  494. to.
  495. type: string
  496. namespace:
  497. description: Namespace of the resource being referred
  498. to. Ignored if referent is not cluster-scoped. cluster-scoped
  499. defaults to the namespace of the referent.
  500. type: string
  501. type: object
  502. type: object
  503. caBundle:
  504. description: PEM encoded CA bundle used to validate Vault server
  505. certificate. Only used if the Server URL is using HTTPS protocol.
  506. This parameter is ignored for plain HTTP protocol connection.
  507. If not set the system root certificates are used to validate
  508. the TLS connection.
  509. format: byte
  510. type: string
  511. caProvider:
  512. description: The provider for the CA bundle to use to validate
  513. Vault server certificate.
  514. properties:
  515. key:
  516. description: The key where the CA certificate can be found
  517. in the Secret or ConfigMap.
  518. type: string
  519. name:
  520. description: The name of the object located at the provider
  521. type.
  522. type: string
  523. namespace:
  524. description: The namespace the Provider type is in. Can only
  525. be defined when used in a ClusterSecretStore.
  526. type: string
  527. type:
  528. description: The type of provider to use such as "Secret",
  529. or "ConfigMap".
  530. enum:
  531. - Secret
  532. - ConfigMap
  533. type: string
  534. required:
  535. - name
  536. - type
  537. type: object
  538. forwardInconsistent:
  539. description: ForwardInconsistent tells Vault to forward read-after-write
  540. requests to the Vault leader instead of simply retrying within
  541. a loop. This can increase performance if the option is enabled
  542. serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header
  543. type: boolean
  544. namespace:
  545. description: 'Name of the vault namespace. Namespaces is a set
  546. of features within Vault Enterprise that allows Vault environments
  547. to support Secure Multi-tenancy. e.g: "ns1". More about namespaces
  548. can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  549. type: string
  550. path:
  551. description: 'Path is the mount path of the Vault KV backend endpoint,
  552. e.g: "secret". The v2 KV secret engine version specific "/data"
  553. path suffix for fetching secrets from Vault is optional and
  554. will be appended if not present in specified path.'
  555. type: string
  556. readYourWrites:
  557. description: ReadYourWrites ensures isolated read-after-write
  558. semantics by providing discovered cluster replication states
  559. in each request. More information about eventual consistency
  560. in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency
  561. type: boolean
  562. server:
  563. description: 'Server is the connection address for the Vault server,
  564. e.g: "https://vault.example.com:8200".'
  565. type: string
  566. version:
  567. default: v2
  568. description: Version is the Vault KV secret engine version. This
  569. can be either "v1" or "v2". Version defaults to "v2".
  570. enum:
  571. - v1
  572. - v2
  573. type: string
  574. required:
  575. - auth
  576. - server
  577. type: object
  578. required:
  579. - path
  580. - provider
  581. type: object
  582. type: object
  583. served: true
  584. storage: true
  585. subresources:
  586. status: {}