Skip to content

Upgrade Elasticsearch dependency to ECK 8.18.8#176

Merged
wu-sheng merged 11 commits intomasterfrom
upgrade-elasticsearch-eck-8.18.8
Feb 27, 2026
Merged

Upgrade Elasticsearch dependency to ECK 8.18.8#176
wu-sheng merged 11 commits intomasterfrom
upgrade-elasticsearch-eck-8.18.8

Conversation

@wu-sheng
Copy link
Member

Summary

  • Replace the archived elasticsearch Helm chart (7.17.1) with ECK-based charts: eck-operator (3.3.1) and eck-elasticsearch (0.18.1), deploying Elasticsearch 8.18.8
  • ECK operator is included as a chart dependency (eckOperator.enabled), so the chart is self-contained
  • All old Elasticsearch configuration options are mapped to ECK equivalents under elasticsearch.nodeSets[].podTemplate
  • Update SWCK e2e test to use ES 8.18.8 (7.x is EOL)
  • Update skywalking-infra-e2e to latest commit
  • Add CLAUDE.md for project conventions

Changed files

  • chart/skywalking/Chart.yaml — new ECK dependencies
  • chart/skywalking/values.yaml — ECK-compatible config with comprehensive options
  • chart/skywalking/values-my-es.yaml — external ES example
  • chart/skywalking/templates/_helpers.tpl — ES fullname helper + ECK service/auth wiring
  • chart/skywalking/templates/NOTES.txt — remove old persistence warning
  • chart/skywalking/README.md — separate ES config tables for nested ECK structure
  • README.md — ECK install docs, external ES example, BanyanDB flags
  • test/e2e/values.yaml — ECK nodeSets config
  • test/e2e/e2e-elasticsearch.yaml — remove old replicas/minimumMasterNodes flags
  • test/e2e/swck/oap-ui-agent-elasticsearch.yaml — use local ES 8.18.8 deploy
  • test/e2e/swck/deploy-elasticsearch.yaml — new standalone ES 8.18.8 for SWCK test
  • .github/workflows/e2e.ci.yaml — update infra-e2e commit

Test plan

  • helm dep update chart/skywalking pulls new ECK dependencies
  • helm template renders correctly with default values
  • helm template renders correctly with elasticsearch.enabled=false and eckOperator.enabled=false
  • E2E tests pass in CI (elasticsearch, banyandb, swck)

Replace the archived elasticsearch Helm chart (7.17.1) with ECK-based
charts: eck-operator (3.3.1) and eck-elasticsearch (0.18.1) deploying
Elasticsearch 8.18.8. Update SWCK e2e test to use ES 8.18.8 (7.x is
EOL). Update skywalking-infra-e2e to latest commit.
- name: eck-operator
version: 3.3.1
repository: https://helm.elastic.co/
condition: eckOperator.enabled
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we used elasticsearch.enabled to control whether elasticsearch is deployed in this chart, maybe we can just reuse it to reduce downstream changes, nit

Copy link
Member

@kezhenxu94 kezhenxu94 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this PR only enable eck in the Helm chart, but it doesn’t actually deploy elasticsearch server, so it’s not equivalent to before, and that’s why we need the test/e2e/swck/deploy-elasticsearch.yaml file, we should add a CR ElasticSearch into the chart with condition elasticsearch.enabled to actually deploy the elasticsearch server

ECK CRDs are installed via subchart templates (not Helm native crds/),
so they aren't available when Helm tries to create the Elasticsearch
CR in the same release. Split into two steps: install ECK operator
first, then install SkyWalking with eckOperator.enabled=false.
The infra-e2e tool panics on jsonpath wait conditions. Use kubectl
rollout status inline to wait for the ECK operator StatefulSet.
The ECK operator StatefulSet is named 'elastic-operator', not
'eck-operator'.
@wu-sheng wu-sheng added enhancement New feature or request dependencies labels Feb 26, 2026
wu-sheng and others added 6 commits February 26, 2026 22:58
The updated skywalking-infra-e2e now stops triggers after reaching
the configured times count. Set times to 0 (endless) so the trigger
keeps running throughout verification, ensuring log_count_info
metrics are generated.
Move OAP_TAG, UI_TAG, SATELLITE_TAG, BANYANDB_TAG and their repo
vars from the CI workflow into test/e2e/env. Remove duplicate
env.swck file and point all SWCK tests to the shared env file.
Remove unused agent commit vars that are not referenced by any test.
OAP/UI: a0cec0ca237792497d2da0b65757d11f58c3f342
BanyanDB: 4b9ac7545a7084514bdaea7f0b8b5b7b13b745a5
- Replace all remote SWCK v0.9.0 component manifests (OAP 9.5.0/H2) with
  local templates using latest OAP/UI images and proper storage config
- Deploy BanyanDB via banyandb-helm chart (version from Chart.yaml) instead
  of SWCK BanyanDB CRD or raw StatefulSets
- Use fullnameOverride=banyandb for clean service naming (banyandb-grpc)
- Add skywalking-components.yaml (BanyanDB), skywalking-components-satellite.yaml,
  and skywalking-components-elasticsearch.yaml as local SWCK component templates
- Standardize all tests to use skywalking-system namespace for OAP
- Set trigger times: 0 for continuous triggering in banyandb/es tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was accidentally dropped during the env consolidation commit.
It is required by install-swctl.sh to download and build swctl.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wu-sheng wu-sheng added this to the 4.9.0 milestone Feb 27, 2026
… steps

Each e2e step runs in a separate shell, so $oap_podname set in one step
was empty in the next. Merge the two steps so the variable stays in scope.
@wu-sheng wu-sheng merged commit 2850db1 into master Feb 27, 2026
8 of 9 checks passed
@wu-sheng wu-sheng deleted the upgrade-elasticsearch-eck-8.18.8 branch February 27, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants