Skip to content

Document EC v3 deployment pipeline and upgrade failure handling#4232

Merged
AmberAlston merged 3 commits into
mainfrom
docs/ec-v3-deployment-pipeline
Jul 6, 2026
Merged

Document EC v3 deployment pipeline and upgrade failure handling#4232
AmberAlston merged 3 commits into
mainfrom
docs/ec-v3-deployment-pipeline

Conversation

@AmberAlston

@AmberAlston AmberAlston commented Jul 6, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds a Deployment pipeline section to the EC v3 overview documenting the fixed, sequential install/upgrade pipeline: k0s bootstrap, host preflights, built-in addons (OpenEBS -> SeaweedFS -> registry), extension charts (by weight), app preflights, app charts (by weight)
  • Clarifies that Helm hooks are supported in EC v3 (via --wait and --wait-for-jobs), enabling patterns like DB migration Jobs in pre-upgrade hooks
  • Adds Upgrade failure handling section covering retry behavior, Helm rollback semantics, and vendor responsibility for application-level rollback (e.g. DB migrations)
  • Enriches extension chart weight docs with default value, negative weight support, and stable alphabetical tiebreaking

Context

These gaps surfaced during a BYOC RFI where internal team members had to read EC v3 source code to answer deployment orchestration questions (section 4 of the RFI). All claims in this PR were verified against the EC v3 codebase before writing.

Key code references verified:

  • pkg/addons/install.go:88-144 - addon ordering (OpenEBS -> SeaweedFS -> registry -> extensions)
  • pkg/appcharts/sorting.go:20-29 - weight-based sorting with stable alphabetical tiebreak
  • pkg/helm/helm.go:35-53 - helm upgrade -i --wait --wait-for-jobs
  • cmd/cli/commands/headless.go:51-126 - full pipeline sequence (preflights -> k0s -> addons -> app preflights -> charts)
  • pkg/helm/reconciler.go:22-72 - sequential chart installation with pending release cleanup

Test plan

  • Verify cross-references resolve (embedded-overview#deployment-pipeline, embedded-config#extensions)
  • Confirm deployment pipeline matches current EC v3 behavior
  • Review with EC team for accuracy

🤖 Generated with Claude Code

…ade failure handling

Adds three documentation improvements for EC v3:

1. New "Deployment pipeline" section in the overview documenting the
   fixed sequential install/upgrade pipeline (k0s -> preflights ->
   addons -> extensions -> app preflights -> app charts), including
   built-in addon ordering.

2. Clarified extension chart docs: where extensions sit in the pipeline,
   weight sorting details (default 0, negative supported, stable
   alphabetical tiebreak), and that Helm hooks are supported via
   --wait-for-jobs.

3. New "Upgrade failure handling" section covering retry behavior, Helm
   chart rollback semantics, and vendor responsibility for DB migrations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AmberAlston AmberAlston requested a review from a team as a code owner July 6, 2026 20:12
@netlify

netlify Bot commented Jul 6, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs ready!

Name Link
🔨 Latest commit 5904863
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs/deploys/6a4c29f2d0cb19000814968d
😎 Deploy Preview https://deploy-preview-4232--replicated-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Jul 6, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs-upgrade ready!

Name Link
🔨 Latest commit 5904863
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs-upgrade/deploys/6a4c29f20325510008afec43
😎 Deploy Preview https://deploy-preview-4232--replicated-docs-upgrade.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@replicated-ci replicated-ci added type::docs Improvements or additions to documentation type::feature labels Jul 6, 2026
Reframes the upgrade failure section to lead with the common case
(retry resolves most failures) and adds disaster recovery as the
recommended path for rare unrecoverable upgrades. Recommends
bundling Velero as a Helm chart extension for vendor-controlled
backup and restore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment thread embedded-cluster/updating-embedded.mdx Outdated

For cases where an upgrade fails and cannot be recovered by retrying, treat the situation as a disaster recovery scenario. Replicated recommends bundling a backup solution like [Velero](https://velero.io/) as a Helm chart extension in your application package. This gives your customers a backup and restore path that you control, including the Velero version, backup scope, and upgrade cadence.

In Embedded Cluster v3, application backups are scoped to your application data only. Embedded Cluster infrastructure state is rebuilt from the install artifacts during a restore, so a restore onto a fresh machine recovers the full environment.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We'll want to add more to DR section when we have stuff like reference implementation available, but this will work for now until we have more to link to

@AmberAlston AmberAlston requested review from sgalsaleh and xavpaice July 6, 2026 21:57
During both installation and upgrade, Embedded Cluster deploys components in a fixed, sequential pipeline. Each stage must complete before the next begins:

1. **Kubernetes bootstrap:** Embedded Cluster installs and starts the k0s Kubernetes distribution.
1. **Host preflight checks:** Verifies that the host meets requirements (disk space, memory, CPU, ports, hostname length).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This actually comes before bootstrapping k0s

Comment thread embedded-cluster/updating-embedded.mdx Outdated

### Retrying a failed upgrade

Re-run the `upgrade` command with the same binary after resolving the issue. Each stage is idempotent and safe to re-run.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What about upgrades initiated from the persistent admin console?

Comment thread embedded-cluster/updating-embedded.mdx Outdated

For cases where an upgrade fails and cannot be recovered by retrying, treat the situation as a disaster recovery scenario. Replicated recommends bundling a backup solution like [Velero](https://velero.io/) as a Helm chart extension in your application package. This gives your customers a backup and restore path that you control, including the Velero version, backup scope, and upgrade cadence.

In Embedded Cluster v3, application backups are scoped to your application data only. Embedded Cluster infrastructure state is rebuilt from the install artifacts during a restore, so a restore onto a fresh machine recovers the full environment.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way this sentence starts gives the impression that EC v3 provides application level backups out of the box.

- Swap host preflights before k0s bootstrap to match actual code order
- Add persistent admin console as a retry path for failed upgrades
- Reword DR backup sentence to clarify that the vendor bundles the
  backup solution, not that EC provides it out of the box

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AmberAlston AmberAlston requested a review from sgalsaleh July 6, 2026 22:19

@xavpaice xavpaice left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Appreciate the note on backups too.

@AmberAlston AmberAlston merged commit 360116e into main Jul 6, 2026
5 checks passed
@AmberAlston AmberAlston deleted the docs/ec-v3-deployment-pipeline branch July 6, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type::docs Improvements or additions to documentation type::feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants