Skip to content

Remove MC from AWS Appframework Tests (Phase 1)#1868

Draft
gabrielm-splunk wants to merge 15 commits into
developfrom
remove-mc-aws-appframework-phase1
Draft

Remove MC from AWS Appframework Tests (Phase 1)#1868
gabrielm-splunk wants to merge 15 commits into
developfrom
remove-mc-aws-appframework-phase1

Conversation

@gabrielm-splunk

Copy link
Copy Markdown
Collaborator

Summary

Removes unnecessary Monitoring Console deployments from AWS appframework tests (s1, m4, c3).

Motivation

MC is deployed in these tests but is not the test subject. Each MC deployment adds 4-9 minutes overhead per test. This PR removes MC from AWS appframework tests to improve test execution time.

Changes

Files Modified:

  • test/appframework_aws/s1/appframework_aws_test.go - 303 lines removed, 9 tests modified
  • test/appframework_aws/m4/appframework_aws_test.go - 209 lines removed, 15 tests modified
  • test/appframework_aws/m4/manager_appframework_test.go - 143 lines removed, 17 tests modified
  • test/appframework_aws/c3/appframework_aws_test.go - 141 lines removed, 2 tests modified
  • test/appframework_aws/c3/manager_appframework_test.go - 207 lines removed, 22 tests modified

Total: 1,049 lines removed (net), 65 tests modified

Specific Removals:

  • MC deployment sections (S3 uploads, app framework specs, deployment calls)
  • MonitoringConsoleRef from CR specifications
  • MC verification calls (VerifyMonitoringConsoleReady)
  • MC app source info from verification arrays
  • MC pod arrays from test logic
  • Updated test comments to remove MC references

Expected Impact

Time Savings: 2-3 hours per full AWS appframework test run

  • 65 tests × 4-9 minutes per test = 260-585 minutes saved
  • Conservative estimate: ~4.3 hours → ~2.0 hours (48% reduction)

Resource Savings:

  • Fewer S3 uploads (no MC apps)
  • Fewer pods deployed (no MC StatefulSets)
  • Reduced network overhead (no MC peer registration)

No Functionality Loss: MC is not being tested in these suites

Testing

Compilation: All 5 files compile successfully with ginkgo build

  • test/appframework_aws/s1/s1.test - 35 MB
  • test/appframework_aws/m4/m4.test - 80 MB
  • test/appframework_aws/c3/c3.test - 120 MB

CI Pipeline: GitHub Actions running (full test suite validation)

Related Work

  • Part of MC removal initiative tracked in /remove-mc-infrastructure skill
  • Post PR CSPL-3775 extract common code in tests #1788 refactor research and planning
  • Phase 1 of 3:
    • Phase 1 (this PR): AWS appframework tests (5 files)
    • Phase 2 (future): Azure & GCP appframework tests (10 files)
    • Phase 3 (future): Shared test functions (3 files)

Checklist

  • All files compile without errors
  • No MC references remain in modified files
  • No unused imports or variables
  • Test comments updated
  • Clean git diff
  • CI tests pass
  • Duration comparison shows improvement

Notes

Previous MC removal attempts (PR #1864, #1865) were obsoleted by the PR #1788 refactor. This PR is based on fresh research of the post-refactor codebase.

gabrielm-splunk and others added 15 commits April 16, 2026 14:32
Version 3.0.0 was inadvertently removed by automated PR (commit 1139fcf)
when 3.1.0 was added. Customers reported the version missing from
`helm search repo` results.

Changes:
- Restored 3.0.0 packaged chart from git tag
- Added 3.0.0 entries to docs/index.yaml for both splunk-enterprise and splunk-operator charts
- Chart digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update index.yaml with correct SHA256 digests matching actual tarballs:
- splunk-enterprise-3.0.0: ae82f6c8edee4d827817fe6c9c6447c422a03c59595a0f6e779cef847a83b611
- splunk-operator-3.0.0: bd318b1f4022421a3fd429b186ca344c61d04a3c2bbdd5cc535d960773558e44

Resolves comment from vivekr-splunk on PR #1832

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit addresses four vulnerability findings from the container scanner:

- VULN-71179: Upgrade github.com/aws/aws-sdk-go-v2/service/s3 from v1.84.1 to v1.99.0
- VULN-71171: Upgrade go.opentelemetry.io/otel/sdk from v1.40.0 to v1.43.0
- VULN-71183: Upgrade github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream from v1.6.11 to v1.7.8
- VULN-71182: Upgrade Go stdlib from v1.25.8 to v1.26.2

All dependency updates meet or exceed the minimum versions required by the
container scanner. Unit tests pass with 83.6% composite coverage.

Jira: VULN-71179, VULN-71171, VULN-71183, VULN-71182

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Update Go version references in build configuration files to match
the go.mod update for VULN-71182 compliance.

Files updated:
- Dockerfile: golang:1.25.8 -> golang:1.26.2
- Dockerfile.distroless: golang:1.25.8 -> golang:1.26.2
- .env: GO_VERSION=1.25.8 -> GO_VERSION=1.26.2

GitHub Actions workflows automatically use GO_VERSION from .env,
so no workflow file changes are needed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Introduce a feature gate registry backed by k8s.io/component-base/featuregate
so new capabilities can be gated behind --feature-gates=<Gate>=true|false with
Alpha/Beta/GA lifecycle. Migrate the validation webhook toggle from the
ENABLE_VALIDATION_WEBHOOK env var to a ValidationWebhook feature gate with
backwards-compatible env var support.

- Add pkg/config/featuregates.go registry with SetupFeatureGates and
  IsFeatureGateEnabled helpers, plus unit tests
- Wire feature gate flags into cmd/main.go and log effective gate states
  at startup
- Use os.LookupEnv for ENABLE_VALIDATION_WEBHOOK so the deprecation
  warning fires whenever the env var is set, not just when it equals "true"
- Update kustomization files with SPLUNK_GENERAL_TERMS value
- Add docs/FeatureGates.md with usage and instructions for adding new gates
- Update docs/ValidationWebhook.md with CLI-over-env-var precedence note
* Embed values

* Embed values

* Move fixtures

* Fix copyrights
Fix container scan vulnerabilities (VULN-71179, VULN-71171, VULN-71183, VULN-71182)
Restore helm chart version 3.0.0 to repository index
Add splunkOperator.featureGates map to values so operators can
enable feature gates via helm install/upgrade without per-gate
chart modifications. A helper template formats the map into a
single --feature-gates=Key1=true,Key2=false arg; the deployment
template conditionally includes it when the map is non-empty.

Also introduces helm-unittest with Makefile targets (helm-lint,
helm-test, helm-check) and fixes a pre-existing nindent bug in
the extraEnvs rendering.
* upgrade moby/spdystream version

* update ubi8 minimal image
* Feature/CSPL-4397 Eliminate reliance on time in tests (#1735)

* CSPL-4397 Remove time dependency from tests

* CSPL-4397 Removing test reliance on time

* CSPL-4397 Adjusting timeouts

* CSPL-4354 Fixing time dependencies in unit tests and fixing timeouts in integ tests

* CSPL-4397 Move to using watch

* CSPL-4397 Refactor pod reset detection to use UID-based tracking instead of time-based comparison, add fail-fast test prerequisites validation, and improve code clarity with variable renaming

* CSPL-4397 Refactoring

* CSPL-4397 Addressing comments

* CSPL-4602 Moving duplicated code for LM tests to a shared codebase (#1768)

* CSPL-4602 Moving duplicated code for LM tests to a shared codebase

* CSPL-4602 Addinf license manager tests to workflows

* CSPL-4602 Address comments

* CSPL-4602 Moving LM shared test utils to licensemanager package

* CSPL-4602 Addressing base branch changes

* Feature/cspl 4377 remove panic from test (#1777)

* CSPL-4377 Get rid of not expected panic in tests

* CSPL-4377 Check error for app disablement in tests

* CSPL-3775 Extract setup/teardown functions

* CSPL-3775 Extract common code for secret tests

* CSPL-3775 Extract CRUD common code

* CSPL-3775 Extract common code for smartstore tests

* CSPL-3775 Combining code into re-usable functions

* CSPL-3775 Fix pipeline issues after the changes

* CSPL-3775 Refactoring app fw tests to use before each and after each  code

* CSPL-3775 Extracting common constants

* CSPL-3775 Ingest functions

* CSPL-3775 Move verify prerequisites to setup

* CSPL-3775 Remove constants that already exist

* CSPL-3775 Standardizing suite_test.go

* CSPL-3775 Remove unused functions

* CSPL-3775 Replcaing duplicates among different tests

* CSPL-3775 Eliminating duplicated v3/v4 branching logic

* CSPL-3775 Each test case delegates to a shared Run*Test function, keeping the test file as a thin dispatch layer

* CSPL-3775 Standardize test code by fixing typos in log messages/comments, removing duplicate helpers, replacing inline logic with shared utilities

* CSPL-3775 Consistency improvements

* Fix Silent Failures  (#1785)

* Enhance error handling in WaitforPhaseChange and fix variable name in NewTestCaseEnv

* Updated WaitforPhaseChange to log an error if the phase transition is not observed within the timeout.
* Corrected the variable name check in NewTestCaseEnv to use the provided name instead of an uninitialized envName.
* Changed Kind from "ClusterManager" to "ClusterMaster" in ClusterMaster struct.

* Update error logging in WaitforPhaseChange to use Error level for timeout observations

* CSPL-3775 Refactoring - common naming, format and making sure functinality is not malformed

* CSPL-3775 Eliminate duplicated verification patterns, fix redundant code, and standardize naming, godoc comments, and constants for consistency

* CSPL-3775 Reorganizing utils

* CSPL-3775 Removing gomega/ginkgo from utils

* CSPL-3775 Addressing timeout comments

* CSPL-3775 Fix test failures

* CSPL-3665 Fix License Manager tests

* CSPL-3775 Removing duplicates

* CSPL-3775 Move assertions out of helper functions

* CSPL-3775 Remove redundant inputs

* CSPL-3775 Final polishing to remove duplicates and make codebase more consistent

* CSPL-3775 Restoring accidentally removed test cases

* CSPL-3775 Making some improvements

* CSPL-3775 Adjust timeouts

* CSPL-4378 Adding timeout to app fw verification

* CSPL-4378 Fix failing managersmartstore test

* CSPL-3775 Revert changes that only match v3, skipped for v4

* CSPL-3775 Restoring backward compatibility

* CSPL-3775 Add missing assertions

* CSPL-3775 Add missing assertions

* CSPL-3775 Fixing manager smart store tests

* CSPL-3775 Increase timeout for app fw

* CSPL-3775 Adjust timeouts

* CSPL-3775 Increasing timeouts

* CSPL-3775 Fix introduced backward incompatibility

* CSPL-3775 Fix failing helm tests

---------

Co-authored-by: Jakub Buczak <jbuczak@splunk.com>
Removes unnecessary Monitoring Console deployments from AWS
appframework test suite (s1, m4, c3). MC is not the test subject
in these tests, just an incidental deployment adding 4-9 minutes
overhead per test.

Changes:
- Remove MC deployment sections (S3 uploads, app framework specs)
- Remove MonitoringConsoleRef from CR specs
- Pass empty string for mcRef parameters in deployment functions
- Remove MC verification calls (VerifyMonitoringConsoleReady)
- Remove MC app source info from verification arrays
- Remove MC pod arrays from verification logic
- Update test comments to remove MC references
- Fix variable scoping issues post-MC removal

Files Modified:
- test/appframework_aws/s1/appframework_aws_test.go (303 lines removed, 9 tests)
- test/appframework_aws/m4/appframework_aws_test.go (209 lines removed, 15 tests)
- test/appframework_aws/m4/manager_appframework_test.go (143 lines removed, 17 tests)
- test/appframework_aws/c3/appframework_aws_test.go (141 lines removed, 2 tests)
- test/appframework_aws/c3/manager_appframework_test.go (207 lines removed, 22 tests)

Total: 1,049 lines removed (net), 65 tests modified, all files compile successfully.

Expected impact: 2-3 hour reduction in AWS appframework test runtime
(65 tests × 4-9 minutes per test = 260-585 minutes saved).

Refs: /remove-mc-infrastructure skill, sok-testing-expert
Remove extra blank lines per go fmt standards.
Accept typo fix (sucessful→successful) and keep MC removed from comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants