Skip to content

chore: update Elasticsearch stack to 9.5.0 - #2437

Closed
ejsmith wants to merge 1 commit into
mainfrom
chore/elasticsearch-9-5
Closed

chore: update Elasticsearch stack to 9.5.0#2437
ejsmith wants to merge 1 commit into
mainfrom
chore/elasticsearch-9-5

Conversation

@ejsmith

@ejsmith ejsmith commented Aug 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Port Elasticsearch 9 compatibility changes from Upgrade Elasticsearch to 9.5.0 #2416 onto current main
  • Update active Elasticsearch, Kibana, APM, Docker Compose, samples, AppHost, Helm, and ECK references to 9.5.0
  • Preserve the 8.19.15 image as the supported major-upgrade source
  • Add the Elasticsearch 9.5.0 custom image/workflow and deterministic candidate-image handling
  • Keep Upgrade Assistant guidance for pre-8 indices and verified live-cluster remediation

Upgrade Assistant report

A local 7.17.28 -> 8.19.15 -> 9.5.0 rehearsal was performed using Exceptionless-style indices:

  • organizations-v1
  • projects-v1
  • stacks-v1
  • events-v1-*
  • users-v1
  • webhooks-v1
  • migrations

The 8.19 Upgrade Assistant reported critical reindex_required findings for indices created under 7.x. Starting 9.5.0 against the unreindexed volume failed as expected, requiring the old indices to be reindexed or archived/read-only before the upgrade.

Fresh indices created directly on 9.5.0 produced no migration/deprecation findings.

Validation

  • Docker Compose configuration validation passed
  • YAML parsing passed
  • AppHost build passed
  • Test project build passed
  • AppHost configuration test passed
  • Elasticsearch readiness tests passed (6)
  • git diff --check passed

Notes

No speculative index-schema changes or application migration behavior were added. Existing 8.19 -> 9.x Upgrade Assistant remediation remains required for deployed data volumes.

@ejsmith

ejsmith commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

Closing duplicate PR. The 9.5.0 version update is being applied directly to PR #2416.

@ejsmith ejsmith closed this Aug 4, 2026

@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: f88edf4025

ℹ️ 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".

kubectl patch cronjob/ex-dev-jobs-cleanup-orphaned-data -p '{"spec":{"suspend": false}}' --namespace $DEV_NAMESPACE
kubectl patch cronjob/ex-dev-jobs-download-geoip-database -p '{"spec":{"suspend": false}}' --namespace $DEV_NAMESPACE
kubectl patch cronjob/ex-dev-jobs-maintain-indexes -p '{"spec":{"suspend": false}}' --namespace $DEV_NAMESPACE
kubectl patch cronjob/ex-dev-jobs-migration -p '{"spec":{"suspend": false}}' --namespace $DEV_NAMESPACE

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Run migrations before starting development workloads

Replacing the explicit migration job with this patch does not run migrations: k8s/exceptionless/templates/jobs.yaml gives this CronJob the intentionally non-runnable schedule 0 0 29 2 1 and labels it “never, only manually.” Consequently every development deployment now starts the API and workers without applying or validating the new version's migrations, and the deployment can still report success with pending schema/data migrations. Keep the explicit kubectl create job --from=cronjob/... and completion wait before scaling the workloads.

Useful? React with 👍 / 👎.

Comment on lines +143 to +145
if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]] &&
! git diff --quiet "$PR_BASE_SHA"...HEAD -- build/docker/elasticsearch/9.x .github/workflows/elasticsearch-docker-9.yml; then
image_changed=true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Avoid waiting for unpublished images on fork pull requests

When a fork pull request changes either watched Elasticsearch path, this branch waits 25 minutes for a content-addressed image that cannot be published by the added elasticsearch-docker-9.yml: that workflow only handles push events in its own repository, and GitHub also documents that “secrets are not passed to the runner when a workflow is triggered from a forked repository” (GitHub Actions secrets documentation). Since test-api, test-e2e, and docker-build all need this job, such external contributions deterministically time out instead of receiving CI; build the candidate in a trusted workflow or skip candidate-image resolution where publication is impossible.

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Core 75% 67% 9957
Exceptionless.AppHost 66% 59% 170
Exceptionless.Insulation 37% 35% 286
Exceptionless.Web 85% 68% 7022
Summary 78% (23542 / 30245) 67% (11024 / 16512) 17435

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