@intentius/chant-lexicon-k8s 0.41.20 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/api/classify.d.ts.map +1 -1
  2. package/dist/api/connect.d.ts.map +1 -1
  3. package/dist/codegen/docs.d.ts.map +1 -1
  4. package/dist/components/argo-app.d.ts +104 -0
  5. package/dist/components/argo-app.d.ts.map +1 -0
  6. package/dist/components/builders.d.ts +8 -0
  7. package/dist/components/builders.d.ts.map +1 -1
  8. package/dist/components/capability-plugin.d.ts +1 -0
  9. package/dist/components/capability-plugin.d.ts.map +1 -1
  10. package/dist/components/flux-reconcile.d.ts +84 -0
  11. package/dist/components/flux-reconcile.d.ts.map +1 -0
  12. package/dist/components/index.d.ts +2 -0
  13. package/dist/components/index.d.ts.map +1 -1
  14. package/dist/components/kustomize-apply.d.ts +29 -7
  15. package/dist/components/kustomize-apply.d.ts.map +1 -1
  16. package/dist/composites/flux-app.d.ts +132 -0
  17. package/dist/composites/flux-app.d.ts.map +1 -0
  18. package/dist/composites/index.d.ts +2 -0
  19. package/dist/composites/index.d.ts.map +1 -1
  20. package/dist/config-schema.d.ts +3 -0
  21. package/dist/config-schema.d.ts.map +1 -1
  22. package/dist/config.d.ts +32 -5
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/crd/crd-sources.d.ts.map +1 -1
  25. package/dist/crd/parser.d.ts.map +1 -1
  26. package/dist/deep-observe-hooks.d.ts +8 -0
  27. package/dist/deep-observe-hooks.d.ts.map +1 -1
  28. package/dist/describe-resources.d.ts +10 -8
  29. package/dist/describe-resources.d.ts.map +1 -1
  30. package/dist/generated/index.d.ts +15 -4
  31. package/dist/generated/index.d.ts.map +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/integrity.json +10 -6
  35. package/dist/kube/connect.d.ts +5 -4
  36. package/dist/kube/connect.d.ts.map +1 -1
  37. package/dist/kube/get.d.ts +4 -4
  38. package/dist/kustomize/render.d.ts +15 -0
  39. package/dist/kustomize/render.d.ts.map +1 -0
  40. package/dist/kustomize/rendered-entity.d.ts +39 -0
  41. package/dist/kustomize/rendered-entity.d.ts.map +1 -0
  42. package/dist/kustomize/root.d.ts +19 -0
  43. package/dist/kustomize/root.d.ts.map +1 -0
  44. package/dist/lint/audit-catalog.d.ts.map +1 -1
  45. package/dist/lint/post-synth/argo-helpers.d.ts +2 -0
  46. package/dist/lint/post-synth/argo-helpers.d.ts.map +1 -1
  47. package/dist/lint/post-synth/flux002.d.ts +14 -0
  48. package/dist/lint/post-synth/flux002.d.ts.map +1 -0
  49. package/dist/lint/post-synth/flux003.d.ts +17 -0
  50. package/dist/lint/post-synth/flux003.d.ts.map +1 -0
  51. package/dist/lint/post-synth/index.d.ts.map +1 -1
  52. package/dist/lint/rules/flux-source-ref-pin.d.ts +16 -0
  53. package/dist/lint/rules/flux-source-ref-pin.d.ts.map +1 -0
  54. package/dist/manifest.json +1 -1
  55. package/dist/meta.json +92 -16
  56. package/dist/okf/index.md +256 -0
  57. package/dist/okf/rules/ARGO001.md +16 -0
  58. package/dist/okf/rules/ARGO002.md +16 -0
  59. package/dist/okf/rules/ARGO003.md +15 -0
  60. package/dist/okf/rules/ARGO004.md +17 -0
  61. package/dist/okf/rules/ARGO005.md +15 -0
  62. package/dist/okf/rules/FLUX001.md +17 -0
  63. package/dist/okf/rules/FLUX002.md +19 -0
  64. package/dist/okf/rules/FLUX003.md +15 -0
  65. package/dist/okf/rules/WK8001.md +16 -0
  66. package/dist/okf/rules/WK8002.md +20 -0
  67. package/dist/okf/rules/WK8003.md +19 -0
  68. package/dist/okf/rules/WK8005.md +11 -0
  69. package/dist/okf/rules/WK8006.md +11 -0
  70. package/dist/okf/rules/WK8041.md +11 -0
  71. package/dist/okf/rules/WK8042.md +11 -0
  72. package/dist/okf/rules/WK8101.md +11 -0
  73. package/dist/okf/rules/WK8102.md +11 -0
  74. package/dist/okf/rules/WK8103.md +11 -0
  75. package/dist/okf/rules/WK8104.md +15 -0
  76. package/dist/okf/rules/WK8105.md +11 -0
  77. package/dist/okf/rules/WK8201.md +11 -0
  78. package/dist/okf/rules/WK8202.md +11 -0
  79. package/dist/okf/rules/WK8203.md +11 -0
  80. package/dist/okf/rules/WK8204.md +11 -0
  81. package/dist/okf/rules/WK8205.md +11 -0
  82. package/dist/okf/rules/WK8207.md +11 -0
  83. package/dist/okf/rules/WK8208.md +11 -0
  84. package/dist/okf/rules/WK8209.md +11 -0
  85. package/dist/okf/rules/WK8301.md +16 -0
  86. package/dist/okf/rules/WK8302.md +11 -0
  87. package/dist/okf/rules/WK8303.md +15 -0
  88. package/dist/okf/rules/WK8304.md +15 -0
  89. package/dist/okf/rules/WK8305.md +15 -0
  90. package/dist/okf/rules/WK8306.md +11 -0
  91. package/dist/okf/rules/WK8401.md +15 -0
  92. package/dist/okf/rules/WK8402.md +15 -0
  93. package/dist/okf/rules/WK8403.md +15 -0
  94. package/dist/okf/types/APIGroup.md +16 -0
  95. package/dist/okf/types/APIGroupList.md +13 -0
  96. package/dist/okf/types/APIResourceList.md +14 -0
  97. package/dist/okf/types/APIService.md +14 -0
  98. package/dist/okf/types/APIServiceList.md +14 -0
  99. package/dist/okf/types/APIVersions.md +14 -0
  100. package/dist/okf/types/Addon.md +14 -0
  101. package/dist/okf/types/Alert.md +14 -0
  102. package/dist/okf/types/AppProject.md +19 -0
  103. package/dist/okf/types/Application.md +23 -0
  104. package/dist/okf/types/ApplicationSet.md +18 -0
  105. package/dist/okf/types/Backup.md +14 -0
  106. package/dist/okf/types/BatchJob.md +14 -0
  107. package/dist/okf/types/Binding.md +14 -0
  108. package/dist/okf/types/Bucket.md +18 -0
  109. package/dist/okf/types/CM.md +16 -0
  110. package/dist/okf/types/CSIDriver.md +14 -0
  111. package/dist/okf/types/CSIDriverList.md +14 -0
  112. package/dist/okf/types/CSINode.md +14 -0
  113. package/dist/okf/types/CSINodeList.md +14 -0
  114. package/dist/okf/types/CSIStorageCapacity.md +17 -0
  115. package/dist/okf/types/CSIStorageCapacityList.md +14 -0
  116. package/dist/okf/types/Certificate.md +18 -0
  117. package/dist/okf/types/CertificateRequest.md +14 -0
  118. package/dist/okf/types/CertificateSigningRequest.md +14 -0
  119. package/dist/okf/types/CertificateSigningRequestList.md +14 -0
  120. package/dist/okf/types/Challenge.md +14 -0
  121. package/dist/okf/types/Cluster.md +14 -0
  122. package/dist/okf/types/ClusterIssuer.md +14 -0
  123. package/dist/okf/types/ClusterRole.md +15 -0
  124. package/dist/okf/types/ClusterRoleBinding.md +15 -0
  125. package/dist/okf/types/ClusterRoleBindingList.md +14 -0
  126. package/dist/okf/types/ClusterRoleList.md +14 -0
  127. package/dist/okf/types/ClusterTrustBundle.md +14 -0
  128. package/dist/okf/types/ClusterTrustBundleList.md +14 -0
  129. package/dist/okf/types/ComponentStatus.md +14 -0
  130. package/dist/okf/types/ComponentStatusList.md +14 -0
  131. package/dist/okf/types/ConfigMapList.md +14 -0
  132. package/dist/okf/types/ControllerRevision.md +15 -0
  133. package/dist/okf/types/ControllerRevisionList.md +14 -0
  134. package/dist/okf/types/CoreEventList.md +14 -0
  135. package/dist/okf/types/CrdbCluster.md +14 -0
  136. package/dist/okf/types/CronJob.md +20 -0
  137. package/dist/okf/types/CronJobList.md +14 -0
  138. package/dist/okf/types/CustomResourceDefinition.md +14 -0
  139. package/dist/okf/types/CustomResourceDefinitionList.md +14 -0
  140. package/dist/okf/types/DaemonSet.md +19 -0
  141. package/dist/okf/types/DaemonSetList.md +14 -0
  142. package/dist/okf/types/DeleteOptions.md +18 -0
  143. package/dist/okf/types/Deploy.md +14 -0
  144. package/dist/okf/types/DeploymentList.md +14 -0
  145. package/dist/okf/types/DeviceClass.md +14 -0
  146. package/dist/okf/types/DeviceClassList.md +14 -0
  147. package/dist/okf/types/DeviceTaintRule.md +14 -0
  148. package/dist/okf/types/DeviceTaintRuleList.md +14 -0
  149. package/dist/okf/types/EndpointSlice.md +16 -0
  150. package/dist/okf/types/EndpointSliceList.md +14 -0
  151. package/dist/okf/types/Endpoints.md +14 -0
  152. package/dist/okf/types/EndpointsList.md +14 -0
  153. package/dist/okf/types/Event.md +27 -0
  154. package/dist/okf/types/EventsEvent.md +27 -0
  155. package/dist/okf/types/EventsEventList.md +14 -0
  156. package/dist/okf/types/Eviction.md +14 -0
  157. package/dist/okf/types/FlowSchema.md +14 -0
  158. package/dist/okf/types/FlowSchemaList.md +14 -0
  159. package/dist/okf/types/FluxHelmChart.md +14 -0
  160. package/dist/okf/types/FluxInstance.md +14 -0
  161. package/dist/okf/types/FluxReport.md +14 -0
  162. package/dist/okf/types/GRPCRoute.md +14 -0
  163. package/dist/okf/types/Gateway.md +14 -0
  164. package/dist/okf/types/GatewayClass.md +14 -0
  165. package/dist/okf/types/GitRepository.md +19 -0
  166. package/dist/okf/types/HTTPRoute.md +14 -0
  167. package/dist/okf/types/HelmChartConfig.md +14 -0
  168. package/dist/okf/types/HelmRelease.md +14 -0
  169. package/dist/okf/types/HelmRepository.md +14 -0
  170. package/dist/okf/types/HorizontalPodAutoscaler.md +14 -0
  171. package/dist/okf/types/HorizontalPodAutoscalerList.md +14 -0
  172. package/dist/okf/types/IPAddress.md +14 -0
  173. package/dist/okf/types/IPAddressList.md +14 -0
  174. package/dist/okf/types/ImagePolicy.md +14 -0
  175. package/dist/okf/types/ImageRepository.md +14 -0
  176. package/dist/okf/types/ImageUpdateAutomation.md +14 -0
  177. package/dist/okf/types/InfisicalDynamicSecret.md +14 -0
  178. package/dist/okf/types/InfisicalPushSecret.md +14 -0
  179. package/dist/okf/types/InfisicalSecret.md +14 -0
  180. package/dist/okf/types/Ing.md +14 -0
  181. package/dist/okf/types/IngressClass.md +14 -0
  182. package/dist/okf/types/IngressClassList.md +14 -0
  183. package/dist/okf/types/IngressList.md +14 -0
  184. package/dist/okf/types/IngressRoute.md +14 -0
  185. package/dist/okf/types/IngressRouteTCP.md +14 -0
  186. package/dist/okf/types/IngressRouteUDP.md +14 -0
  187. package/dist/okf/types/Issuer.md +14 -0
  188. package/dist/okf/types/JobList.md +14 -0
  189. package/dist/okf/types/K3sHelmChart.md +14 -0
  190. package/dist/okf/types/Kustomization.md +20 -0
  191. package/dist/okf/types/Lease.md +14 -0
  192. package/dist/okf/types/LeaseCandidate.md +14 -0
  193. package/dist/okf/types/LeaseCandidateList.md +14 -0
  194. package/dist/okf/types/LeaseList.md +14 -0
  195. package/dist/okf/types/LimitRange.md +14 -0
  196. package/dist/okf/types/LimitRangeList.md +14 -0
  197. package/dist/okf/types/LocalSubjectAccessReview.md +14 -0
  198. package/dist/okf/types/MicroVM.md +14 -0
  199. package/dist/okf/types/MicroVMClass.md +14 -0
  200. package/dist/okf/types/MicroVMImage.md +14 -0
  201. package/dist/okf/types/MicroVMNetwork.md +14 -0
  202. package/dist/okf/types/MicroVMReplicaSet.md +14 -0
  203. package/dist/okf/types/Middleware.md +14 -0
  204. package/dist/okf/types/MiddlewareTCP.md +14 -0
  205. package/dist/okf/types/MutatingAdmissionPolicy.md +14 -0
  206. package/dist/okf/types/MutatingAdmissionPolicyBinding.md +14 -0
  207. package/dist/okf/types/MutatingAdmissionPolicyBindingList.md +14 -0
  208. package/dist/okf/types/MutatingAdmissionPolicyList.md +14 -0
  209. package/dist/okf/types/MutatingWebhookConfiguration.md +14 -0
  210. package/dist/okf/types/MutatingWebhookConfigurationList.md +14 -0
  211. package/dist/okf/types/Namespace.md +19 -0
  212. package/dist/okf/types/NamespaceList.md +14 -0
  213. package/dist/okf/types/NetPol.md +14 -0
  214. package/dist/okf/types/NetworkPolicyList.md +14 -0
  215. package/dist/okf/types/Node.md +22 -0
  216. package/dist/okf/types/NodeList.md +14 -0
  217. package/dist/okf/types/OCIRepository.md +18 -0
  218. package/dist/okf/types/ObjectStore.md +14 -0
  219. package/dist/okf/types/Order.md +14 -0
  220. package/dist/okf/types/PDB.md +18 -0
  221. package/dist/okf/types/PersistentVolume.md +14 -0
  222. package/dist/okf/types/PersistentVolumeClaim.md +14 -0
  223. package/dist/okf/types/PersistentVolumeClaimList.md +14 -0
  224. package/dist/okf/types/PersistentVolumeList.md +14 -0
  225. package/dist/okf/types/Pod.md +18 -0
  226. package/dist/okf/types/PodCertificateRequest.md +14 -0
  227. package/dist/okf/types/PodCertificateRequestList.md +14 -0
  228. package/dist/okf/types/PodDisruptionBudgetList.md +14 -0
  229. package/dist/okf/types/PodList.md +14 -0
  230. package/dist/okf/types/PodTemplate.md +14 -0
  231. package/dist/okf/types/PodTemplateList.md +14 -0
  232. package/dist/okf/types/Pooler.md +14 -0
  233. package/dist/okf/types/PriorityClass.md +17 -0
  234. package/dist/okf/types/PriorityClassList.md +14 -0
  235. package/dist/okf/types/PriorityLevelConfiguration.md +14 -0
  236. package/dist/okf/types/PriorityLevelConfigurationList.md +14 -0
  237. package/dist/okf/types/PrometheusRule.md +14 -0
  238. package/dist/okf/types/Provider.md +14 -0
  239. package/dist/okf/types/RayCluster.md +20 -0
  240. package/dist/okf/types/RayJob.md +14 -0
  241. package/dist/okf/types/RayService.md +14 -0
  242. package/dist/okf/types/Receiver.md +14 -0
  243. package/dist/okf/types/ReferenceGrant.md +14 -0
  244. package/dist/okf/types/ReplicaSet.md +19 -0
  245. package/dist/okf/types/ReplicaSetList.md +14 -0
  246. package/dist/okf/types/ReplicationController.md +14 -0
  247. package/dist/okf/types/ReplicationControllerList.md +14 -0
  248. package/dist/okf/types/ResourceClaim.md +14 -0
  249. package/dist/okf/types/ResourceClaimList.md +14 -0
  250. package/dist/okf/types/ResourceClaimTemplate.md +14 -0
  251. package/dist/okf/types/ResourceClaimTemplateList.md +14 -0
  252. package/dist/okf/types/ResourceQuota.md +14 -0
  253. package/dist/okf/types/ResourceQuotaList.md +14 -0
  254. package/dist/okf/types/ResourceSet.md +14 -0
  255. package/dist/okf/types/ResourceSetInputProvider.md +14 -0
  256. package/dist/okf/types/ResourceSlice.md +14 -0
  257. package/dist/okf/types/ResourceSliceList.md +14 -0
  258. package/dist/okf/types/Role.md +14 -0
  259. package/dist/okf/types/RoleBinding.md +15 -0
  260. package/dist/okf/types/RoleBindingList.md +14 -0
  261. package/dist/okf/types/RoleList.md +14 -0
  262. package/dist/okf/types/RuntimeClass.md +16 -0
  263. package/dist/okf/types/RuntimeClassList.md +14 -0
  264. package/dist/okf/types/SA.md +16 -0
  265. package/dist/okf/types/Scale.md +14 -0
  266. package/dist/okf/types/ScheduledBackup.md +14 -0
  267. package/dist/okf/types/Sec.md +17 -0
  268. package/dist/okf/types/SecretList.md +14 -0
  269. package/dist/okf/types/SelfSubjectAccessReview.md +14 -0
  270. package/dist/okf/types/SelfSubjectReview.md +13 -0
  271. package/dist/okf/types/SelfSubjectRulesReview.md +14 -0
  272. package/dist/okf/types/ServersTransport.md +14 -0
  273. package/dist/okf/types/ServersTransportTCP.md +14 -0
  274. package/dist/okf/types/Service.md +20 -0
  275. package/dist/okf/types/ServiceAccountList.md +14 -0
  276. package/dist/okf/types/ServiceCIDR.md +14 -0
  277. package/dist/okf/types/ServiceCIDRList.md +14 -0
  278. package/dist/okf/types/ServiceList.md +14 -0
  279. package/dist/okf/types/ServiceMonitor.md +14 -0
  280. package/dist/okf/types/StatefulSet.md +19 -0
  281. package/dist/okf/types/StatefulSetList.md +14 -0
  282. package/dist/okf/types/Status.md +17 -0
  283. package/dist/okf/types/StorageClass.md +20 -0
  284. package/dist/okf/types/StorageClassList.md +14 -0
  285. package/dist/okf/types/StorageVersionMigration.md +14 -0
  286. package/dist/okf/types/StorageVersionMigrationList.md +14 -0
  287. package/dist/okf/types/SubjectAccessReview.md +14 -0
  288. package/dist/okf/types/TLSOption.md +14 -0
  289. package/dist/okf/types/TLSStore.md +14 -0
  290. package/dist/okf/types/TokenRequest.md +14 -0
  291. package/dist/okf/types/TokenReview.md +14 -0
  292. package/dist/okf/types/TraefikService.md +14 -0
  293. package/dist/okf/types/ValidatingAdmissionPolicy.md +14 -0
  294. package/dist/okf/types/ValidatingAdmissionPolicyBinding.md +14 -0
  295. package/dist/okf/types/ValidatingAdmissionPolicyBindingList.md +14 -0
  296. package/dist/okf/types/ValidatingAdmissionPolicyList.md +14 -0
  297. package/dist/okf/types/ValidatingWebhookConfiguration.md +14 -0
  298. package/dist/okf/types/ValidatingWebhookConfigurationList.md +14 -0
  299. package/dist/okf/types/VolumeAttachment.md +14 -0
  300. package/dist/okf/types/VolumeAttachmentList.md +14 -0
  301. package/dist/okf/types/VolumeAttributesClass.md +15 -0
  302. package/dist/okf/types/VolumeAttributesClassList.md +14 -0
  303. package/dist/okf/types/WatchEvent.md +14 -0
  304. package/dist/plugin.d.ts.map +1 -1
  305. package/dist/rules/argo-helpers.ts +2 -0
  306. package/dist/rules/flux-source-ref-pin.ts +52 -0
  307. package/dist/rules/flux002.ts +77 -0
  308. package/dist/rules/flux003.ts +75 -0
  309. package/dist/serializer.d.ts.map +1 -1
  310. package/dist/skills/chant-k8s-flux.md +162 -0
  311. package/dist/types/index.d.ts +41 -3
  312. package/dist/validate.d.ts.map +1 -1
  313. package/package.json +3 -3
  314. package/src/api/classify.test.ts +20 -0
  315. package/src/api/classify.ts +8 -1
  316. package/src/api/connect.ts +10 -0
  317. package/src/codegen/docs.ts +11 -0
  318. package/src/components/argo-app.test.ts +137 -0
  319. package/src/components/argo-app.ts +163 -0
  320. package/src/components/builders.ts +8 -0
  321. package/src/components/capability-plugin.ts +11 -1
  322. package/src/components/flux-reconcile.test.ts +145 -0
  323. package/src/components/flux-reconcile.ts +159 -0
  324. package/src/components/index.ts +13 -0
  325. package/src/components/kustomize-apply.ts +12 -41
  326. package/src/composites/composites.test.ts +122 -0
  327. package/src/composites/flux-app.ts +274 -0
  328. package/src/composites/index.ts +9 -0
  329. package/src/config-augmentation.test.ts +72 -0
  330. package/src/config-schema.ts +5 -0
  331. package/src/config.ts +33 -5
  332. package/src/crd/crd-sources.ts +37 -0
  333. package/src/crd/parser.ts +6 -0
  334. package/src/deep-observe-hooks.ts +60 -0
  335. package/src/deep-observe.test.ts +114 -0
  336. package/src/describe-resources.test.ts +215 -6
  337. package/src/describe-resources.ts +197 -118
  338. package/src/generated/index.d.ts +41 -3
  339. package/src/generated/index.ts +15 -4
  340. package/src/generated/lexicon-k8s.json +92 -16
  341. package/src/generated/operations.json +48 -0
  342. package/src/index.ts +4 -0
  343. package/src/kube/connect.ts +5 -4
  344. package/src/kube/get.ts +4 -4
  345. package/src/kustomize/render.ts +84 -0
  346. package/src/kustomize/rendered-entity.ts +72 -0
  347. package/src/kustomize/root.test.ts +268 -0
  348. package/src/kustomize/root.ts +109 -0
  349. package/src/lint/audit-catalog.ts +2 -0
  350. package/src/lint/post-synth/argo-helpers.ts +2 -0
  351. package/src/lint/post-synth/flux002.ts +77 -0
  352. package/src/lint/post-synth/flux003.ts +75 -0
  353. package/src/lint/post-synth/index.ts +4 -0
  354. package/src/lint/post-synth/post-synth.test.ts +132 -0
  355. package/src/lint/rules/flux-source-ref-pin.ts +52 -0
  356. package/src/lint/rules/rules.test.ts +51 -0
  357. package/src/plugin.test.ts +2 -0
  358. package/src/plugin.ts +47 -0
  359. package/src/serializer.ts +34 -4
  360. package/src/skills/chant-k8s-flux.md +162 -0
  361. package/src/testdata/kustomize-root/base/deployment.yaml +17 -0
  362. package/src/testdata/kustomize-root/base/kustomization.yaml +3 -0
  363. package/src/testdata/kustomize-root/base/service.yaml +9 -0
  364. package/src/testdata/kustomize-root/overlays/prod/kustomization.yaml +6 -0
  365. package/src/validate.ts +4 -0
