Skip to content
Stackship documentation Svenska

Lifecycle ManagerAdministrators

Pre-upgrade checks

Every check the platform runs before a rollout — what it looks at, when it is skipped, what a warning or a failure means, and which failures cannot be overridden.

Where the checks run

  • On a reviewed plan. Once a plan is validated, the planning page runs the checks for that plan. This is the report you override failures in — see Deal with the pre-upgrade checks.
  • When a rollout starts. Executing runs every check again and decides on that run.
  • On the Components tab, Run checks runs them without a plan. The checks that are about a plan's components, images or charts are then Skipped, and the badge Upgrade readiness shows the overall result.
  • On a rollout's page, the checks are shown as they stood when the rollout started.

Results

Result Meaning
Pass Nothing to do.
Warn Worth reading; never stops a rollout. A check that errors, or takes longer than five seconds, reports Warn too: it then says nothing about the platform, so verify that part by hand.
Fail Stops the rollout unless you override it. The override and the check's id are recorded on the rollout.
Fail, marked Cannot be overridden Stops the rollout until the cause is fixed.
Skipped Does not apply to this plan or this platform, and says why.

The overall result is the worst one; Skipped counts as a pass. A check marked release was declared by the release being rolled out rather than built into the platform.

release.prerequisites can never be overridden. A release can mark more of its checks as impossible to override; platform.drift is never among them.

Platform and plan checks

Check What it looks at Warns or fails when
Platform components are healthy platform.health Every platform component that runs, except an optional module that is not installed, and whether a rollout is executing Fail: a component is not Healthy — bring it back first, because a rollout replaces images and does not repair anything — or a rollout is already executing or paused
Platform database accepts connections database.connection That the Lifecycle module can connect to the platform database Fail: it cannot. A rollout records its state after every batch
Release feed is reachable releasefeed.reachable That the feed URL answers. Skipped without a feed Fail: it does not. The CRD bundle is fetched during the rollout
Identity provider answers discovery identity.oidc-discovery The identity provider's OpenID discovery document, and that it names the issuer the platform expects Fail: it does not answer, or names another issuer — align the platform's identity settings with the issuer the provider advertises
Control plane can reach its dependencies network.kernel-egress That the Lifecycle module can reach the platform API, the identity provider and the release feed Fail: one is unreachable — check egress network policies and DNS in stackship-system
Health gates answer on the running versions platform.gates-reachable Each planned component's health check, against the version that runs now Fail: a check does not answer. The rollout would pause on the same check
Plan images are servable by their registries registry.pull That every image in the plan can be pulled Fail: an image is missing or the registry refuses the platform's pull credentials
Release configuration renders for every planned component release.config-render That the configuration the release gives each planned component can be written on this platform Fail: a value it needs is missing — re-run the installer so the platform configuration carries it, or roll a newer Lifecycle module first. Warn: the plan also upgrades the Lifecycle module, and the new version renders these components
Clusters are reachable with the platform's own identity platform.cluster-api-url Whether the platform can act on every registered cluster with its own identity Fail: the only registered cluster has an API URL; Warn: one of several has. The cluster the platform runs in must be registered without an API URL — see Connect a cluster — and the platform API (stackship-api) restarted after the change, since it caches cluster connections
Clusters hold the permission ceiling this release needs platform.iam-projector-ceiling For a plan that moves the rbac or kernel component: whether every cluster already holds the Kubernetes rules the release's permission ceiling adds Warn only: a cluster lacks rules. The row lists them with the commands a cluster administrator runs once; the upgrade itself is safe either way — see After upgrading
Modules that write Secrets have the grants that let them leave the shared account platform.module-secret-grants Whether the Kubernetes grants that let those modules run under their own accounts are on the cluster. Runs with or without a plan Warn only: grants are missing, so those modules keep running under the shared module account. A cluster administrator applies them once, as the check describes
The operator may turn policies into admission control operator.admission-policy-grant For a plan that moves the policies module: whether the operator's ClusterRole stackship-operator-role may manage validating admission policies and their bindings Fail: it may not, so a policy would be saved and listed but never enforced. The check shows the command a cluster administrator runs

Checks for plans that upgrade a third-party chart or run a platform step

Check What it looks at Warns or fails when
The cluster carries the platform admin bundle this release needs release.prerequisites Every object in the release's platform admin bundle — see The platform admin bundle Fail, cannot be overridden: objects are missing, changed by hand or unreadable. The row lists each object and the command a cluster administrator runs. Warn: the bundle could not be compared, or is published for another namespace. A release without a bundle is judged on the dependency upgrader's account alone
The pre-rollout snapshot has a backup destination backup.destination For a plan that upgrades a chart: that Velero's default backup location is Available, and, for a chart whose undo is a database restore, that the platform database has a backup method Fail: no destination. Override it and a failed snapshot is recorded and the rollout continues — except for a chart whose undo is a database restore, where the snapshot is required. Warn: the target is a service inside this cluster, or the daily platform backup is missing or paused — see Platform backups
The pre-rollout snapshot completed rollout.snapshot Always Skipped in the report, because the snapshot is taken after it, before batch 1. The rollout's page shows the result —

Checks the release declares

A release can require things of the cluster. These checks carry the release mark.

Check Warns or fails when
Kubernetes version is in the release's supported range release.kubernetes Fail: the cluster's Kubernetes version is outside the range
Operator meets the release's version floor release.operator Fail: the operator is older — include it in the rollout, in a batch before the components that need it. Warn: its version is not known
Required third-party APIs are served release.required-apis Fail: the cluster does not serve an API the release uses
Required configuration keys are present release.config-contract Fail: a component's configuration lacks a key the release reads — re-run the installer, or repair the component, first. Warn: the configuration could not be read
Infrastructure versions match the release's tested set release.tested-with Warn only: a dependency runs a version the release was not tested with, or its version is not known
Release declares requirements this version cannot check release.unknown-requirements Warn only: the running Lifecycle module is older than the release's requirements — upgrade it first, or verify them by hand

Checks the operator runs

The operator adds checks it can only make from inside the cluster.

Check Warns or fails when
operator.preflight Warn: the operator did not answer within 20 seconds, so its checks are missing
platform.drift For a plan with a platform step: the installer's dry run found platform settings changed by hand. Fail, which you may override: the rollout then pauses at the platform step, where you choose what happens to them — see Settings changed by hand. Warn: the dry run had not finished two minutes after the other checks, so it says nothing yet
dependency.<chart>.dry-run For each chart the plan upgrades: the dry run of its upgrade — the values that change, the CRDs, or why it refused. Shown on the plan under Dependencies