Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

packages: change systemd boot sequence #1423

Merged
merged 1 commit into from
Apr 5, 2021

Commits on Apr 2, 2021

  1. refactor system boot sequence

    The current systemd boot sequence is error prone on isolated scenarios
    like sending invalid configurations through user data. These scenarios
    could cause inconsistent states at the end of the boot process, which
    affect the mechanism to determine if a boot was successful after
    applying new configurations or updates. It is also difficult to
    implement features that require service initialization order.
    
    In order to fix the problems presented above, this commit defines a new
    boot sequence, with three main systemd targets: preconfigured, configured
    and multi-user.
    
    Preconfigured
    
    This target is used to start the boot process. Failures in any of the
    required service units will cause the target to fail, stopping the boot
    process. The boot is marked as successful during the execution of this
    target only if the migrator "oneshot" service exists successfully.
    Services initialized during this phase include:
    
    * migrator
    * mark-successful-boot
    * send-boot-success
    * storewolf
    * apiserver
    * early-boot-config
    * sundog
    * settings-applier
    
    Once the target is reached (completed), the "activate-configured.service"
    unit will set the configured target as the default target and start it.
    
    Configured
    
    This target should be used to setup additional configurations in the
    host before services like kubernetes/ecs start. Services initialized
    during this phase include:
    
    * chronyd
    * host-containerd
    
    Once the target is reached (completed) the "activate-multi-user.service"
    unit will set the multi-user target as the default target, and start it.
    
    Multi-user
    
    This is the final target enabled in the boot sequence. Services
    initialized during this phase include:
    
    * host-containers@*
    * docker
    * ecs
    * kubernetes
    arnaldo2792 committed Apr 2, 2021
    Configuration menu
    Copy the full SHA
    0e74737 View commit details
    Browse the repository at this point in the history