@@ -42,17 +42,19 @@
42
42
  * exactly the shape `lifecycle diff --live` has always classified `orphan`.
43
43
  * On Kubernetes that is wrong: it is expected runtime, not drift, and will be
44
44
  * recreated the moment it is deleted. After the declared-entity reads above
45
- * resolve, this scans Pods in the namespaces they actually live in and walks
46
- * each one's `ownerReferences` chain (`./api/owner-chain.ts`) against the
47
- * entities this very call resolved. A chain reaching one of them is reported
48
- * with `ownerChain: { root: "declared", ... }`; core's diff/change-set engine
49
- * reads that as `runtime` instead of `orphan`. Deliberately scoped to Pods —
50
- * the concrete case the issue and its acceptance criteria name — and to the
51
- * namespaces this observation already touched, not a cluster-wide sweep;
52
- * widening to other controller-spawned kinds is the same walk repeated.
45
+ * resolve, this sweeps candidate kinds in the namespaces they actually live in
46
+ * and walks each object's `ownerReferences` chain (`./api/owner-chain.ts`)
47
+ * against the entities this very call resolved. A chain reaching one of them
48
+ * is reported with `ownerChain: { root: "declared", ... }`; core's
49
+ * diff/change-set engine reads that as `runtime` instead of `orphan`.
50
+ *
51
+ * Which kinds are candidates is the cluster's own API discovery's answer
52
+ * (#1517): every listable kind it serves, one version per group. The sweep's
53
+ * bound is the namespaces the declared estate touches, never a kind table —
54
+ * see `addRuntimeChildren`.
53
55
  */
54
56
 
55
- import type { ObservationResult, ResourceMetadata, UnobservedEntity } from "@intentius/chant/lexicon";
57
+ import type { ObservationResult, ResourceMetadata, UnobservedEntity, UnobservedReason } from "@intentius/chant/lexicon";
56
58
  import { observation, unobservedAll } from "@intentius/chant/observation";
57
59
  import { hasOwnershipMarker, classifyOwnership, LABEL_OWNERSHIP_KEYS } from "@intentius/chant/ownership";
58
60
  import type { K8sClient, K8sObject } from "@intentius/chant-k8s-client";
@@ -366,44 +368,47 @@ export async function describeResources(
366
368
  }
367
369
  });
