-
Notifications
You must be signed in to change notification settings - Fork 491
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
chore(build): upgrade Go to 1.21.10, use custom builder instead of cross-builder
#2819
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to defer to @bnpfeife 's review of this...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me! It looks like there's no automation around building+pushing the custom builder docker image; however, since it's fairly straightforward to do the build+push from a developer machine, I'm not going to block on that.
Thank you for implementing this! My apologies for being absent from this effort, I've been swamped with several other projects.
@bnpfeife, thank you for your approval. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM overall. This changes quite a lot of how to build the image and to keep it up to date. Can you add some documentation on this? It should include, at a minimum
- why we are using a custom builder
- the general procedures for updating golang, rust and protobuf in the custom builder
- when to update
Dockerfile_build_ubuntu64
- when to update
.circleci/config.yml
This will help our future selves with maintenance. Thanks!
Dockerfile_build
Outdated
# | ||
# src: https://github.com/influxdata/edge/blob/4677c285014ac27727e5a1ae9bf2c1633afc6ea6/dockerfiles/cross-builder/install-rust.sh#L7 | ||
# | ||
ENV RUST_LATEST_VERSION=1.63.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rust is now at 1.78.0. Is it possible to update to that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rust
has been updated to the latest version. I will prepare a builder/README.md
file with documentation on how Kapacitor is built, including how to update builder components - Go, Rust, ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The builder/README.md
is ready to review.
builder/Dockerfile_build_push.sh
Outdated
@@ -11,4 +11,4 @@ DOCKER_TAG="kapacitor-$(date +%Y%m%d)" | |||
docker build --rm=false --platform linux/amd64 -f ./Dockerfile_build -t builder:"$DOCKER_TAG" . | |||
docker tag builder:"$DOCKER_TAG" quay.io/influxdb/builder:"$DOCKER_TAG" | |||
|
|||
docker push quay.io/influxdb/builder:"$DOCKER_TAG" | |||
#docker push quay.io/influxdb/builder:"$DOCKER_TAG" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be uncommented, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, my apologies. I tested the script without pushing the new Docker image. It is fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
Closes https://github.com/influxdata/edge/issues/685
This PR introduces several changes:
1.21.10
.protobuf
library to3.18.3
and standardizes its use across the source base, including inDockerfile_build
,build.sh
, andtest.sh
.For more info see:
Custom builder
The reason for a new custom builder is compatibility issues between the
protobuf
library and Chronograf's UDFs for Python. The updated version of thecross-builder
(see PR #669) upgradesprotobuf
to version26.1
. However, this version introduces breaking changes in the Python protobuf library. The Python build for protobuf, available at protobuf 5.26.1 on PyPI, does not support Python 2. As a result, updating to the latest version of protobuf (by using newest `cross-builder) would eliminate support for Python v2 in UDFs.