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

Upgrade from Debian Bullseye to Bookworm #3570

Closed
markmandel opened this issue Jan 8, 2024 · 10 comments · Fixed by #3657
Closed

Upgrade from Debian Bullseye to Bookworm #3570

markmandel opened this issue Jan 8, 2024 · 10 comments · Fixed by #3657
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. area/security Issues pertaining to security good first issue These are great first issues. If you are looking for a place to start, start here! help wanted We would love help on these issues. Please come help us! kind/cleanup Refactoring code, fixing up documentation, etc

Comments

@markmandel
Copy link
Member

Just noticing we're using Debian 11 everywhere. It's currently being kept up to date with security fixes, but it would be good to be proactive and update to Debian 12.

This can definitely be done as a series of smaller PR's.

For:
https://github.com/search?q=repo%3Agoogleforgames%2Fagones%20debian%3Abullseye&type=code
Switch from debian:bullseye to debian:bookworm

For:
https://github.com/search?q=repo%3Agoogleforgames%2Fagones%20debian11&type=code
Switch from gcr.io/distroless/static-debian11:nonroot to gcr.io/distroless/static-debian12:nonroot

@markmandel markmandel added help wanted We would love help on these issues. Please come help us! good first issue These are great first issues. If you are looking for a place to start, start here! kind/cleanup Refactoring code, fixing up documentation, etc area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. area/security Issues pertaining to security labels Jan 8, 2024
@markmandel
Copy link
Member Author

@Kalaiselvi84 this would likely be good to for you to work on if you have run out of tasks 👍🏻

@Kalaiselvi84
Copy link
Contributor

@markmandel, I've a few things to discuss:

  1. I have updated most of the example images. Will push the new image to the production once the PRs are merged and then create a separate PR to update the rest of the files with new tag.

  2. The build is failing with bookworm for cpp-simple image. Log is too large to fit in gist.github.com, so I used paste instead.

  3. Could you please let me know how to test the changes in the /build and /cmd directories?

@markmandel
Copy link
Member Author

Could you please let me know how to test the changes in the /build and /cmd directories?

The standard CI process will test those -- or you can do a make build-images && make push && make install locally and see if Agones is up and running.

@Kalaiselvi84
Copy link
Contributor

The command make build-images && make push && make install is failing in both directories!

@markmandel
Copy link
Member Author

Should be run from /build - I'll check the draft PR's you wrote, see what I can see 👍🏻

@markmandel
Copy link
Member Author

2. The build is failing with bookworm for cpp-simple image. Log is too large to fit in gist.github.com, so I used paste instead.

Doesn't look like I got a gist / paste. Would likely need to see a draft PR and the output to help debug.

@markmandel
Copy link
Member Author

Just a reminder that once #3576 is merged and published, will need to replace all the simple-game-server:0.23 instances with simple-game-server:0.24 with a follow up PR (e2e tests, docs, etc)

@markmandel
Copy link
Member Author

Another reminder once #3575 is is merged and published, will need to replace all the autoscaler-webhook:0.9 instances with autoscaler-webhook:0.10 with a follow up PR (e2e tests, docs, etc),

markmandel pushed a commit to markmandel/agones that referenced this issue Jan 31, 2024
gRPC upgrades with gRPC where very brittle, and attempts to upgrade
dependencies and/or switch to a `FetchContent_Declare` type workflow
were becoming increasingly time-consuming - and not resulting with a
working solution.

Speaking with the gRPC team, they recommended not installing
dependencies within CMake (and how they do it admittedly an
antipattern). So this change removes the ability for the CMakeLists.txt
to install gRPC and makes finding the gRPC dependency a hard
requirement, and updates the documentation accordingly.

This change isn't onerous to the end user, as our SDK has only the one
dependency - gRPC (which does install all its dependencies). At some
point gRPC will have official support for vcpkg, at which point we
should probably move with them - but in the meantime, the cpp-simple
example has been updated with this change, and it's an extra ~4 lines.

This update also include a lot of other fixes:
* Upgrade from Debian Bullseye to Bookworm for all cpp related
containers
* Builds now actually happen in parallel, reducing build time to minutes
 not hours.
* Bump to gRPC 1.57.1
* Fix bug with gRPC dependency utf8_range.
* Move to C++17, because it's required for gRPC.