368
370
 
369
- // chant #1517 — the API groups this estate's own declarations use. A
370
- // controller's children usually live in its controller's group (a
371
- // MicroVMReplicaSet makes MicroVMs), so the runtime scan sweeps those
372
- // groupVersions' kinds besides Pods. Core (`v1`) is excluded from the group
373
- // sweep — Pods represent it; sweeping every core kind would walk endpoints
374
- // and events for nothing.
375
- const runtimeGroupVersions = new Set<string>();
376
- for (const { entityType } of declared) {
377
- const op = operationFor(entityType);
378
- if (op && op.apiVersion.includes("/")) runtimeGroupVersions.add(op.apiVersion);
379
- }
380
-
381
- await addRuntimeChildren(client, resources, options.owned, runtimeGroupVersions, declared);
371
+ await addRuntimeChildren(client, resources, unobserved, options.owned, declared);
382
372
 
383
373
  return observation(resources, unobserved);
384
374
  }
385
375
 
386
376
  /**
387
- * Scan runtime-child candidates in the namespaces of entities this call just
377
+ * Sweep runtime-child candidates in the namespaces of entities this call just
388
378
  * resolved, and classify each one's owner-reference chain (#1077). Mutates
389
379
  * `resources` in place, adding an entry per object whose chain was worth
390
- * reporting.
380
+ * reporting, and `unobserved` for the parts of the sweep that could not look.
381
+ *
382
+ * The candidate kinds are the cluster's own API discovery's answer (#1517):
383
+ * every listable kind it serves, one version per group (the group's
384
+ * preferredVersion, so nothing is listed twice at a second served version).
385
+ * The first cut scoped this to Pods, the second to the estate's own declared
386
+ * API groups — and both missed exactly where the runtime tier says the most:
387
+ * an operator's children are whatever kinds its controllers make (a
388
+ * MicroVMReplicaSet's MicroVMs, a CR's Deployments in a group the estate
389
+ * never declares), which no kind table can anticipate. The same open-world
390
+ * inversion behold#74 made for declared CRDs, applied to the runtime axis.
391
391
  *
392
- * Two candidate pools:
393
- * - **Pods** — the built-in workload leaf, always scanned.
394
- * - **The estate's own API groups** (#1517) — every namespaced, listable
395
- * kind in each `groupVersions` entry, from the cluster's own discovery.
396
- * An operator estate's interesting children are custom resources its
397
- * controllers made (a MicroVMReplicaSet's MicroVMs), which no kind table
398
- * could anticipate — the same open-world inversion behold#74 made for
399
- * declared CRDs, applied to the runtime axis. Bounded by what the estate
400
- * declares, never a cluster-wide sweep.
392
+ * What bounds the sweep is not a kind list but reach:
393
+ * - **Namespaced kinds** are listed only in the namespaces the declared
394
+ * estate touches (where its entities resolved, plus the namespaces its
395
+ * GitOps CRs target) — owner references cannot cross a namespace, so a
396
+ * child elsewhere could never chain to this estate anyway.
397
+ * - **Cluster-scoped kinds** are listed only when the estate resolved a
398
+ * cluster-scoped entity — a cluster-scoped object's owners are themselves
399
+ * cluster-scoped (Kubernetes' own GC rule), so without one declared there
400
+ * is nothing such a chain could reach.
401
+ * - **It is not an inventory**: outside Pods (whose chain verdicts, foreign
402
+ * included, are #1077's original contract), a swept object is only
403
+ * reported when its chain resolves to a declared entity.
401
404
  *
402
- * Best-effort and additive: a namespace or kind this scan cannot list (RBAC
403
- * denial, a transient error) is simply skipped rather than failing the
404
- * observation — these are not declared entities, so there is no NOT-OBSERVED
405
- * axis for them to report against, the same way an out-of-band AWS child
406
- * resource has none either.
405
+ * Tri-state honesty (#1089, extended to the sweep): a kind discovery names
406
+ * but the sweep cannot list — RBAC denial, a flaking apiserver — becomes a
407
+ * `runtime-sweep:*` entry in `unobserved`, never a silent gap. Silence would
408
+ * read as "no runtime children there", which the failed list never proved.
409
+ * A list 404 (the kind vanished between discovery and the list) stays an
410
+ * absence, per `classifyApiFailure`'s standing rule. Declared-entity
411
+ * resolution is never failed by the sweep.
407
412
  */
