From c727dba045ab40f9c6ffba2f7089d859631462ef Mon Sep 17 00:00:00 2001 From: f1ames Date: Mon, 18 Sep 2023 15:33:22 +0200 Subject: [PATCH 1/2] feat(parser): add flag to filter helm template files --- packages/parser/src/extract.ts | 8 ++++++-- packages/parser/src/file.ts | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/parser/src/extract.ts b/packages/parser/src/extract.ts index 8c7b04cb6..694d707d1 100644 --- a/packages/parser/src/extract.ts +++ b/packages/parser/src/extract.ts @@ -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); diff --git a/packages/parser/src/file.ts b/packages/parser/src/file.ts index 8efde2709..f122c1c5e 100644 --- a/packages/parser/src/file.ts +++ b/packages/parser/src/file.ts @@ -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 || ''); +} From 7357bdff4e8a56b3822e09e1e366354e6674b5d7 Mon Sep 17 00:00:00 2001 From: f1ames Date: Mon, 18 Sep 2023 15:46:46 +0200 Subject: [PATCH 2/2] chore(parser): add changeset --- .changeset/many-jobs-dress.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/many-jobs-dress.md diff --git a/.changeset/many-jobs-dress.md b/.changeset/many-jobs-dress.md new file mode 100644 index 000000000..ee842b33e --- /dev/null +++ b/.changeset/many-jobs-dress.md @@ -0,0 +1,5 @@ +--- +"@monokle/parser": minor +--- + +Added flag to filter helm template files during parsing