Work on googleforgames#3570
markmandel added a commit to markmandel/agones that referenced this issue Feb 6, 2024
gRPC upgrades with gRPC where very brittle, and attempts to upgrade
dependencies and/or switch to a `FetchContent_Declare` type workflow
were becoming increasingly time-consuming - and not resulting with a
working solution.

Speaking with the gRPC team, they recommended not installing
dependencies within CMake (and how they do it admittedly an
antipattern). So this change removes the ability for the CMakeLists.txt
to install gRPC and makes finding the gRPC dependency a hard
requirement, and updates the documentation accordingly.

This change isn't onerous to the end user, as our SDK has only the one
dependency - gRPC (which does install all its dependencies). At some
point gRPC will have official support for vcpkg, at which point we
should probably move with them - but in the meantime, the cpp-simple
example has been updated with this change, and it's an extra ~4 lines.

This update also include a lot of other fixes:
* Upgrade from Debian Bullseye to Bookworm for all cpp related
containers
* Builds now actually happen in parallel, reducing build time to minutes
 not hours.
* Bump to gRPC 1.57.1
* Fix bug with gRPC dependency utf8_range.
* Move to C++17, because it's required for gRPC.

Work on googleforgames#3570
markmandel added a commit to markmandel/agones that referenced this issue Feb 6, 2024
gRPC upgrades with gRPC where very brittle, and attempts to upgrade
dependencies and/or switch to a `FetchContent_Declare` type workflow
were becoming increasingly time-consuming - and not resulting with a
working solution.

Speaking with the gRPC team, they recommended not installing
dependencies within CMake (and how they do it admittedly an
antipattern). So this change removes the ability for the CMakeLists.txt
to install gRPC and makes finding the gRPC dependency a hard
requirement, and updates the documentation accordingly.

This change isn't onerous to the end user, as our SDK has only the one
dependency - gRPC (which does install all its dependencies). At some
point gRPC will have official support for vcpkg, at which point we
should probably move with them - but in the meantime, the cpp-simple
example has been updated with this change, and it's an extra ~4 lines.

This update also include a lot of other fixes:
* Upgrade from Debian Bullseye to Bookworm for all cpp related
containers
* Builds now actually happen in parallel, reducing build time to minutes
 not hours.
* Bump to gRPC 1.57.1
* Fix bug with gRPC dependency utf8_range.
* Move to C++17, because it's required for gRPC.

Work on googleforgames#3570
roberthbailey pushed a commit that referenced this issue Feb 6, 2024
Breaking: Remove Cmake gRPC install when not found

gRPC upgrades with gRPC where very brittle, and attempts to upgrade
dependencies and/or switch to a `FetchContent_Declare` type workflow
were becoming increasingly time-consuming - and not resulting with a
working solution.

Speaking with the gRPC team, they recommended not installing
dependencies within CMake (and how they do it admittedly an
antipattern). So this change removes the ability for the CMakeLists.txt
to install gRPC and makes finding the gRPC dependency a hard
requirement, and updates the documentation accordingly.

This change isn't onerous to the end user, as our SDK has only the one
dependency - gRPC (which does install all its dependencies). At some
point gRPC will have official support for vcpkg, at which point we
should probably move with them - but in the meantime, the cpp-simple
example has been updated with this change, and it's an extra ~4 lines.

This update also include a lot of other fixes:
* Upgrade from Debian Bullseye to Bookworm for all cpp related
containers
* Builds now actually happen in parallel, reducing build time to minutes
 not hours.
* Bump to gRPC 1.57.1
* Fix bug with gRPC dependency utf8_range.
* Move to C++17, because it's required for gRPC.

Work on #3570
@Kalaiselvi84
Copy link
Contributor

@markmandel, We have bullseye in build/build-image/Dockerfile -

FROM debian:bullseye

Are we not upgrading it? 🤔Thought your PR has the fix for the google-cloud-cli-app-engine-python : Depends: python2.7 but it is not installable issue

@markmandel
Copy link
Member Author

No I didn't, I just had the sdk updates. I was figuring we were blocked on https://b.corp.google.com/issues/265528492

But if you have a workaround, please go ahead and get it implemented 👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. area/security Issues pertaining to security good first issue These are great first issues. If you are looking for a place to start, start here! help wanted We would love help on these issues. Please come help us! kind/cleanup Refactoring code, fixing up documentation, etc
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants