Skip to content

Commit

Permalink
Merge pull request #516 from kubeshop/f1ames/feat/parser-helm-files
Browse files Browse the repository at this point in the history
feat(parser): add flag to filter helm template files
  • Loading branch information
f1ames authored Sep 18, 2023
2 parents f6a11d3 + 7357bdf commit c3fbca1
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/many-jobs-dress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@monokle/parser": minor
---

Added flag to filter helm template files during parsing
8 changes: 6 additions & 2 deletions packages/parser/src/extract.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
import {LineCounter} from 'yaml';
import {parseAllYamlDocuments} from './parse.js';
import {Resource, createResourceId, createResourceName} from './resource.js';
import {BaseFile, isUntypedKustomizationFile} from './file.js';
import {BaseFile, isUntypedKustomizationFile, isYamlFile, hasHelmTemplateContent} from './file.js';
import {KUSTOMIZATION_API_GROUP, KUSTOMIZATION_KIND} from './constants.js';
import {isKubernetesLike} from './k8s.js';

export function extractK8sResources(files: BaseFile[]): Resource[] {
export function extractK8sResources(files: BaseFile[], extractHelmLikeFiles?: boolean): Resource[] {
const resources: Resource[] = [];

for (const file of files) {
if (!isYamlFile(file) || (!extractHelmLikeFiles && hasHelmTemplateContent(file))) {
continue;
}

const lineCounter = new LineCounter();
const documents = parseAllYamlDocuments(file.content, lineCounter);

Expand Down
6 changes: 6 additions & 0 deletions packages/parser/src/file.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@ export function isYamlFile(file: BaseFile): boolean {
export function isUntypedKustomizationFile(filePath = ''): boolean {
return /kustomization*.yaml/.test(filePath.toLowerCase().trim());
}

const HELM_TEMPLATE_CONTENT_REGEX = /{{[^}]*}}/;

export function hasHelmTemplateContent(file: BaseFile) {
return HELM_TEMPLATE_CONTENT_REGEX.test(file.content || '');
}

0 comments on commit c3fbca1

Please sign in to comment.