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

Make linuxkit Hook services resilient so that the getty always comes up: #175

Merged
merged 6 commits into from
Jul 31, 2023

Conversation

jacobweinstock
Copy link
Member

Description

Hook-bootkit requires a network connection to pull down the tink-worker image. The previous solution was to make sure networking was up and running via a DHCP client in the linuxkit "onboot" section. This meant that any issues with the DHCP onboot container would cause the getty, and all services, to never start. This made troubleshooting nearly impossible.

This PR makes Hook-bootkit (and hook-docker) retry all failures. This allows us to remove the DHCP "onboot" container. This should allow the getty service to always start.

Why is this needed

Fixes: #

How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:

I have:

  • updated the documentation and/or roadmap (if required)
  • added unit or e2e tests
  • provided instructions on how to upgrade

Hook-bootkit requires a network connection to pull down
the tink-worker image. The previous solution was to make
sure networking was up and running via a DHCP client in the
linuxkit "onboot" section. This meant that any issues with
the DHCP onboot container would cause the getty, and all services,
to never start. This made troubleshooting nearly impossible.

This PR makes Hook-bootkit (and hook-docker) retry all failures.
This allows us to remove the DHCP "onboot" container. This should
allow the getty service to always start.

Signed-off-by: Jacob Weinstock <[email protected]>
@jacobweinstock jacobweinstock marked this pull request as ready for review July 30, 2023 20:18
chrisdoherty4
chrisdoherty4 previously approved these changes Jul 30, 2023
`make run` didn't work with the "tar-kernel-initrd"
files produced.

Signed-off-by: Jacob Weinstock <[email protected]>
The alpine image (instead of scratch) so that we
can run commands inside the container for troubleshooting.

Signed-off-by: Jacob Weinstock <[email protected]>
hook-bootkit/main.go Outdated Show resolved Hide resolved
hook-bootkit/main.go Outdated Show resolved Hide resolved
hook-bootkit/main.go Outdated Show resolved Hide resolved
hook-bootkit/main.go Outdated Show resolved Hide resolved
chrisdoherty4
chrisdoherty4 previously approved these changes Jul 31, 2023
hook-bootkit/main.go Outdated Show resolved Hide resolved
hook-bootkit/main.go Outdated Show resolved Hide resolved
hook-bootkit/main.go Outdated Show resolved Hide resolved
Signed-off-by: Jacob Weinstock <[email protected]>
Zerolog stack traces weren't providing enough
detail and had a indirect dependency on an
archived library (pkg/errors).

Signed-off-by: Jacob Weinstock <[email protected]>
The docker logs output for the pull image command will
be properly structured now.

Signed-off-by: Jacob Weinstock <[email protected]>
@jacobweinstock
Copy link
Member Author

Hey @chrisdoherty4 , thanks for the review. JFYI, this is just a refactor step. There is still much more work to be done. I will follow in the future with more refactoring.

@chrisdoherty4 chrisdoherty4 added the ready-to-merge Signal to Mergify to merge the PR. label Jul 31, 2023
@mergify mergify bot merged commit c9d440e into tinkerbell:main Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge Signal to Mergify to merge the PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants