-
Notifications
You must be signed in to change notification settings - Fork 21
refactor: use OSS Pulsar image and charts for e2e tests #366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR refactors the e2e test infrastructure to use open-source Apache Pulsar images and Helm charts instead of proprietary StreamNative Platform images. The motivation is to enable testing on newer Kubernetes versions and make it easier for OSS contributors to run tests locally without requiring license keys. The changes update CI workflows, test utilities, and configuration files to work with OSS Pulsar images that don't include the pulsarctl binary. Additionally, the PR addresses various lint findings from the golangci-lint v2 configuration upgrade.
Key Changes:
- Migrates from StreamNative Platform 2.10.4.3 to Apache Pulsar 4.1.2 Docker images
- Updates test commands from
pulsarctltopulsar-adminfor compatibility with OSS images - Updates Kubernetes version support from v1.19.11 to v1.34.2
- Upgrades golangci-lint from v1.55.2 to v2.7.2 with v2 configuration format
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/e2e_test.yml | Updates CI to use OSS Pulsar 4.1.2 image, K8s v1.34.2, kind v0.31.0, and Apache Pulsar Helm chart |
| .github/workflows/golangci-lint.yml | Upgrades golangci-lint action and version to v2.7.2 |
| .golangci.yml | Migrates lint configuration to v2 format with updated linters and settings |
| .ci/clusters/values.yaml | Configures Helm chart to use OSS Pulsar 4.1.2 images instead of StreamNative Platform |
| tests/operator/resources_test.go | Replaces pulsarctl commands with pulsar-admin, updates to use ptr.To instead of pointer, fixes lint issues |
| tests/utils/k8s.go | Adds context parameter to ExecInPod and uses StreamWithContext |
| tests/utils/spec.go | Fixes struct initialization, updates type aliases, replaces interface{} with any |
| pkg/admin/impl.go | Simplifies nonPartitioned logic |
| controllers/ | Minor lint fixes (removes unnecessary object metadata references) |
| scripts/lint.sh | Updates golangci-lint version to v2.7.2 |
| hack/kind-cluster-build.sh | Updates default K8s version to v1.34.2 |
| README.md | Updates documented K8s version support to v1.34 |
| .gitignore | Adds local development tool entries |
| go.sum | Adds missing go.mod entry |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| version: "2" |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The version field is set to "2" which refers to the golangci-lint configuration file format version, not the golangci-lint tool version. However, this is inconsistent with the actual golangci-lint versions being used in the scripts and workflows. The configuration format version 2 is correct for newer golangci-lint versions (v1.60+), but the tool versions specified elsewhere (v2.7.2) do not exist. Ensure this configuration is compatible with the actual golangci-lint version being used.
This PR is stacked on #365 and should be rebased once that PR is merged
Motivation
CI runs on an ancient version of K8S and old versions of Pulsar. Newer versions of
sn-platformimages require a license key to run, so these cannot easily be bumped. The existing e2e tests rely on exec'ing into pods and runningpulsarctlcommands, but this binary is not in OSS Pulsar images which makes it difficult to test locally for OSS contributors looking to make changes to the project.Modifications
Verifying this change
This change is already covered by existing tests. CI upgrade was tested on a PR in my fork here: mattsre#1 as well as running locally
Documentation
no-need-docInternal changes to CI and tests, no package changes