Skip to content

Add article: upgrading the search domain engine (Elasticsearch 6.8 → 7.10) - #28

Merged
sir-sigurd merged 11 commits into
mainfrom
howto-es-engine-upgrade
Aug 5, 2026
Merged

Add article: upgrading the search domain engine (Elasticsearch 6.8 → 7.10)#28
sir-sigurd merged 11 commits into
mainfrom
howto-es-engine-upgrade

Conversation

@sir-sigurd

@sir-sigurd sir-sigurd commented Aug 5, 2026

Copy link
Copy Markdown
Member

New KB article for deployments whose search domain stayed on Elasticsearch 6.8 while the deployed template declares 7.10 — an engine upgrade fired during a stack update can fail on a transient (typically an automated-snapshot collision), and CloudFormation records the deploy successful without ever retrying, leaving the domain permanently behind.

The article gives the direct CLI path: parameterized commands, read-only until the single upgrade trigger, eligibility-check-then-fire sequencing that launches into the gap between hourly automated snapshots (the passing check doubles as the no-snapshot-running signal), a stall rule with AWS escalation links, and a catalog smoke test. Generic AWS mechanics are linked to AWS docs rather than restated.

Written with a specific support case in hand; the sequence has been rehearsed end-to-end on a scratch staging domain (~50 min on an empty domain; real outputs folded into the article), with the production run next.

🤖 Generated with Claude Code

Greptile Summary

The PR adds a runbook for directly upgrading a Quilt search domain from Elasticsearch 6.8 to 7.10 after CloudFormation leaves its live engine behind.

  • Covers compatibility and Auto-Tune checks, asynchronous eligibility polling, and the state-changing upgrade command.
  • Adds monitoring, escalation, and catalog smoke-test guidance.
  • The initial shell variable block must be corrected before readers can execute the procedure as written.

Confidence Score: 4/5

The article should not merge until its required shell variable assignments are made executable, because the procedure currently fails at the first setup step.

The documented placeholder assignments are parsed as shell redirections rather than variable values, leaving the parameters required by every read-only check and the upgrade trigger unset.

Files Needing Attention: howto-upgrade-search-domain-engine.md

Important Files Changed

Filename Overview
howto-upgrade-search-domain-engine.md Adds the complete operational upgrade runbook, but its required DOMAIN and REGION setup lines are invalid shell syntax when copied as shown.

Sequence Diagram

sequenceDiagram
    actor Operator
    participant AWS as AWS Elasticsearch Service
    participant Catalog as Quilt Catalog
    Operator->>AWS: Check compatible versions and Auto-Tune
    Operator->>AWS: Run eligibility check
    loop Until check completes
        Operator->>AWS: Get upgrade status
        AWS-->>Operator: Current check status
    end
    Operator->>AWS: Trigger engine upgrade
    loop Until upgrade completes
        Operator->>AWS: Get upgrade status
        AWS-->>Operator: PRE_UPGRADE_CHECK / SNAPSHOT / UPGRADE
    end
    Operator->>Catalog: Upload file and verify search
Loading

Reviews (1): Last reviewed commit: "Add article: upgrading the search domain..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

Covers the drift case where the deployed template declares 7.10 but the
live domain stayed on 6.8 after a stack-update-fired upgrade failed on a
transient and CloudFormation recorded success. Direct CLI path: read-only
until the single upgrade command, launch into the snapshot gap, escalation
guidance for stalls.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread howto-upgrade-search-domain-engine.md Outdated
Comment on lines +27 to +28
DOMAIN=<your search domain name>
REGION=<your stack's region>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Invalid shell variable assignments

When a reader copies this setup block before replacing the example text, the shell interprets < and > as redirection operators instead of assigning DOMAIN and REGION, causing the setup and all subsequent AWS commands to fail.

Suggested change
DOMAIN=<your search domain name>
REGION=<your stack's region>
DOMAIN="your-search-domain-name"
REGION="your-stack-region"

sir-sigurd and others added 10 commits August 5, 2026 13:36
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- State irreversibility up front + rollback options (manual snapshot,
  Quilt S3 rebuild backstop); AWS test-domain suggestion
- Verdicts and diagnosis via get-upgrade-history (get-upgrade-status
  carries no failure reasons, timestamps, or progress); baseline read
  first so stale entries can't masquerade as fresh ones
- Handle SUCCEEDED_WITH_ISSUES, Step-5 CLI errors, early-step failures
- Replace wrong-instrument Auto-Tune command with console Notifications
  glance; yellow-cluster rule; explicit done-criterion
- Domain identified via the stack's Search resource, not guessed
- Fix stale support-plan naming; self-service stall triage before case
- Qualify search-availability claim (dedicated-masters conditional);
  cost note; scope note vs newer target versions; absolute Related link

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s; billing fix; breaking-changes check moved to preflight; drop telemetry mention

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ible

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…first use

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…al verdict-entry JSON, mid-flight progress example

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…reptile)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a new Knowledge Base runbook describing how to manually upgrade a Quilt deployment’s AWS-managed search domain from Elasticsearch 6.8 to 7.10 when CloudFormation reports a successful stack update but the live domain engine version never advances.

Changes:

  • Introduces a step-by-step CLI procedure to verify drift, run a pre-upgrade eligibility check, trigger the engine upgrade, and monitor progress.
  • Documents operational guardrails (freeze window, failure modes, stall triage/escalation) and a post-upgrade catalog smoke test.
  • Links to AWS reference docs for migration mechanics and troubleshooting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


This article is the direct path: an in-place engine upgrade via the AWS CLI. Only one command in the sequence changes the domain. Two things to know before starting:

- **The upgrade is irreversible** — AWS states it "can't be paused or cancelled," and there is no downgrade. See the rollback options below before running Step 5.
## Related

- [Upgrading Amazon OpenSearch Service domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/version-migration.html) — AWS's reference for the upgrade process
- [How do I collect search-cluster diagnostics for Quilt support?](https://github.com/quiltdata/knowledge-base/blob/main/howto-collect-search-cluster-diagnostics.md)
@sir-sigurd
sir-sigurd merged commit 4bc811e into main Aug 5, 2026
1 check passed
@sir-sigurd
sir-sigurd deleted the howto-es-engine-upgrade branch August 5, 2026 13:34
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.

2 participants