Conversation
64a1f8b to
e2f448f
Compare
|
@whummer @thrau I am having a heck of a time with two things. 1) getting the elastic search plugins to install without hanging for 20+ minutes. 2) getting the tests to run on arm in circleCI. I'm wondering if the choice of alpine as base is causing us some pain with so much python and musl. Maybe it's causing compile issues on Arm? What's interesting is the tests will run locally on my M1 mac build so maybe an available CPU/memory issue? I'm open to thoughts. |
9d7d647 to
f63d375
Compare
|
Hi @chezsmithy - thanks again so much for your hard work on this PR. We'd be happy to jump in and help out with the remaining issues (e.g., test failures). Do you think you could give us push access to your fork, so we can collaborate on your branch? Thanks! 🙏 |
You should have access now. I've added in a new Dockerfile called Dockerfile.complete-debian. It's based off of Debian buster python 3.8. Build times are greatly improved for arm. Also, it has stabilized my test runs. Likely this is due to having glibc included. I wonder if it might make sense to use this rather than alpine as the base? Thoughts? |
|
@whummer I've setup the full run. After the move to Debian it's all green locally and in ci, except the same Elasticsearch tests still failing only in ci. They run just fine locally so I could use some help debugging those. I'm getting close to needing to integration test an actual push to docker. Going to need to simulate that by changing the image tags perhaps to avoid actually deploying images. |
|
Thank you so much for crunching through this PR @chezsmithy , 🙏 and apologies for the delay on our end - unfortunately we got swamped with a few tasks the last couple of days. Will carve out some time later today and tomorrow to review your changes and see how we can best integrate them into our e2e pipeline. Please do let us know if we can help out with testing the Docker push - if we could ensure that we're using a different testing tag for now, that would be great.. 👍 Thanks! |
|
@chezsmithy - can we please also give @alexrashed push access to your branch, he'll also help out with reviewing and incorporating the changes into our e2e flow. Thanks! 🙏 |
|
I've got the Elasticsearch plug-ins to install now, but the tests still seem to fail. Root cause looks like this in the test logs: tests/integration/test_elasticsearch.py::ElasticsearchTest::test_create_existing_domain_causes_exception What's odd is if I try the same test using the same docker file locally on my M1 Mac, the same tests pass. Must be something environmental on the circleci runners? |
adb6eff to
585ac14
Compare
|
Hi @chezsmithy! I started working on this on Friday. First thing was to fix the base image build's ES plugin installations (which was broken due to changes to their webserver's cipher suite, which in turn weren't supported in our stripped down JRE). This actually had nothing to do with this PR, but was basically a prerequisite to get started. Currently I'm working on getting the multiarch alpine base image build working for me, because we would actually try to stick with alpine if that's possible. We really want to keep things as small and fast as possible, and therefore we really want to avoid the additional 310 MB of the Debian image. We could also short-circuit in our community Slack to join forces if you would like to. |
Thanks! Not many changes in the end, but it's got a few moving parts to it. It might be worth considering Debian, just for the benefit of your python code build times. On alpine, with musl it appears may of the wheels need to be built from scratch extending the docker build time. With Debian and glibc only a few need to build making it much faster. I have both docker files so you can compare and see. Love to work with you on slack. |
ab64a0f to
e4ab2a5
Compare
localstack/services/es/cluster.py
Outdated
| mkdir(dirs.tmp) | ||
| chmod_r(dirs.tmp, 0o777) | ||
|
|
||
| rm_rf(dirs.backup) |
There was a problem hiding this comment.
@whummer @alexrashed @thrau I added this cleanup for the backup directory here to stabilize my tests. Not sure why it's working without the backup directory being pre-created in the current docker runs, but this fixes things for me now and all elastic search tests pass. Thoughts?
|
Hey, please see my comment here for an update: #2550 (comment) we cleaned up the history in this PR, and there are a few kinks which i'm currently fixing. We should then be good to prepare the release for monday! |
4d422b7 to
80bc2fc
Compare
|
|
||
| SHELL [ "/bin/bash", "-c" ] | ||
|
|
||
| # install Docker (CLI only) |
There was a problem hiding this comment.
We can look into removing the Docker CLI from here, actually (now that we have the Docker Python SDK fully integrated). Would probably save us another ~50MB in the final image 💪 - we can look into that post initial release.. /cc @thrau @dfangl @alexrashed
There was a problem hiding this comment.
good point! some folks do rely on the legacy docker client AFAIK, but we can maybe make that part of the full image.
2ec0a45 to
2775c39
Compare
|
build is green :-) we will prepare the 0.13 release now, and will merge the PR manually hopefully on monday |
2775c39 to
372dd98
Compare
8dbb9d7 to
d8d0985
Compare
| pass | ||
| if system not in ["linux"]: | ||
| raise ValueError("unsupported os %s for awslambda-go-runtime" % system) | ||
| if arch not in ["amd64", "arm32"]: |
There was a problem hiding this comment.
Should this be arm32 here?
There was a problem hiding this comment.
jep good catch! thanks for pointing it out. will fix
d8d0985 to
2263526
Compare
Co-authored-by: Alexander Rashed <alexander.rashed@localstack.cloud>
Co-authored-by: Shawn Smith <chezsmithy@me.com> Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud>
Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud> Co-authored-by: Thomas Rausch <thomas@thrau.at>
2263526 to
990da3e
Compare
990da3e to
d295169
Compare
Multi-platform changes for Dockerfile-base and Dockerfile.
Preparation for changes to circleci.yml to perform multi-arch builds using docker buildx build.
Confirmed tests run with locally integrated tests harnesses.
Confirmed working sns, s3, dynamodb, sqs, secretsmanager, ssm
TODO:
Need to run full test suite locally.
Need to modify make file and circle ci configuration to include docker buildx build with multiple platforms and qemu for arm builds in circle ci and local.