diff --git a/.changeset/thin-steaks-hammer.md b/.changeset/thin-steaks-hammer.md new file mode 100644 index 0000000..bfd51e7 --- /dev/null +++ b/.changeset/thin-steaks-hammer.md @@ -0,0 +1,5 @@ +--- +"helm-charts": patch +--- + +chore: Remove snapshot tests and replace with assertions diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b429f08..86f780d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,10 @@ jobs: run: yarn - name: Create Release Pull Request uses: changesets/action@v1 + with: + commit: 'chore(release): bump version' + title: 'Release HyperDX Helm Charts' + version: yarn run version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run chart-releaser job diff --git a/charts/hdx-oss-v2/tests/__snapshot__/ingress_test.yaml.snap b/charts/hdx-oss-v2/tests/__snapshot__/ingress_test.yaml.snap deleted file mode 100644 index 2b52959..0000000 --- a/charts/hdx-oss-v2/tests/__snapshot__/ingress_test.yaml.snap +++ /dev/null @@ -1,8 +0,0 @@ -should render ingress correctly when enabled without TLS: - 1: | - nginx.ingress.kubernetes.io/proxy-body-size: 100m - nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" - nginx.ingress.kubernetes.io/proxy-read-timeout: "60" - nginx.ingress.kubernetes.io/proxy-send-timeout: "60" - nginx.ingress.kubernetes.io/rewrite-target: /$1 - nginx.ingress.kubernetes.io/use-regex: "true" diff --git a/charts/hdx-oss-v2/tests/__snapshot__/otel-collector-disabled_test.yaml.snap b/charts/hdx-oss-v2/tests/__snapshot__/otel-collector-disabled_test.yaml.snap deleted file mode 100644 index db6d463..0000000 --- a/charts/hdx-oss-v2/tests/__snapshot__/otel-collector-disabled_test.yaml.snap +++ /dev/null @@ -1,77 +0,0 @@ -should render OTEL collector with custom ports: - 1: | - apiVersion: apps/v1 - kind: Deployment - metadata: - labels: - app: otel-collector - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: hdx-oss-v2 - app.kubernetes.io/version: 1.0.0 - helm.sh/chart: hdx-oss-v2-0.3.1 - name: RELEASE-NAME-hdx-oss-v2-otel-collector - spec: - replicas: 1 - selector: - matchLabels: - app: otel-collector - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/name: hdx-oss-v2 - template: - metadata: - labels: - app: otel-collector - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/name: hdx-oss-v2 - spec: - containers: - - env: - - name: CLICKHOUSE_ENDPOINT - value: RELEASE-NAME-hdx-oss-v2-clickhouse:9000 - - name: HYPERDX_LOG_LEVEL - value: info - - name: CLICKHOUSE_USER - value: oteluser - - name: CLICKHOUSE_PASSWORD - value: password - image: hyperdx/hyperdx-otel-collector:2-beta - name: otel-collector - ports: - - containerPort: 13999 - - containerPort: 24999 - - containerPort: 4399 - - containerPort: 4399 - - containerPort: 8899 - 2: | - apiVersion: v1 - kind: Service - metadata: - labels: - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: hdx-oss-v2 - app.kubernetes.io/version: 1.0.0 - helm.sh/chart: hdx-oss-v2-0.3.1 - name: RELEASE-NAME-hdx-oss-v2-otel-collector - spec: - ports: - - name: health - port: 13999 - targetPort: 13999 - - name: fluentd - port: 24999 - targetPort: 24999 - - name: otlp-grpc - port: 4399 - targetPort: 4399 - - name: otlp-http - port: 4399 - targetPort: 4399 - - name: metrics - port: 8899 - targetPort: 8899 - selector: - app: otel-collector - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/name: hdx-oss-v2 diff --git a/charts/hdx-oss-v2/tests/__snapshot__/secrets_test.yaml.snap b/charts/hdx-oss-v2/tests/__snapshot__/secrets_test.yaml.snap deleted file mode 100644 index 5e7389c..0000000 --- a/charts/hdx-oss-v2/tests/__snapshot__/secrets_test.yaml.snap +++ /dev/null @@ -1,30 +0,0 @@ -should render clickhouse secrets when clickhouse is enabled: - 1: | - apiVersion: v1 - data: - api-key: eHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4 - kind: Secret - metadata: - labels: - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: hdx-oss-v2 - app.kubernetes.io/version: 1.0.0 - helm.sh/chart: hdx-oss-v2-0.5.1 - name: RELEASE-NAME-hdx-oss-v2-app-secrets - type: Opaque - 2: | - apiVersion: v1 - data: - appUserPassword: dGVzdC1wYXNzd29yZA== - otelUserPassword: dGVzdC1vdGVsLXBhc3N3b3Jk - kind: Secret - metadata: - labels: - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: hdx-oss-v2 - app.kubernetes.io/version: 1.0.0 - helm.sh/chart: hdx-oss-v2-0.5.1 - name: RELEASE-NAME-hdx-oss-v2-clickhouse-secrets - type: Opaque diff --git a/charts/hdx-oss-v2/tests/ingress_test.yaml b/charts/hdx-oss-v2/tests/ingress_test.yaml index 1f5bf46..83e0f16 100644 --- a/charts/hdx-oss-v2/tests/ingress_test.yaml +++ b/charts/hdx-oss-v2/tests/ingress_test.yaml @@ -29,8 +29,29 @@ tests: - equal: path: spec.rules[0].host value: hyperdx.example.com - - matchSnapshot: - path: metadata.annotations + # Validate ingress annotations + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-body-size"] + value: "100m" + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-connect-timeout"] + value: "60" + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-read-timeout"] + value: "60" + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-send-timeout"] + value: "60" + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"] + value: "/$1" + - equal: + path: metadata.annotations["nginx.ingress.kubernetes.io/use-regex"] + value: "true" + # Validate chart version format without exact match + - matchRegex: + path: metadata.labels["helm.sh/chart"] + pattern: ^hdx-oss-v2-\d+\.\d+\.\d+$ - it: should render ingress with TLS when enabled set: diff --git a/charts/hdx-oss-v2/tests/secrets_test.yaml b/charts/hdx-oss-v2/tests/secrets_test.yaml index 114e419..1c41cc9 100644 --- a/charts/hdx-oss-v2/tests/secrets_test.yaml +++ b/charts/hdx-oss-v2/tests/secrets_test.yaml @@ -31,7 +31,67 @@ tests: asserts: - hasDocuments: count: 2 - - matchSnapshot: {} + # App secrets validation + - isKind: + of: Secret + documentIndex: 0 + - equal: + path: metadata.name + value: RELEASE-NAME-hdx-oss-v2-app-secrets + documentIndex: 0 + - equal: + path: type + value: Opaque + documentIndex: 0 + - isNotEmpty: + path: data.api-key + documentIndex: 0 + # ClickHouse secrets validation + - isKind: + of: Secret + documentIndex: 1 + - equal: + path: metadata.name + value: RELEASE-NAME-hdx-oss-v2-clickhouse-secrets + documentIndex: 1 + - equal: + path: type + value: Opaque + documentIndex: 1 + - equal: + path: data.appUserPassword + value: dGVzdC1wYXNzd29yZA== + documentIndex: 1 + - equal: + path: data.otelUserPassword + value: dGVzdC1vdGVsLXBhc3N3b3Jk + documentIndex: 1 + # Validate standard labels exist (without checking helm.sh/chart) + - isSubset: + path: metadata.labels + content: + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: hdx-oss-v2 + app.kubernetes.io/version: 1.0.0 + documentIndex: 0 + - isSubset: + path: metadata.labels + content: + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: hdx-oss-v2 + app.kubernetes.io/version: 1.0.0 + documentIndex: 1 + # Validate chart version format without exact match + - matchRegex: + path: metadata.labels["helm.sh/chart"] + pattern: ^hdx-oss-v2-\d+\.\d+\.\d+$ + documentIndex: 0 + - matchRegex: + path: metadata.labels["helm.sh/chart"] + pattern: ^hdx-oss-v2-\d+\.\d+\.\d+$ + documentIndex: 1 - it: should not render clickhouse secrets when clickhouse is disabled set: