grafana / rollout-operator

Kubernetes Rollout Operator
Apache License 2.0
132 stars 17 forks source link

Compile in bookworm and update alpine to 3.19 #97

Closed andyasp closed 9 months ago

andyasp commented 9 months ago

Alpine Release Notes

andyasp commented 9 months ago

Will have to wait for the golang image to be updated.

andyasp commented 9 months ago

Reran the tests since golang uploaded the new images, but now there's a build failure with boringcrypto:

#14 [build 5/5] RUN GOOS=linux GOARCH=amd64 make rollout-operator-boringcrypto
#14 0.183 GOEXPERIMENT=boringcrypto GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -tags netgo ./cmd/rollout-operator
#14 50.25 # github.com/grafana/rollout-operator/cmd/rollout-operator
#14 50.25 /usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
#14 50.25 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-4052097540/000023.o: in function `BIO_new_file':
#14 50.25 (.text+0xcb1dc): undefined reference to `fopen64'
#14 50.25 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-4052097540/000023.o: in function `BIO_rw_filename':
#14 50.25 (.text+0xcb60d): undefined reference to `fopen64'
#14 50.25 collect2: error: ld returned 1 exit status
andyasp commented 9 months ago

The build issue has already been reported upstream. There's no rush in going to 3.19 for us so I'll keep this PR in draft for the time being.

andyasp commented 9 months ago

In the go issue fixing this was declined. Seems that we'll have to go back to compiling in a glibc environment in order to move forward. As a note we've been compiling in alpine since boringcrypto was introduced here in https://github.com/grafana/rollout-operator/pull/71.

andyasp commented 9 months ago

Double checked for BoringCrypto in the runtime boringcrypto container (modified to include go for the check):

$ go tool nm /bin/rollout-operator | grep Boring
  16ea60 T crypto/internal/boring/sig.BoringCrypto.abi0
   666a0 t kBoringSSLRSASqrtTwo
   667a0 t kBoringSSLRSASqrtTwoLen
$ go tool nm /bin/rollout-operator | grep StandardCrypto