generators.external-secrets.io_vaultdynamicsecrets.yaml 40 KB

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