generators.external-secrets.io_vaultdynamicsecrets.yaml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.11.3
  6. creationTimestamp: null
  7. name: vaultdynamicsecrets.generators.external-secrets.io
  8. spec:
  9. group: generators.external-secrets.io
  10. names:
  11. categories:
  12. - vaultdynamicsecret
  13. kind: VaultDynamicSecret
  14. listKind: VaultDynamicSecretList
  15. plural: vaultdynamicsecrets
  16. shortNames:
  17. - vaultdynamicsecret
  18. singular: vaultdynamicsecret
  19. scope: Namespaced
  20. versions:
  21. - name: v1alpha1
  22. schema:
  23. openAPIV3Schema:
  24. properties:
  25. apiVersion:
  26. description: 'APIVersion defines the versioned schema of this representation
  27. of an object. Servers should convert recognized schemas to the latest
  28. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  29. type: string
  30. kind:
  31. description: 'Kind is a string value representing the REST resource this
  32. object represents. Servers may infer this from the endpoint the client
  33. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  34. type: string
  35. metadata:
  36. type: object
  37. spec:
  38. properties:
  39. method:
  40. description: Vault API method to use (GET/POST/other)
  41. type: string
  42. parameters:
  43. description: Parameters to pass to Vault write (for non-GET methods)
  44. x-kubernetes-preserve-unknown-fields: true
  45. path:
  46. description: Vault path to obtain the dynamic secret from
  47. type: string
  48. provider:
  49. description: Vault provider common spec
  50. properties:
  51. auth:
  52. description: Auth configures how secret-manager authenticates
  53. with the Vault server.
  54. properties:
  55. appRole:
  56. description: AppRole authenticates with Vault using the App
  57. Role auth mechanism, with the role and secret stored in
  58. a Kubernetes Secret resource.
  59. properties:
  60. path:
  61. default: approle
  62. description: 'Path where the App Role authentication backend
  63. is mounted in Vault, e.g: "approle"'
  64. type: string
  65. roleId:
  66. description: RoleID configured in the App Role authentication
  67. backend when setting up the authentication backend in
  68. Vault.
  69. type: string
  70. secretRef:
  71. description: Reference to a key in a Secret that contains
  72. the App Role secret used to authenticate with Vault.
  73. The `key` field must be specified and denotes which
  74. entry within the Secret resource is used as the app
  75. role secret.
  76. properties:
  77. key:
  78. description: The key of the entry in the Secret resource's
  79. `data` field to be used. Some instances of this
  80. field may be defaulted, in others it may be required.
  81. type: string
  82. name:
  83. description: The name of the Secret resource being
  84. referred to.
  85. type: string
  86. namespace:
  87. description: Namespace of the resource being referred
  88. to. Ignored if referent is not cluster-scoped. cluster-scoped
  89. defaults to the namespace of the referent.
  90. type: string
  91. type: object
  92. required:
  93. - path
  94. - roleId
  95. - secretRef
  96. type: object
  97. cert:
  98. description: Cert authenticates with TLS Certificates by passing
  99. client certificate, private key and ca certificate Cert
  100. authentication method
  101. properties:
  102. clientCert:
  103. description: ClientCert is a certificate to authenticate
  104. using the Cert Vault authentication method
  105. properties:
  106. key:
  107. description: The key of the entry in the Secret resource's
  108. `data` field to be used. Some instances of this
  109. field may be defaulted, in others it may be required.
  110. type: string
  111. name:
  112. description: The name of the Secret resource being
  113. referred to.
  114. type: string
  115. namespace:
  116. description: Namespace of the resource being referred
  117. to. Ignored if referent is not cluster-scoped. cluster-scoped
  118. defaults to the namespace of the referent.
  119. type: string
  120. type: object
  121. secretRef:
  122. description: SecretRef to a key in a Secret resource containing
  123. client private key to authenticate with Vault using
  124. the Cert authentication method
  125. properties:
  126. key:
  127. description: The key of the entry in the Secret resource's
  128. `data` field to be used. Some instances of this
  129. field may be defaulted, in others it may be required.
  130. type: string
  131. name:
  132. description: The name of the Secret resource being
  133. referred to.
  134. type: string
  135. namespace:
  136. description: Namespace of the resource being referred
  137. to. Ignored if referent is not cluster-scoped. cluster-scoped
  138. defaults to the namespace of the referent.
  139. type: string
  140. type: object
  141. type: object
  142. jwt:
  143. description: Jwt authenticates with Vault by passing role
  144. and JWT token using the JWT/OIDC authentication method
  145. properties:
  146. kubernetesServiceAccountToken:
  147. description: Optional ServiceAccountToken specifies the
  148. Kubernetes service account for which to request a token
  149. for with the `TokenRequest` API.
  150. properties:
  151. audiences:
  152. description: 'Optional audiences field that will be
  153. used to request a temporary Kubernetes service account
  154. token for the service account referenced by `serviceAccountRef`.
  155. Defaults to a single audience `vault` it not specified.
  156. Deprecated: use serviceAccountRef.Audiences instead'
  157. items:
  158. type: string
  159. type: array
  160. expirationSeconds:
  161. description: 'Optional expiration time in seconds
  162. that will be used to request a temporary Kubernetes
  163. service account token for the service account referenced
  164. by `serviceAccountRef`. Deprecated: this will be
  165. removed in the future. Defaults to 10 minutes.'
  166. format: int64
  167. type: integer
  168. serviceAccountRef:
  169. description: Service account field containing the
  170. name of a kubernetes ServiceAccount.
  171. properties:
  172. audiences:
  173. description: Audience specifies the `aud` claim
  174. for the service account token If the service
  175. account uses a well-known annotation for e.g.
  176. IRSA or GCP Workload Identity then this audiences
  177. will be appended to the list
  178. items:
  179. type: string
  180. type: array
  181. name:
  182. description: The name of the ServiceAccount resource
  183. being referred to.
  184. type: string
  185. namespace:
  186. description: Namespace of the resource being referred
  187. to. Ignored if referent is not cluster-scoped.
  188. cluster-scoped defaults to the namespace of
  189. the referent.
  190. type: string
  191. required:
  192. - name
  193. type: object
  194. required:
  195. - serviceAccountRef
  196. type: object
  197. path:
  198. default: jwt
  199. description: 'Path where the JWT authentication backend
  200. is mounted in Vault, e.g: "jwt"'
  201. type: string
  202. role:
  203. description: Role is a JWT role to authenticate using
  204. the JWT/OIDC Vault authentication method
  205. type: string
  206. secretRef:
  207. description: Optional SecretRef that refers to a key in
  208. a Secret resource containing JWT token to authenticate
  209. with Vault using the JWT/OIDC authentication method.
  210. properties:
  211. key:
  212. description: The key of the entry in the Secret resource's
  213. `data` field to be used. Some instances of this
  214. field may be defaulted, in others it may be required.
  215. type: string
  216. name:
  217. description: The name of the Secret resource being
  218. referred to.
  219. type: string
  220. namespace:
  221. description: Namespace of the resource being referred
  222. to. Ignored if referent is not cluster-scoped. cluster-scoped
  223. defaults to the namespace of the referent.
  224. type: string
  225. type: object
  226. required:
  227. - path
  228. type: object
  229. kubernetes:
  230. description: Kubernetes authenticates with Vault by passing
  231. the ServiceAccount token stored in the named Secret resource
  232. to the Vault server.
  233. properties:
  234. mountPath:
  235. default: kubernetes
  236. description: 'Path where the Kubernetes authentication
  237. backend is mounted in Vault, e.g: "kubernetes"'
  238. type: string
  239. role:
  240. description: A required field containing the Vault Role
  241. to assume. A Role binds a Kubernetes ServiceAccount
  242. with a set of Vault policies.
  243. type: string
  244. secretRef:
  245. description: Optional secret field containing a Kubernetes
  246. ServiceAccount JWT used for authenticating with Vault.
  247. If a name is specified without a key, `token` is the
  248. default. If one is not specified, the one bound to the
  249. controller will be used.
  250. properties:
  251. key:
  252. description: The key of the entry in the Secret resource's
  253. `data` field to be used. Some instances of this
  254. field may be defaulted, in others it may be required.
  255. type: string
  256. name:
  257. description: The name of the Secret resource being
  258. referred to.
  259. type: string
  260. namespace:
  261. description: Namespace of the resource being referred
  262. to. Ignored if referent is not cluster-scoped. cluster-scoped
  263. defaults to the namespace of the referent.
  264. type: string
  265. type: object
  266. serviceAccountRef:
  267. description: Optional service account field containing
  268. the name of a kubernetes ServiceAccount. If the service
  269. account is specified, the service account secret token
  270. JWT will be used for authenticating with Vault. If the
  271. service account selector is not supplied, the secretRef
  272. will be used instead.
  273. properties:
  274. audiences:
  275. description: Audience specifies the `aud` claim for
  276. the service account token If the service account
  277. uses a well-known annotation for e.g. IRSA or GCP
  278. Workload Identity then this audiences will be appended
  279. to the list
  280. items:
  281. type: string
  282. type: array
  283. name:
  284. description: The name of the ServiceAccount resource
  285. being referred to.
  286. type: string
  287. namespace:
  288. description: Namespace of the resource being referred
  289. to. Ignored if referent is not cluster-scoped. cluster-scoped
  290. defaults to the namespace of the referent.
  291. type: string
  292. required:
  293. - name
  294. type: object
  295. required:
  296. - mountPath
  297. - role
  298. type: object
  299. ldap:
  300. description: Ldap authenticates with Vault by passing username/password
  301. pair using the LDAP authentication method
  302. properties:
  303. path:
  304. default: ldap
  305. description: 'Path where the LDAP authentication backend
  306. is mounted in Vault, e.g: "ldap"'
  307. type: string
  308. secretRef:
  309. description: SecretRef to a key in a Secret resource containing
  310. password for the LDAP user used to authenticate with
  311. Vault using the LDAP authentication method
  312. properties:
  313. key:
  314. description: The key of the entry in the Secret resource's
  315. `data` field to be used. Some instances of this
  316. field may be defaulted, in others it may be required.
  317. type: string
  318. name:
  319. description: The name of the Secret resource being
  320. referred to.
  321. type: string
  322. namespace:
  323. description: Namespace of the resource being referred
  324. to. Ignored if referent is not cluster-scoped. cluster-scoped
  325. defaults to the namespace of the referent.
  326. type: string
  327. type: object
  328. username:
  329. description: Username is a LDAP user name used to authenticate
  330. using the LDAP Vault authentication method
  331. type: string
  332. required:
  333. - path
  334. - username
  335. type: object
  336. tokenSecretRef:
  337. description: TokenSecretRef authenticates with Vault by presenting
  338. a token.
  339. properties:
  340. key:
  341. description: The key of the entry in the Secret resource's
  342. `data` field to be used. Some instances of this field
  343. may be defaulted, in others it may be required.
  344. type: string
  345. name:
  346. description: The name of the Secret resource being referred
  347. to.
  348. type: string
  349. namespace:
  350. description: Namespace of the resource being referred
  351. to. Ignored if referent is not cluster-scoped. cluster-scoped
  352. defaults to the namespace of the referent.
  353. type: string
  354. type: object
  355. type: object
  356. caBundle:
  357. description: PEM encoded CA bundle used to validate Vault server
  358. certificate. Only used if the Server URL is using HTTPS protocol.
  359. This parameter is ignored for plain HTTP protocol connection.
  360. If not set the system root certificates are used to validate
  361. the TLS connection.
  362. format: byte
  363. type: string
  364. caProvider:
  365. description: The provider for the CA bundle to use to validate
  366. Vault server certificate.
  367. properties:
  368. key:
  369. description: The key where the CA certificate can be found
  370. in the Secret or ConfigMap.
  371. type: string
  372. name:
  373. description: The name of the object located at the provider
  374. type.
  375. type: string
  376. namespace:
  377. description: The namespace the Provider type is in. Can only
  378. be defined when used in a ClusterSecretStore.
  379. type: string
  380. type:
  381. description: The type of provider to use such as "Secret",
  382. or "ConfigMap".
  383. enum:
  384. - Secret
  385. - ConfigMap
  386. type: string
  387. required:
  388. - name
  389. - type
  390. type: object
  391. forwardInconsistent:
  392. description: ForwardInconsistent tells Vault to forward read-after-write
  393. requests to the Vault leader instead of simply retrying within
  394. a loop. This can increase performance if the option is enabled
  395. serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header
  396. type: boolean
  397. namespace:
  398. description: 'Name of the vault namespace. Namespaces is a set
  399. of features within Vault Enterprise that allows Vault environments
  400. to support Secure Multi-tenancy. e.g: "ns1". More about namespaces
  401. can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  402. type: string
  403. path:
  404. description: 'Path is the mount path of the Vault KV backend endpoint,
  405. e.g: "secret". The v2 KV secret engine version specific "/data"
  406. path suffix for fetching secrets from Vault is optional and
  407. will be appended if not present in specified path.'
  408. type: string
  409. readYourWrites:
  410. description: ReadYourWrites ensures isolated read-after-write
  411. semantics by providing discovered cluster replication states
  412. in each request. More information about eventual consistency
  413. in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency
  414. type: boolean
  415. server:
  416. description: 'Server is the connection address for the Vault server,
  417. e.g: "https://vault.example.com:8200".'
  418. type: string
  419. version:
  420. default: v2
  421. description: Version is the Vault KV secret engine version. This
  422. can be either "v1" or "v2". Version defaults to "v2".
  423. enum:
  424. - v1
  425. - v2
  426. type: string
  427. required:
  428. - auth
  429. - server
  430. type: object
  431. required:
  432. - path
  433. - provider
  434. type: object
  435. type: object
  436. served: true
  437. storage: true
  438. subresources:
  439. status: {}