Skip to content

Commit

Permalink
🐛 fix k8s manifest scanning bugs (#4131)
Browse files Browse the repository at this point in the history
Signed-off-by: Ivan Milchev <[email protected]>
  • Loading branch information
imilchev authored May 29, 2024
1 parent 69db038 commit dfdcb94
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
5 changes: 5 additions & 0 deletions providers/k8s/connection/shared/resources/manifest_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,11 @@ func ResourcesFromManifest(r io.Reader) ([]k8sRuntime.Object, error) {
break
}

// If for some reason there is no content in the raw object, we skip it.
if len(rawObj.Raw) == 0 {
continue
}

obj, _, err := uniDecoder.Decode(rawObj.Raw, nil, nil)
if err != nil {
obj, _, err = yaml.NewDecodingSerializer(unstructured.UnstructuredJSONScheme).Decode(rawObj.Raw, nil, nil)
Expand Down
25 changes: 16 additions & 9 deletions providers/k8s/resources/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ func discoverPods(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "pod", pod.Namespace.Data, pod.Name.Data, pod.Uid.Data),
},
Name: pod.Namespace.Data + "/" + pod.Name.Data,
Name: assetName(pod.Namespace.Data, pod.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -361,7 +361,7 @@ func discoverJobs(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "job", job.Namespace.Data, job.Name.Data, job.Uid.Data),
},
Name: job.Namespace.Data + "/" + job.Name.Data,
Name: assetName(job.Namespace.Data, job.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -416,7 +416,7 @@ func discoverCronJobs(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "cronjob", cjob.Namespace.Data, cjob.Name.Data, cjob.Uid.Data),
},
Name: cjob.Namespace.Data + "/" + cjob.Name.Data,
Name: assetName(cjob.Namespace.Data, cjob.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -471,7 +471,7 @@ func discoverStatefulSets(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "statefulset", statefulset.Namespace.Data, statefulset.Name.Data, statefulset.Uid.Data),
},
Name: statefulset.Namespace.Data + "/" + statefulset.Name.Data,
Name: assetName(statefulset.Namespace.Data, statefulset.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -526,7 +526,7 @@ func discoverDeployments(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "deployment", deployment.Namespace.Data, deployment.Name.Data, deployment.Uid.Data),
},
Name: deployment.Namespace.Data + "/" + deployment.Name.Data,
Name: assetName(deployment.Namespace.Data, deployment.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -581,7 +581,7 @@ func discoverReplicaSets(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "replicaset", replicaset.Namespace.Data, replicaset.Name.Data, replicaset.Uid.Data),
},
Name: replicaset.Namespace.Data + "/" + replicaset.Name.Data,
Name: assetName(replicaset.Namespace.Data, replicaset.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -636,7 +636,7 @@ func discoverDaemonSets(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "daemonset", daemonset.Namespace.Data, daemonset.Name.Data, daemonset.Uid.Data),
},
Name: daemonset.Namespace.Data + "/" + daemonset.Name.Data,
Name: assetName(daemonset.Namespace.Data, daemonset.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -721,7 +721,7 @@ func discoverIngresses(
PlatformIds: []string{
shared.NewWorkloadPlatformId(clusterId, "ingress", ingress.Namespace.Data, ingress.Name.Data, ingress.Uid.Data),
},
Name: ingress.Namespace.Data + "/" + ingress.Name.Data,
Name: assetName(ingress.Namespace.Data, ingress.Name.Data),
Platform: platform,
Labels: labels,
Connections: []*inventory.Config{invConfig.Clone(inventory.WithoutDiscovery(), inventory.WithParentConnectionId(invConfig.Id))}, // pass-in the parent connection config
Expand Down Expand Up @@ -1002,7 +1002,7 @@ func setRelatedAssets(conn shared.Connection, root *inventory.Asset, assets []*i
a.RelatedAssets = append(a.RelatedAssets, &inventory.Asset{
PlatformIds: []string{ownerPlatformId},
Platform: platformData,
Name: platformEntry.Namespace + "/" + platformEntry.Name,
Name: assetName(platformEntry.Namespace, platformEntry.Name),
})
}
}
Expand Down Expand Up @@ -1083,3 +1083,10 @@ func setNamespaceFilters(cfg *inventory.Config) NamespaceFilterOpts {
}
return nsFilter
}

func assetName(ns, name string) string {
if ns == "" {
return name
}
return ns + "/" + name
}

0 comments on commit dfdcb94

Please sign in to comment.