Skip to content

Commit

Permalink
fix: exception when retrieving logs from helm resource
Browse files Browse the repository at this point in the history
  • Loading branch information
10ko committed Aug 13, 2019
1 parent b1d0f9a commit 5aa4e95
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion garden-service/src/plugins/kubernetes/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,43 @@ export async function getAllPodNames(api: KubeApi, namespace: string, resources:
return (await getAllPods(api, namespace, resources)).map(p => p.metadata.name)
}

/**
* Given a resources, try to retrieve a valid selector or return undefined otherwise.
*/
export function getSelectorFromResource(resource: KubernetesWorkload) {
// We check if the resource has its own selector
if (resource.spec && resource.spec.selector
&& resource.spec.selector.matchLabels) {
return resource.spec.selector.matchLabels
}
// We check if the pod template has labels
if (resource.spec.template
&& resource.spec.template.metadata
&& resource.spec.template.metadata.labels) {
return resource.spec.template.metadata.labels
}
// We check if the resource is from an Helm Chart
// (as in returned from kubernetes.helm.common.getChartResources(...))
if (resource.metadata
&& resource.metadata.labels
&& resource.metadata.labels.chart
&& resource.metadata.labels.app) {
return {
app: resource.metadata.labels.app,
}
}

// No selector found.
throw new ConfigurationError(`No selector found for ${resource.metadata.name} while retrieving pods.`, {
resource,
})
}

/**
* Retrieve a list of pods based on the provided label selector.
*/
export async function getWorkloadPods(api: KubeApi, namespace: string, resource: KubernetesWorkload) {
const selector = resource.spec.selector.matchLabels
const selector = getSelectorFromResource(resource)
const pods = await getPods(api, resource.metadata.namespace || namespace, selector)

if (resource.kind === "Deployment") {
Expand Down

0 comments on commit 5aa4e95

Please sign in to comment.