:_mod-docs-content-type: ASSEMBLY [id="microshift-greenboot"] = The Greenboot health check framework include::_attributes/attributes-microshift.adoc[] :context: microshift-greenboot toc::[] Greenboot is the generic health check framework for the `systemd` service on `rpm-ostree` systems such as {op-system-ostree-first}. This framework is included in {microshift-short} installations with the `microshift-greenboot` and `greenboot-default-health-checks` RPM packages. Greenboot health checks run at various times to assess system health and automate a rollback to the last healthy state in the event of software trouble, for example: * Default health check scripts run each time the system starts. * In addition the to the default health checks, you can write, install, and configure application health check scripts to also run every time the system starts. * Greenboot can reduce your risk of being locked out of edge devices during updates and prevent a significant interruption of service if an update fails. * When a failure is detected, the system boots into the last known working configuration using the `rpm-ostree` rollback capability. This feature is especially useful automation for edge devices where direct serviceability is either limited or non-existent. A {microshift-short} application health check script is included in the `microshift-greenboot` RPM. The `greenboot-default-health-checks` RPM includes health check scripts verifying that DNS and `ostree` services are accessible. You can create your own health check scripts for the workloads you are running. You can write one that verifies that an application has started, for example. [NOTE] ==== Rollback is not possible in the case of an update failure on a system not using `rpm-ostree`. This is true even though health checks might run. ==== include::modules/microshift-greenboot-dir-structure.adoc[leveloffset=+1] include::modules/microshift-greenboot-microshift-health-script.adoc[leveloffset=+1] include::modules/microshift-greenboot-systemd-journal-data.adoc[leveloffset=+1] [role="_additional-resources"] .Additional resources * xref:../microshift_running_apps/microshift-applications.adoc#microshift-manifests-example_applications-microshift[Auto applying manifests] include::modules/microshift-greenboot-updates-workloads.adoc[leveloffset=+1] include::modules/microshift-greenboot-workloads-validation.adoc[leveloffset=+1] include::modules/microshift-greenboot-health-check-log.adoc[leveloffset=+1] include::modules/microshift-greenboot-prerollback-log.adoc[leveloffset=+1] include::modules/microshift-greenboot-check-update.adoc[leveloffset=+1] [id="additional-resources_microshift-greenboot_{context}"] [role="_additional-resources_microshift-greenboot"] == Additional resources * xref:../microshift_running_apps/microshift-greenboot-workload-scripts.adoc#microshift-greenboot-workload-scripts[Greenboot workload health check scripts]