408
413
  /** The declared GitOps CRs, indexed the way their controllers' labels can be
409
414
  * resolved (#1549). `byRef` keys are `type\0namespace\0name` (Flux — exact);
@@ -466,11 +471,29 @@ function gitopsOwner(labels: Record<string, string> | undefined, gitops: GitopsI
466
471
  return undefined;
467
472
  }
468
473
 
474
+ /** One candidate kind of the discovery-driven sweep. */
475
+ interface SweptKind {
476
+ apiVersion: string;
477
+ kind: string;
478
+ typeName: string;
479
+ }
480
+
481
+ /**
482
+ * Kinds the sweep skips even though discovery serves them. Not a kind table
483
+ * creeping back in: each entry is a kind that CANNOT attribute to a declared
484
+ * owner — an Event names its subject via `involvedObject`, never
485
+ * `ownerReferences` — and churns by the thousands in any active namespace,
486
+ * so listing it can only cost and never attach.
487
+ */
488
+ function isSweepNoise(info: { kind: string; group: string }): boolean {
489
+ return info.kind === "Event" && (info.group === "" || info.group === "events.k8s.io");
490
+ }
491
+
469
492
  async function addRuntimeChildren(
470
493
  client: K8sClient,
471
494
  resources: Record<string, ResourceMetadata>,
495
+ unobserved: Record<string, UnobservedEntity>,
472
496
  owned: boolean | undefined,
473
- groupVersions: ReadonlySet<string> = new Set(),
474
497
  declared: readonly Declared[] = [],
475
498
  ): Promise<void> {
476
499
  const declaredByUid = new Map<string, string>();
@@ -488,9 +511,11 @@ async function addRuntimeChildren(
488
511
  const gitops = gitopsIndex(declared);
489
512
 
490
513
  const namespaces = new Set<string>();
514
+ let clusterScopedDeclared = false;
491
515
  for (const meta of Object.values(resources)) {
492
516
  const namespace = (meta.attributes as { namespace?: string } | undefined)?.namespace;
493
517
  if (namespace) namespaces.add(namespace);
518
+ else clusterScopedDeclared = true;
494
519
  }
495
520
  // The namespaces a declared GitOps CR TARGETS are declared literals too
496
521
  // (Argo `spec.destination.namespace`, Flux `spec.targetNamespace`) — the
@@ -498,93 +523,147 @@ async function addRuntimeChildren(
498
523
  // reading it off the declaration keeps this bounded by the estate, never a
499
524
  // cluster-wide sweep.
500
525
  for (const ns of gitops.targetNamespaces) namespaces.add(ns);
501
- if (namespaces.size === 0) return;
502
-
503
- // The kinds to scan: Pods, plus each declared groupVersion's namespaced,
504
- // listable kinds from discovery (#1517). A groupVersion the cluster does
505
- // not serve contributes nothing — an answer, not a failure.
506
- const kinds: Array<{ apiVersion: string; kind: string; typeName: string }> = [
507
- { apiVersion: "v1", kind: "Pod", typeName: "K8s::Core::Pod" },
508
- ];
509
- // A GitOps estate's managed WORKLOADS live in groups the estate itself never
510
- // declares (a pure Argo/Flux estate declares only the CRs), so without this
511
- // the label channel could only ever fire on Pods (#1549).
512
- if (gitops.present) {
513
- kinds.push(
514
- { apiVersion: "apps/v1", kind: "Deployment", typeName: "K8s::Apps::Deployment" },
515
- { apiVersion: "apps/v1", kind: "StatefulSet", typeName: "K8s::Apps::StatefulSet" },
516
- { apiVersion: "apps/v1", kind: "DaemonSet", typeName: "K8s::Apps::DaemonSet" },
517
- { apiVersion: "v1", kind: "Service", typeName: "K8s::Core::Service" },
518
- { apiVersion: "v1", kind: "ConfigMap", typeName: "K8s::Core::ConfigMap" },
519
- );
526
+ if (namespaces.size === 0 && !clusterScopedDeclared) return;
527
+
528
+ // Every kind the cluster serves, from its own discovery (#1517): one
529
+ // groupVersion per group, every listable kind, split by scope. Failing to
530
+ // enumerate is a hole the observation must admit — silently sweeping
531
+ // nothing would read as "no runtime children", which was never established.
532
+ let groupVersions: string[];
533
+ try {
534
+ groupVersions = await client.preferredGroupVersions();
535
+ } catch (err) {
536
+ const outcome = classifyApiFailure(err);
537
+ unobserved["runtime-sweep"] = {
538
+ reason: outcome.kind === "unobserved" ? outcome.reason : "read-failed",
539
+ detail:
540
+ "cluster API discovery failed, so runtime children were not swept" +
541
+ (outcome.kind === "unobserved" ? `: ${outcome.detail}` : ""),
542
+ };
543
+ return;
520
544
  }
521
- for (const gv of [...groupVersions].sort()) {
522
- let infos;
545
+
546
+ const perGroup = await client.concurrently(groupVersions, async (gv) => {
523
547
  try {
524
- infos = await client.resources(gv);
525
- } catch {
526
- continue; // best-effort — see the function doc
548
+ return await client.resources(gv);
549
+ } catch (err) {
550
+ const outcome = classifyApiFailure(err);
551
+ if (outcome.kind === "unobserved") {
552
+ unobserved[`runtime-sweep:${gv}`] = {
553
+ reason: outcome.reason,
554
+ detail: `discovery for ${gv} failed, so its kinds were not swept: ${outcome.detail}`,
555
+ };
556
+ }
557
+ return [];
527
558
  }
528
- const [group, version] = [gv.slice(0, gv.indexOf("/")), gv.slice(gv.indexOf("/") + 1)];
559
+ });
560
+
561
+ const namespacedKinds: SweptKind[] = [];
562
+ const clusterKinds: SweptKind[] = [];
563
+ for (const infos of perGroup) {
529
564
  for (const info of infos) {
530
- if (!info.namespaced || !info.verbs.includes("list")) continue;
531
- kinds.push({ apiVersion: gv, kind: info.kind, typeName: gvkToTypeName({ group, version, kind: info.kind }) });
565
+ if (!info.verbs.includes("list") || isSweepNoise(info)) continue;
566
+ const swept: SweptKind = {
567
+ apiVersion: info.apiVersion,
568
+ kind: info.kind,
569
+ typeName: gvkToTypeName({ group: info.group, version: info.version, kind: info.kind }),
570
+ };
571
+ (info.namespaced ? namespacedKinds : clusterKinds).push(swept);
532
572
  }
533
573
  }
534
574
 
535
- await client.concurrently([...namespaces], async (namespace) => {
536
- for (const { apiVersion, kind, typeName } of kinds) {
537
- let objects: K8sObject[];
538
- try {
539
- objects = await client.list({ apiVersion, kind }, { namespace });
540
- } catch {
541
- continue; // best-effort — see the function doc
542
- }
575
+ // A failed list is recorded once per kind, naming every scope it failed in,
576
+ // rather than once per (kind, namespace) — one RBAC rule denying a kind
577
+ // across N namespaces is one hole, not N.
578
+ const listFailures = new Map<
579
+ string,
580
+ { typeName: string; reason: UnobservedReason; scopes: string[]; detail: string }
581
+ >();
543
582
 
544
- await client.concurrently(objects, async (obj) => {
545
- const uid = obj.metadata?.uid;
546
- const name = obj.metadata?.name;
547
- if (!uid || !name || declaredByUid.has(uid)) return; // declared directly, or unaddressable
548
- if (resources[`${namespace}/${name}`]) return; // already reported by an earlier kind
549
-
550
- let ownerChain = await resolveK8sOwnerChain(obj, { declaredByUid, reader: client, namespace });
551
- // The label channel (#1549) — only when the chain itself said nothing:
552
- // a verdict the walk DID reach is never overridden.
553
- if (ownerChain.root !== "declared") {
554
- const entity = gitopsOwner(obj.metadata?.labels, gitops);
555
- if (entity) ownerChain = { root: "declared", entity };
556
- }
557
-
558
- // `--owned`: withhold an object that is neither a runtime child of a
559
- // declared entity nor carrying chant's own marker — the same rule the
560
- // declared-entity read above applies, extended to the undeclared axis
561
- // this scan introduces.
562
- const marker = hasOwnershipMarker(obj.metadata?.labels, LABEL_OWNERSHIP_KEYS);
563
- if (owned && ownerChain.root !== "declared" && !marker) return;
564
-
565
- // An undeclared object with NO owner chain at all is not a runtime
566
- // child — reporting every loose object a group serves would turn the
567
- // scan into an inventory. Pods keep their pre-#1517 reporting (their
568
- // chain verdicts, including foreign, were already part of #1077's
569
- // contract); swept group kinds only report when the chain reaches a
570
- // declared entity.
571
- if (kind !== "Pod" && ownerChain.root !== "declared") return;
572
-
573
- resources[`${namespace}/${name}`] = {
574
- type: typeName,
575
- physicalId: uid,
576
- status: statusFromObject(obj),
577
- lastUpdated: obj.metadata?.creationTimestamp,
578
- ownership: classifyOwnership(obj.metadata?.labels, LABEL_OWNERSHIP_KEYS),
579
- ownerChain,
580
- attributes: pruneUndefined({
581
- namespace,
582
- labels: obj.metadata?.labels,
583
- resourceVersion: obj.metadata?.resourceVersion,
584
- conditions: unhappyConditions(obj),
585
- }),
586
- };
587
- });
583
+ const sweep = async (swept: SweptKind, namespace: string | undefined): Promise<void> => {
584
+ let objects: K8sObject[];
585
+ try {
586
+ objects = await client.list(
587
+ { apiVersion: swept.apiVersion, kind: swept.kind },
588
+ namespace ? { namespace } : {},
589
+ );
590
+ } catch (err) {
591
+ const outcome = classifyApiFailure(err);
592
+ // `absent` (a list 404: the kind vanished between discovery and now)
593
+ // proves no instance exists — nothing to record.
594
+ if (outcome.kind === "unobserved") {
595
+ const key = `runtime-sweep:${swept.apiVersion}/${swept.kind}`;
596
+ const scope = namespace ? `namespace ${namespace}` : "cluster scope";
597
+ const failure = listFailures.get(key);
598
+ if (failure) failure.scopes.push(scope);
599
+ else listFailures.set(key, { typeName: swept.typeName, reason: outcome.reason, scopes: [scope], detail: outcome.detail });
600
+ }
601
+ return;
588
602
  }
603
+
604
+ await client.concurrently(objects, async (obj) => {
605
+ const uid = obj.metadata?.uid;
606
+ const name = obj.metadata?.name;
607
+ if (!uid || !name || declaredByUid.has(uid)) return; // declared directly, or unaddressable
608
+ const key = namespace ? `${namespace}/${name}` : `cluster:${name}`;
609
+ if (resources[key]) return; // already reported by an earlier kind
610
+
611
+ let ownerChain = await resolveK8sOwnerChain(obj, { declaredByUid, reader: client, namespace });
612
+ // The label channel (#1549) — only when the chain itself said nothing:
613
+ // a verdict the walk DID reach is never overridden.
614
+ if (ownerChain.root !== "declared") {
615
+ const entity = gitopsOwner(obj.metadata?.labels, gitops);
616
+ if (entity) ownerChain = { root: "declared", entity };
617
+ }
618
+
619
+ // `--owned`: withhold an object that is neither a runtime child of a
620
+ // declared entity nor carrying chant's own marker — the same rule the
621
+ // declared-entity read above applies, extended to the undeclared axis
622
+ // this scan introduces.
623
+ const marker = hasOwnershipMarker(obj.metadata?.labels, LABEL_OWNERSHIP_KEYS);
624
+ if (owned && ownerChain.root !== "declared" && !marker) return;
625
+
626
+ // An undeclared object with NO owner chain at all is not a runtime
627
+ // child — reporting every loose object the cluster serves would turn
628
+ // the sweep into an inventory. Pods keep their pre-#1517 reporting
629
+ // (their chain verdicts, including foreign, were already part of
630
+ // #1077's contract); every other swept kind only reports when the
631
+ // chain reaches a declared entity.
632
+ if (swept.kind !== "Pod" && ownerChain.root !== "declared") return;
633
+
634
+ resources[key] = {
635
+ type: swept.typeName,
636
+ physicalId: uid,
637
+ status: statusFromObject(obj),
638
+ lastUpdated: obj.metadata?.creationTimestamp,
639
+ ownership: classifyOwnership(obj.metadata?.labels, LABEL_OWNERSHIP_KEYS),
640
+ ownerChain,
641
+ attributes: pruneUndefined({
642
+ namespace,
643
+ labels: obj.metadata?.labels,
644
+ resourceVersion: obj.metadata?.resourceVersion,
645
+ conditions: unhappyConditions(obj),
646
+ }),
647
+ };
648
+ });
649
+ };
650
+
651
+ await client.concurrently([...namespaces], async (namespace) => {
652
+ for (const swept of namespacedKinds) await sweep(swept, namespace);
589
653
  });
654
+
655
+ // Cluster-scoped kinds are swept once (their lists are cluster-wide by
656
+ // nature), and only when a declared cluster-scoped entity exists for a
657
+ // chain to reach — a cluster-scoped object's owners are cluster-scoped.
658
+ if (clusterScopedDeclared) {
659
+ await client.concurrently(clusterKinds, async (swept) => sweep(swept, undefined));
660
+ }
661
+
662
+ for (const [key, failure] of listFailures) {
663
+ unobserved[key] = {
664
+ type: failure.typeName,
665
+ reason: failure.reason,
666
+ detail: `the runtime-children sweep could not list this kind in ${failure.scopes.join(", ")}: ${failure.detail}`,
667
+ };
668
+ }
590
669
  }
@@ -2,6 +2,18 @@
2
2
 
3
3
  // --- Kubernetes Resource classes ---
4
4
 
5
+ export declare class Addon {
6
+ constructor(props: {
7
+ /** Standard object's metadata. */
8
+ metadata?: ObjectMeta;
9
+ /** Spec provides information about the on-disk manifest backing this resource. */
10
+ spec?: Record<string, unknown>;
11
+ });
12
+ readonly name: string;
13
+ readonly namespace: string;
14
+ readonly uid: string;
15
+ }
16
+
5
17
  export declare class Alert {
6
18
  constructor(props: {
7
19
  /** Standard object's metadata. */
@@ -920,6 +932,19 @@ export declare class FlowSchemaList {
920
932
  readonly uid: string;
921
933
  }
922
934
 
935
+ export declare class FluxHelmChart {
936
+ constructor(props: {
937
+ /** Standard object's metadata. */
938
+ metadata?: ObjectMeta;
939
+ /** HelmChartSpec specifies the desired state of a Helm chart. */
940
+ spec?: Record<string, unknown>;
941
+ });
942
+ readonly name: string;
943
+ readonly namespace: string;
944
+ readonly status: Record<string, unknown>;
945
+ readonly uid: string;
946
+ }
947
+
923
948
  export declare class FluxInstance {
924
949
  constructor(props: {
925
950
  /** Standard object's metadata. */
@@ -999,16 +1024,16 @@ export declare class GRPCRoute {
999
1024
  readonly uid: string;
1000
1025
  }
1001
1026
 
1002
- export declare class HelmChart {
1027
+ export declare class HelmChartConfig {
1003
1028
  constructor(props: {
1004
1029
  /** Standard object's metadata. */
1005
1030
  metadata?: ObjectMeta;
1006
- /** HelmChartSpec specifies the desired state of a Helm chart. */
1031
+ /** HelmChartConfigSpec represents additional user-configurable details of an installed and configured Helm chart release.
1032
+ These fields are merged with or override the corresponding fields on the related HelmChart resource. */
1007
1033
  spec?: Record<string, unknown>;
1008
1034
  });
1009
1035
  readonly name: string;
1010
1036
  readonly namespace: string;
1011
- readonly status: Record<string, unknown>;
1012
1037
  readonly uid: string;
1013
1038
  }
1014
1039
 
@@ -1325,6 +1350,19 @@ export declare class JobList {
1325
1350
  readonly uid: string;
1326
1351
  }
1327
1352
 
1353
+ export declare class K3sHelmChart {
1354
+ constructor(props: {
1355
+ /** Standard object's metadata. */
1356
+ metadata?: ObjectMeta;
1357
+ /** HelmChartSpec represents the user-configurable details for installation and upgrade of a Helm chart release. */
1358
+ spec?: Record<string, unknown>;
1359
+ });
1360
+ readonly name: string;
1361
+ readonly namespace: string;
1362
+ readonly status: Record<string, unknown>;
1363
+ readonly uid: string;
1364
+ }
1365
+
1328
1366
  export declare class Kustomization {
1329
1367
  constructor(props: {
1330
1368
  /** Standard object's metadata. */
@@ -1,6 +1,7 @@
1
1
  // Code generated by chant generate. DO NOT EDIT.
2
2
  import { createResource, createProperty } from "./runtime";
3
3
 
4
+ export const Addon = createResource("K8s::K3s::Addon", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
4
5
  export const Alert = createResource("K8s::Flux::Alert", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
5
6
  export const APIGroup = createResource("K8s::Core::APIGroup", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
6
7
  export const APIGroupList = createResource("K8s::Core::APIGroupList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -68,13 +69,14 @@ export const EventsEventList = createResource("K8s::Events::EventList", "k8s", {
68
69
  export const Eviction = createResource("K8s::Policy::Eviction", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
69
70
  export const FlowSchema = createResource("K8s::Flowcontrol::FlowSchema", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
70
71
  export const FlowSchemaList = createResource("K8s::Flowcontrol::FlowSchemaList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
72
+ export const FluxHelmChart = createResource("K8s::Flux::HelmChart", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
71
73
  export const FluxInstance = createResource("K8s::Flux::FluxInstance", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
72
74
  export const FluxReport = createResource("K8s::Flux::FluxReport", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
73
75
  export const Gateway = createResource("K8s::Gateway::Gateway", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
74
76
  export const GatewayClass = createResource("K8s::Gateway::GatewayClass", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
75
77
  export const GitRepository = createResource("K8s::Flux::GitRepository", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
76
78
  export const GRPCRoute = createResource("K8s::Gateway::GRPCRoute", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
77
- export const HelmChart = createResource("K8s::Flux::HelmChart", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
79
+ export const HelmChartConfig = createResource("K8s::K3s::HelmChartConfig", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
78
80
  export const HelmRelease = createResource("K8s::Flux::HelmRelease", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
79
81
  export const HelmRepository = createResource("K8s::Flux::HelmRepository", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
80
82
  export const HorizontalPodAutoscaler = createResource("K8s::Autoscaling::HorizontalPodAutoscaler", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -100,6 +102,7 @@ export const IPAddressList = createResource("K8s::Networking::IPAddressList", "k
100
102
  export const Issuer = createResource("K8s::CertManager::Issuer", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
101
103
  export const Job = createResource("K8s::Batch::Job", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
102
104
  export const JobList = createResource("K8s::Batch::JobList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
105
+ export const K3sHelmChart = createResource("K8s::K3s::HelmChart", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
103
106
  export const Kustomization = createResource("K8s::Flux::Kustomization", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
104
107
  export const Lease = createResource("K8s::Coordination::Lease", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
105
108
  export const LeaseCandidate = createResource("K8s::Coordination::LeaseCandidate", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -332,6 +335,9 @@ export const EnvVar = createProperty("K8s::Core::EnvVar", "k8s");
332
335
  export const EnvVarSource = createProperty("K8s::Core::EnvVarSource", "k8s");
333
336
  export const EphemeralContainer = createProperty("K8s::Core::EphemeralContainer", "k8s");
334
337
  export const ExecAction = createProperty("K8s::Core::ExecAction", "k8s");
338
+ export const FluxHelmChart_SourceRef = createProperty("K8s::Flux::HelmChart.sourceRef", "k8s");
339
+ export const FluxHelmChart_Status = createProperty("K8s::Flux::HelmChart.status", "k8s");
340
+ export const FluxHelmChart_Verify = createProperty("K8s::Flux::HelmChart.verify", "k8s");
335
341
  export const FluxInstance_Cluster = createProperty("K8s::Flux::FluxInstance.cluster", "k8s");
336
342
  export const FluxInstance_CommonMetadata = createProperty("K8s::Flux::FluxInstance.commonMetadata", "k8s");
337
343
  export const FluxInstance_Distribution = createProperty("K8s::Flux::FluxInstance.distribution", "k8s");
@@ -362,9 +368,7 @@ export const GitRepository_Verify = createProperty("K8s::Flux::GitRepository.ver
362
368
  export const GRPCRoute_ParentRef = createProperty("K8s::Gateway::GRPCRoute.parentRefs", "k8s");
363
369
  export const GRPCRoute_Rule = createProperty("K8s::Gateway::GRPCRoute.rules", "k8s");
364
370
  export const GRPCRoute_Status = createProperty("K8s::Gateway::GRPCRoute.status", "k8s");
365
- export const HelmChart_SourceRef = createProperty("K8s::Flux::HelmChart.sourceRef", "k8s");
366
- export const HelmChart_Status = createProperty("K8s::Flux::HelmChart.status", "k8s");
367
- export const HelmChart_Verify = createProperty("K8s::Flux::HelmChart.verify", "k8s");
371
+ export const HelmChartConfig_ValuesSecret = createProperty("K8s::K3s::HelmChartConfig.valuesSecrets", "k8s");
368
372
  export const HelmRelease_Chart = createProperty("K8s::Flux::HelmRelease.chart", "k8s");
369
373
  export const HelmRelease_ChartRef = createProperty("K8s::Flux::HelmRelease.chartRef", "k8s");
370
374
  export const HelmRelease_CommonMetadata = createProperty("K8s::Flux::HelmRelease.commonMetadata", "k8s");
@@ -440,6 +444,13 @@ export const Issuer_SelfSigned = createProperty("K8s::CertManager::Issuer.selfSi
440
444
  export const Issuer_Status = createProperty("K8s::CertManager::Issuer.status", "k8s");
441
445
  export const Issuer_Vault = createProperty("K8s::CertManager::Issuer.vault", "k8s");
442
446
  export const Issuer_Venafi = createProperty("K8s::CertManager::Issuer.venafi", "k8s");
447
+ export const K3sHelmChart_AuthSecret = createProperty("K8s::K3s::HelmChart.authSecret", "k8s");
448
+ export const K3sHelmChart_DockerRegistrySecret = createProperty("K8s::K3s::HelmChart.dockerRegistrySecret", "k8s");
449
+ export const K3sHelmChart_PodSecurityContext = createProperty("K8s::K3s::HelmChart.podSecurityContext", "k8s");
450
+ export const K3sHelmChart_RepoCAConfigMap = createProperty("K8s::K3s::HelmChart.repoCAConfigMap", "k8s");
451
+ export const K3sHelmChart_SecurityContext = createProperty("K8s::K3s::HelmChart.securityContext", "k8s");
452
+ export const K3sHelmChart_Status = createProperty("K8s::K3s::HelmChart.status", "k8s");
453
+ export const K3sHelmChart_ValuesSecret = createProperty("K8s::K3s::HelmChart.valuesSecrets", "k8s");
443
454
  export const KeyToPath = createProperty("K8s::Core::KeyToPath", "k8s");
444
455
  export const Kustomization_CommonMetadata = createProperty("K8s::Flux::Kustomization.commonMetadata", "k8s");
445
456
  export const Kustomization_Decryption = createProperty("K8s::Flux::Kustomization.decryption", "k8s");