Skip to content

Upgrade Elasticsearch to 9.4.2 - #2416

Open
ejsmith wants to merge 5 commits into
mainfrom
feature/elasticsearch-9-compatibility
Open

Upgrade Elasticsearch to 9.4.2#2416
ejsmith wants to merge 5 commits into
mainfrom
feature/elasticsearch-9-compatibility

Conversation

@ejsmith

@ejsmith ejsmith commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

  • upgrade active Elasticsearch, Kibana, Elastic APM, Docker Compose, sample, AppHost, Helm, and ECK references from 8.19.15 to 9.4.2
  • add the custom Elasticsearch 9.4.2 image with mapper-size and a dedicated multi-architecture publishing workflow
  • retain the 8.19.15 image/workflow as the supported major-upgrade source, but move the latest tag to the 9.x workflow
  • make AppHost ports, image tag, container names, and data volume configurable so upgrade testing can run beside shared worktree infrastructure
  • wait for yellow cluster health before declaring Elasticsearch ready, closing the recovered-shard startup race found during the persisted-volume rehearsal

Why

9.4.2 is the current Elastic Stack release and includes critical and security fixes. Elastic documents 8.19.x as the supported starting point for upgrades to 9.1.0 and later, and documents 8.x clients as compatible with 9.x through REST API compatibility.

Compatibility and migration

  • Exceptionless currently resolves Elastic.Clients.Elasticsearch 8.19.23 through Foundatio.Repositories; the 8.x client is supported against Elasticsearch 9.x
  • repository ECK setup is already on 3.3.2, satisfying Elastic's ECK 3.x requirement for Stack 9.x
  • the 8.19.15 custom image remains available for the supported 8.19.x → 9.4.2 upgrade path
  • the 9.4.2 mapper-size plugin installed and loaded successfully
  • Elasticsearch's 9.4.2 deprecation API returned no findings for the exercised data
  • no Exceptionless public API, configuration key, serialization contract, or storage format is removed

Validation

  • full backend suite against isolated Elasticsearch 9.4.2 on port 9210: 2,519 passed, 2 skipped, 0 failed
  • clean 8.19.15 data volume upgraded to 9.4.2; first-start repository tests passed (8 passed, 1 expected skip)
  • full Aspire stack ran healthy with isolated Elasticsearch/Kibana 9.4.2 on 9210/5610 while shared 8.19.15 services remained on 9200/5601
  • Elasticsearch 9.4.2 reported a green cluster and indexed sample Exceptionless data without Elasticsearch warnings, errors, or deprecation entries
  • Docker Compose configuration validation passed for development, deployment, APM, and standard sample stacks
  • all changed workflow, Compose, Kubernetes, and Helm YAML parsed successfully
  • focused dotnet format --verify-no-changes passed for the changed C# files
  • GitHub API, client, E2E, application Docker, Elasticsearch 8.x image, and Elasticsearch 9.x image checks passed
  • the first API attempt began 35 seconds before the new 9.4.2 image finished publishing and timed out waiting for Elasticsearch; the clean rerun passed in 9m32s once the image was available

Rollout risk

This is a major-version infrastructure upgrade. Elasticsearch cannot downgrade an upgraded data volume, so production rollout still requires a current snapshot and the Elastic Upgrade Assistant/pre-upgrade checks before applying the ECK manifest changes.

@ejsmith ejsmith changed the title Add Elasticsearch 9 compatibility testing Upgrade Elasticsearch to 9.4.2 Jul 28, 2026
@ejsmith
ejsmith marked this pull request as ready for review July 28, 2026 23:54

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 44efc54401

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/AppWebHostFactory.cs Outdated
Comment thread .github/workflows/elasticsearch-docker-9.yml Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aa3c59c52f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/elasticsearch-docker-9.yml Outdated
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Core 73% 66% 9587
Exceptionless.AppHost 37% 37% 168
Exceptionless.Insulation 37% 35% 286
Exceptionless.Web 84% 67% 6935
Summary 77% (22860 / 29808) 65% (10512 / 16054) 16976

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.

1 participant