@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.
- package/dist/api/classify.d.ts.map +1 -1
- package/dist/api/connect.d.ts.map +1 -1
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/components/argo-app.d.ts +104 -0
- package/dist/components/argo-app.d.ts.map +1 -0
- package/dist/components/builders.d.ts +8 -0
- package/dist/components/builders.d.ts.map +1 -1
- package/dist/components/capability-plugin.d.ts +1 -0
- package/dist/components/capability-plugin.d.ts.map +1 -1
- package/dist/components/flux-reconcile.d.ts +84 -0
- package/dist/components/flux-reconcile.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/kustomize-apply.d.ts +29 -7
- package/dist/components/kustomize-apply.d.ts.map +1 -1
- package/dist/composites/flux-app.d.ts +132 -0
- package/dist/composites/flux-app.d.ts.map +1 -0
- package/dist/composites/index.d.ts +2 -0
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/config-schema.d.ts +3 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config.d.ts +32 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/crd/crd-sources.d.ts.map +1 -1
- package/dist/crd/parser.d.ts.map +1 -1
- package/dist/deep-observe-hooks.d.ts +8 -0
- package/dist/deep-observe-hooks.d.ts.map +1 -1
- package/dist/describe-resources.d.ts +10 -8
- package/dist/describe-resources.d.ts.map +1 -1
- package/dist/generated/index.d.ts +15 -4
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +10 -6
- package/dist/kube/connect.d.ts +5 -4
- package/dist/kube/connect.d.ts.map +1 -1
- package/dist/kube/get.d.ts +4 -4
- package/dist/kustomize/render.d.ts +15 -0
- package/dist/kustomize/render.d.ts.map +1 -0
- package/dist/kustomize/rendered-entity.d.ts +39 -0
- package/dist/kustomize/rendered-entity.d.ts.map +1 -0
- package/dist/kustomize/root.d.ts +19 -0
- package/dist/kustomize/root.d.ts.map +1 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/argo-helpers.d.ts +2 -0
- package/dist/lint/post-synth/argo-helpers.d.ts.map +1 -1
- package/dist/lint/post-synth/flux002.d.ts +14 -0
- package/dist/lint/post-synth/flux002.d.ts.map +1 -0
- package/dist/lint/post-synth/flux003.d.ts +17 -0
- package/dist/lint/post-synth/flux003.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/rules/flux-source-ref-pin.d.ts +16 -0
- package/dist/lint/rules/flux-source-ref-pin.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/meta.json +92 -16
- package/dist/okf/index.md +256 -0
- package/dist/okf/rules/ARGO001.md +16 -0
- package/dist/okf/rules/ARGO002.md +16 -0
- package/dist/okf/rules/ARGO003.md +15 -0
- package/dist/okf/rules/ARGO004.md +17 -0
- package/dist/okf/rules/ARGO005.md +15 -0
- package/dist/okf/rules/FLUX001.md +17 -0
- package/dist/okf/rules/FLUX002.md +19 -0
- package/dist/okf/rules/FLUX003.md +15 -0
- package/dist/okf/rules/WK8001.md +16 -0
- package/dist/okf/rules/WK8002.md +20 -0
- package/dist/okf/rules/WK8003.md +19 -0
- package/dist/okf/rules/WK8005.md +11 -0
- package/dist/okf/rules/WK8006.md +11 -0
- package/dist/okf/rules/WK8041.md +11 -0
- package/dist/okf/rules/WK8042.md +11 -0
- package/dist/okf/rules/WK8101.md +11 -0
- package/dist/okf/rules/WK8102.md +11 -0
- package/dist/okf/rules/WK8103.md +11 -0
- package/dist/okf/rules/WK8104.md +15 -0
- package/dist/okf/rules/WK8105.md +11 -0
- package/dist/okf/rules/WK8201.md +11 -0
- package/dist/okf/rules/WK8202.md +11 -0
- package/dist/okf/rules/WK8203.md +11 -0
- package/dist/okf/rules/WK8204.md +11 -0
- package/dist/okf/rules/WK8205.md +11 -0
- package/dist/okf/rules/WK8207.md +11 -0
- package/dist/okf/rules/WK8208.md +11 -0
- package/dist/okf/rules/WK8209.md +11 -0
- package/dist/okf/rules/WK8301.md +16 -0
- package/dist/okf/rules/WK8302.md +11 -0
- package/dist/okf/rules/WK8303.md +15 -0
- package/dist/okf/rules/WK8304.md +15 -0
- package/dist/okf/rules/WK8305.md +15 -0
- package/dist/okf/rules/WK8306.md +11 -0
- package/dist/okf/rules/WK8401.md +15 -0
- package/dist/okf/rules/WK8402.md +15 -0
- package/dist/okf/rules/WK8403.md +15 -0
- package/dist/okf/types/APIGroup.md +16 -0
- package/dist/okf/types/APIGroupList.md +13 -0
- package/dist/okf/types/APIResourceList.md +14 -0
- package/dist/okf/types/APIService.md +14 -0
- package/dist/okf/types/APIServiceList.md +14 -0
- package/dist/okf/types/APIVersions.md +14 -0
- package/dist/okf/types/Addon.md +14 -0
- package/dist/okf/types/Alert.md +14 -0
- package/dist/okf/types/AppProject.md +19 -0
- package/dist/okf/types/Application.md +23 -0
- package/dist/okf/types/ApplicationSet.md +18 -0
- package/dist/okf/types/Backup.md +14 -0
- package/dist/okf/types/BatchJob.md +14 -0
- package/dist/okf/types/Binding.md +14 -0
- package/dist/okf/types/Bucket.md +18 -0
- package/dist/okf/types/CM.md +16 -0
- package/dist/okf/types/CSIDriver.md +14 -0
- package/dist/okf/types/CSIDriverList.md +14 -0
- package/dist/okf/types/CSINode.md +14 -0
- package/dist/okf/types/CSINodeList.md +14 -0
- package/dist/okf/types/CSIStorageCapacity.md +17 -0
- package/dist/okf/types/CSIStorageCapacityList.md +14 -0
- package/dist/okf/types/Certificate.md +18 -0
- package/dist/okf/types/CertificateRequest.md +14 -0
- package/dist/okf/types/CertificateSigningRequest.md +14 -0
- package/dist/okf/types/CertificateSigningRequestList.md +14 -0
- package/dist/okf/types/Challenge.md +14 -0
- package/dist/okf/types/Cluster.md +14 -0
- package/dist/okf/types/ClusterIssuer.md +14 -0
- package/dist/okf/types/ClusterRole.md +15 -0
- package/dist/okf/types/ClusterRoleBinding.md +15 -0
- package/dist/okf/types/ClusterRoleBindingList.md +14 -0
- package/dist/okf/types/ClusterRoleList.md +14 -0
- package/dist/okf/types/ClusterTrustBundle.md +14 -0
- package/dist/okf/types/ClusterTrustBundleList.md +14 -0
- package/dist/okf/types/ComponentStatus.md +14 -0
- package/dist/okf/types/ComponentStatusList.md +14 -0
- package/dist/okf/types/ConfigMapList.md +14 -0
- package/dist/okf/types/ControllerRevision.md +15 -0
- package/dist/okf/types/ControllerRevisionList.md +14 -0
- package/dist/okf/types/CoreEventList.md +14 -0
- package/dist/okf/types/CrdbCluster.md +14 -0
- package/dist/okf/types/CronJob.md +20 -0
- package/dist/okf/types/CronJobList.md +14 -0
- package/dist/okf/types/CustomResourceDefinition.md +14 -0
- package/dist/okf/types/CustomResourceDefinitionList.md +14 -0
- package/dist/okf/types/DaemonSet.md +19 -0
- package/dist/okf/types/DaemonSetList.md +14 -0
- package/dist/okf/types/DeleteOptions.md +18 -0
- package/dist/okf/types/Deploy.md +14 -0
- package/dist/okf/types/DeploymentList.md +14 -0
- package/dist/okf/types/DeviceClass.md +14 -0
- package/dist/okf/types/DeviceClassList.md +14 -0
- package/dist/okf/types/DeviceTaintRule.md +14 -0
- package/dist/okf/types/DeviceTaintRuleList.md +14 -0
- package/dist/okf/types/EndpointSlice.md +16 -0
- package/dist/okf/types/EndpointSliceList.md +14 -0
- package/dist/okf/types/Endpoints.md +14 -0
- package/dist/okf/types/EndpointsList.md +14 -0
- package/dist/okf/types/Event.md +27 -0
- package/dist/okf/types/EventsEvent.md +27 -0
- package/dist/okf/types/EventsEventList.md +14 -0
- package/dist/okf/types/Eviction.md +14 -0
- package/dist/okf/types/FlowSchema.md +14 -0
- package/dist/okf/types/FlowSchemaList.md +14 -0
- package/dist/okf/types/FluxHelmChart.md +14 -0
- package/dist/okf/types/FluxInstance.md +14 -0
- package/dist/okf/types/FluxReport.md +14 -0
- package/dist/okf/types/GRPCRoute.md +14 -0
- package/dist/okf/types/Gateway.md +14 -0
- package/dist/okf/types/GatewayClass.md +14 -0
- package/dist/okf/types/GitRepository.md +19 -0
- package/dist/okf/types/HTTPRoute.md +14 -0
- package/dist/okf/types/HelmChartConfig.md +14 -0
- package/dist/okf/types/HelmRelease.md +14 -0
- package/dist/okf/types/HelmRepository.md +14 -0
- package/dist/okf/types/HorizontalPodAutoscaler.md +14 -0
- package/dist/okf/types/HorizontalPodAutoscalerList.md +14 -0
- package/dist/okf/types/IPAddress.md +14 -0
- package/dist/okf/types/IPAddressList.md +14 -0
- package/dist/okf/types/ImagePolicy.md +14 -0
- package/dist/okf/types/ImageRepository.md +14 -0
- package/dist/okf/types/ImageUpdateAutomation.md +14 -0
- package/dist/okf/types/InfisicalDynamicSecret.md +14 -0
- package/dist/okf/types/InfisicalPushSecret.md +14 -0
- package/dist/okf/types/InfisicalSecret.md +14 -0
- package/dist/okf/types/Ing.md +14 -0
- package/dist/okf/types/IngressClass.md +14 -0
- package/dist/okf/types/IngressClassList.md +14 -0
- package/dist/okf/types/IngressList.md +14 -0
- package/dist/okf/types/IngressRoute.md +14 -0
- package/dist/okf/types/IngressRouteTCP.md +14 -0
- package/dist/okf/types/IngressRouteUDP.md +14 -0
- package/dist/okf/types/Issuer.md +14 -0
- package/dist/okf/types/JobList.md +14 -0
- package/dist/okf/types/K3sHelmChart.md +14 -0
- package/dist/okf/types/Kustomization.md +20 -0
- package/dist/okf/types/Lease.md +14 -0
- package/dist/okf/types/LeaseCandidate.md +14 -0
- package/dist/okf/types/LeaseCandidateList.md +14 -0
- package/dist/okf/types/LeaseList.md +14 -0
- package/dist/okf/types/LimitRange.md +14 -0
- package/dist/okf/types/LimitRangeList.md +14 -0
- package/dist/okf/types/LocalSubjectAccessReview.md +14 -0
- package/dist/okf/types/MicroVM.md +14 -0
- package/dist/okf/types/MicroVMClass.md +14 -0
- package/dist/okf/types/MicroVMImage.md +14 -0
- package/dist/okf/types/MicroVMNetwork.md +14 -0
- package/dist/okf/types/MicroVMReplicaSet.md +14 -0
- package/dist/okf/types/Middleware.md +14 -0
- package/dist/okf/types/MiddlewareTCP.md +14 -0
- package/dist/okf/types/MutatingAdmissionPolicy.md +14 -0
- package/dist/okf/types/MutatingAdmissionPolicyBinding.md +14 -0
- package/dist/okf/types/MutatingAdmissionPolicyBindingList.md +14 -0
- package/dist/okf/types/MutatingAdmissionPolicyList.md +14 -0
- package/dist/okf/types/MutatingWebhookConfiguration.md +14 -0
- package/dist/okf/types/MutatingWebhookConfigurationList.md +14 -0
- package/dist/okf/types/Namespace.md +19 -0
- package/dist/okf/types/NamespaceList.md +14 -0
- package/dist/okf/types/NetPol.md +14 -0
- package/dist/okf/types/NetworkPolicyList.md +14 -0
- package/dist/okf/types/Node.md +22 -0
- package/dist/okf/types/NodeList.md +14 -0
- package/dist/okf/types/OCIRepository.md +18 -0
- package/dist/okf/types/ObjectStore.md +14 -0
- package/dist/okf/types/Order.md +14 -0
- package/dist/okf/types/PDB.md +18 -0
- package/dist/okf/types/PersistentVolume.md +14 -0
- package/dist/okf/types/PersistentVolumeClaim.md +14 -0
- package/dist/okf/types/PersistentVolumeClaimList.md +14 -0
- package/dist/okf/types/PersistentVolumeList.md +14 -0
- package/dist/okf/types/Pod.md +18 -0
- package/dist/okf/types/PodCertificateRequest.md +14 -0
- package/dist/okf/types/PodCertificateRequestList.md +14 -0
- package/dist/okf/types/PodDisruptionBudgetList.md +14 -0
- package/dist/okf/types/PodList.md +14 -0
- package/dist/okf/types/PodTemplate.md +14 -0
- package/dist/okf/types/PodTemplateList.md +14 -0
- package/dist/okf/types/Pooler.md +14 -0
- package/dist/okf/types/PriorityClass.md +17 -0
- package/dist/okf/types/PriorityClassList.md +14 -0
- package/dist/okf/types/PriorityLevelConfiguration.md +14 -0
- package/dist/okf/types/PriorityLevelConfigurationList.md +14 -0
- package/dist/okf/types/PrometheusRule.md +14 -0
- package/dist/okf/types/Provider.md +14 -0
- package/dist/okf/types/RayCluster.md +20 -0
- package/dist/okf/types/RayJob.md +14 -0
- package/dist/okf/types/RayService.md +14 -0
- package/dist/okf/types/Receiver.md +14 -0
- package/dist/okf/types/ReferenceGrant.md +14 -0
- package/dist/okf/types/ReplicaSet.md +19 -0
- package/dist/okf/types/ReplicaSetList.md +14 -0
- package/dist/okf/types/ReplicationController.md +14 -0
- package/dist/okf/types/ReplicationControllerList.md +14 -0
- package/dist/okf/types/ResourceClaim.md +14 -0
- package/dist/okf/types/ResourceClaimList.md +14 -0
- package/dist/okf/types/ResourceClaimTemplate.md +14 -0
- package/dist/okf/types/ResourceClaimTemplateList.md +14 -0
- package/dist/okf/types/ResourceQuota.md +14 -0
- package/dist/okf/types/ResourceQuotaList.md +14 -0
- package/dist/okf/types/ResourceSet.md +14 -0
- package/dist/okf/types/ResourceSetInputProvider.md +14 -0
- package/dist/okf/types/ResourceSlice.md +14 -0
- package/dist/okf/types/ResourceSliceList.md +14 -0
- package/dist/okf/types/Role.md +14 -0
- package/dist/okf/types/RoleBinding.md +15 -0
- package/dist/okf/types/RoleBindingList.md +14 -0
- package/dist/okf/types/RoleList.md +14 -0
- package/dist/okf/types/RuntimeClass.md +16 -0
- package/dist/okf/types/RuntimeClassList.md +14 -0
- package/dist/okf/types/SA.md +16 -0
- package/dist/okf/types/Scale.md +14 -0
- package/dist/okf/types/ScheduledBackup.md +14 -0
- package/dist/okf/types/Sec.md +17 -0
- package/dist/okf/types/SecretList.md +14 -0
- package/dist/okf/types/SelfSubjectAccessReview.md +14 -0
- package/dist/okf/types/SelfSubjectReview.md +13 -0
- package/dist/okf/types/SelfSubjectRulesReview.md +14 -0
- package/dist/okf/types/ServersTransport.md +14 -0
- package/dist/okf/types/ServersTransportTCP.md +14 -0
- package/dist/okf/types/Service.md +20 -0
- package/dist/okf/types/ServiceAccountList.md +14 -0
- package/dist/okf/types/ServiceCIDR.md +14 -0
- package/dist/okf/types/ServiceCIDRList.md +14 -0
- package/dist/okf/types/ServiceList.md +14 -0
- package/dist/okf/types/ServiceMonitor.md +14 -0
- package/dist/okf/types/StatefulSet.md +19 -0
- package/dist/okf/types/StatefulSetList.md +14 -0
- package/dist/okf/types/Status.md +17 -0
- package/dist/okf/types/StorageClass.md +20 -0
- package/dist/okf/types/StorageClassList.md +14 -0
- package/dist/okf/types/StorageVersionMigration.md +14 -0
- package/dist/okf/types/StorageVersionMigrationList.md +14 -0
- package/dist/okf/types/SubjectAccessReview.md +14 -0
- package/dist/okf/types/TLSOption.md +14 -0
- package/dist/okf/types/TLSStore.md +14 -0
- package/dist/okf/types/TokenRequest.md +14 -0
- package/dist/okf/types/TokenReview.md +14 -0
- package/dist/okf/types/TraefikService.md +14 -0
- package/dist/okf/types/ValidatingAdmissionPolicy.md +14 -0
- package/dist/okf/types/ValidatingAdmissionPolicyBinding.md +14 -0
- package/dist/okf/types/ValidatingAdmissionPolicyBindingList.md +14 -0
- package/dist/okf/types/ValidatingAdmissionPolicyList.md +14 -0
- package/dist/okf/types/ValidatingWebhookConfiguration.md +14 -0
- package/dist/okf/types/ValidatingWebhookConfigurationList.md +14 -0
- package/dist/okf/types/VolumeAttachment.md +14 -0
- package/dist/okf/types/VolumeAttachmentList.md +14 -0
- package/dist/okf/types/VolumeAttributesClass.md +15 -0
- package/dist/okf/types/VolumeAttributesClassList.md +14 -0
- package/dist/okf/types/WatchEvent.md +14 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/argo-helpers.ts +2 -0
- package/dist/rules/flux-source-ref-pin.ts +52 -0
- package/dist/rules/flux002.ts +77 -0
- package/dist/rules/flux003.ts +75 -0
- package/dist/serializer.d.ts.map +1 -1
- package/dist/skills/chant-k8s-flux.md +162 -0
- package/dist/types/index.d.ts +41 -3
- package/dist/validate.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api/classify.test.ts +20 -0
- package/src/api/classify.ts +8 -1
- package/src/api/connect.ts +10 -0
- package/src/codegen/docs.ts +11 -0
- package/src/components/argo-app.test.ts +137 -0
- package/src/components/argo-app.ts +163 -0
- package/src/components/builders.ts +8 -0
- package/src/components/capability-plugin.ts +11 -1
- package/src/components/flux-reconcile.test.ts +145 -0
- package/src/components/flux-reconcile.ts +159 -0
- package/src/components/index.ts +13 -0
- package/src/components/kustomize-apply.ts +12 -41
- package/src/composites/composites.test.ts +122 -0
- package/src/composites/flux-app.ts +274 -0
- package/src/composites/index.ts +9 -0
- package/src/config-augmentation.test.ts +72 -0
- package/src/config-schema.ts +5 -0
- package/src/config.ts +33 -5
- package/src/crd/crd-sources.ts +37 -0
- package/src/crd/parser.ts +6 -0
- package/src/deep-observe-hooks.ts +60 -0
- package/src/deep-observe.test.ts +114 -0
- package/src/describe-resources.test.ts +215 -6
- package/src/describe-resources.ts +197 -118
- package/src/generated/index.d.ts +41 -3
- package/src/generated/index.ts +15 -4
- package/src/generated/lexicon-k8s.json +92 -16
- package/src/generated/operations.json +48 -0
- package/src/index.ts +4 -0
- package/src/kube/connect.ts +5 -4
- package/src/kube/get.ts +4 -4
- package/src/kustomize/render.ts +84 -0
- package/src/kustomize/rendered-entity.ts +72 -0
- package/src/kustomize/root.test.ts +268 -0
- package/src/kustomize/root.ts +109 -0
- package/src/lint/audit-catalog.ts +2 -0
- package/src/lint/post-synth/argo-helpers.ts +2 -0
- package/src/lint/post-synth/flux002.ts +77 -0
- package/src/lint/post-synth/flux003.ts +75 -0
- package/src/lint/post-synth/index.ts +4 -0
- package/src/lint/post-synth/post-synth.test.ts +132 -0
- package/src/lint/rules/flux-source-ref-pin.ts +52 -0
- package/src/lint/rules/rules.test.ts +51 -0
- package/src/plugin.test.ts +2 -0
- package/src/plugin.ts +47 -0
- package/src/serializer.ts +34 -4
- package/src/skills/chant-k8s-flux.md +162 -0
- package/src/testdata/kustomize-root/base/deployment.yaml +17 -0
- package/src/testdata/kustomize-root/base/kustomization.yaml +3 -0
- package/src/testdata/kustomize-root/base/service.yaml +9 -0
- package/src/testdata/kustomize-root/overlays/prod/kustomization.yaml +6 -0
- 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
|
|
46
|
-
* each
|
|
47
|
-
* entities this very call resolved. A chain reaching one of them
|
|
48
|
-
* with `ownerChain: { root: "declared", ... }`; core's
|
|
49
|
-
* reads that as `runtime` instead of `orphan`.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
393
|
-
* - **
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
*
|
|
400
|
-
*
|
|
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
|
-
*
|
|
403
|
-
*
|
|
404
|
-
*
|
|
405
|
-
*
|
|
406
|
-
*
|
|
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
|
-
//
|
|
504
|
-
//
|
|
505
|
-
//
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
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
|
-
|
|
522
|
-
|
|
545
|
+
|
|
546
|
+
const perGroup = await client.concurrently(groupVersions, async (gv) => {
|
|
523
547
|
try {
|
|
524
|
-
|
|
525
|
-
} catch {
|
|
526
|
-
|
|
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
|
-
|
|
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.
|
|
531
|
-
|
|
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
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
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
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
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
|
}
|
package/src/generated/index.d.ts
CHANGED
|
@@ -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
|
|
1027
|
+
export declare class HelmChartConfig {
|
|
1003
1028
|
constructor(props: {
|
|
1004
1029
|
/** Standard object's metadata. */
|
|
1005
1030
|
metadata?: ObjectMeta;
|
|
1006
|
-
/**
|
|
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. */
|
package/src/generated/index.ts
CHANGED
|
@@ -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
|
|
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
|
|
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");
|