Skip to content

Remove M1-specific docs - Airbyte works on M1 Macs now #11856

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

Merged
merged 3 commits into from
May 24, 2022

Conversation

evantahler
Copy link
Contributor

@evantahler evantahler commented Apr 8, 2022

In a fresh environment without any special environment variables, Airbyte works just fine locally now, using the most recent published containers.

To confirm this:

# Erase any docker images & volumes you may have 
docker system prune -a # hit yes
docker volume prune # hit yes

# unset any special environment variables you may have
unset DOCKER_BUILD_PLATFORM
unset DOCKER_BUILD_ARCH
unset ALPINE_IMAGE
unset POSTGRES_IMAGE
unset JDK_VERSION

# check out the master branch
git checkout master # in the airbyte repo

# see that it just works (tm)
docker compose up

┆Issue is synchronized with this Monday item by Unito

@github-actions github-actions bot added area/documentation Improvements or additions to documentation area/platform issues related to the platform area/server labels Apr 8, 2022
@evantahler evantahler requested a review from sherifnada April 8, 2022 23:25
@evantahler evantahler temporarily deployed to more-secrets April 8, 2022 23:27 Inactive
@evantahler evantahler temporarily deployed to more-secrets April 8, 2022 23:27 Inactive
@evantahler evantahler marked this pull request as ready for review April 8, 2022 23:32
@evantahler evantahler temporarily deployed to more-secrets April 8, 2022 23:33 Inactive
@evantahler evantahler temporarily deployed to more-secrets April 8, 2022 23:33 Inactive
@evantahler
Copy link
Contributor Author

As a note when testing, it looks like POSTGRES_IMAGE isn't in use, so that can be removed as well (#11860)

Copy link
Contributor

@sherifnada sherifnada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seminal work

@evantahler evantahler temporarily deployed to more-secrets April 9, 2022 18:18 Inactive
@evantahler evantahler temporarily deployed to more-secrets April 9, 2022 18:18 Inactive
@jrhizor
Copy link
Contributor

jrhizor commented Apr 10, 2022

Have you tried running acceptance tests locally on the published amd64 images on an M1 machine? I think most of the M1-related issues people were seeing when not building the images themselves were transient exceptions or random stall outs that aren't present when building for ARM.

If you can reliably run the acceptance tests this is 100% good to go.

@evantahler
Copy link
Contributor Author

evantahler commented Apr 11, 2022

Ah! On my local machine (M1 Macbook Pro), I've got one consistent failure.

$ uname -a
# Yep, really using an M1 chip (ARM64 something something)
Darwin evan-airbyte-mac.local 21.4.0 Darwin Kernel Version 21.4.0: Fri Mar 18 00:46:32 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T6000 arm64


$ SUB_BUILD=PLATFORM ./gradlew clean build
# ...
BUILD SUCCESSFUL in 4m 38s
355 actionable tasks: 318 executed, 24 from cache, 13 up-to-date


$ SUB_BUILD=PLATFORM ./gradlew :airbyte-tests:acceptanceTests
Building Airbyte Sub Build: PLATFORM

> Task :airbyte-tests:acceptanceTests
AcceptanceTests > testGetDestinationSpec() PASSED
AcceptanceTests > testFailedGet404() PASSED
AcceptanceTests > testGetSourceSpec() PASSED
AcceptanceTests > testCreateDestination() PASSED
AcceptanceTests > testDestinationCheckConnection() PASSED
AcceptanceTests > testCreateSource() PASSED
AcceptanceTests > testSourceCheckConnection() PASSED
AcceptanceTests > testDiscoverSourceSchema() PASSED
AcceptanceTests > testCreateConnection() PASSED
AcceptanceTests > testManualSync() FAILED
    org.opentest4j.AssertionFailedError: expected: <succeeded> but was: <pending>
        at app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
        at app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
        at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
        at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
        at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1141)
        at app//io.airbyte.test.acceptance.AcceptanceTests.waitForSuccessfulJob(AcceptanceTests.java:1652)
        at app//io.airbyte.test.acceptance.AcceptanceTests.testManualSync(AcceptanceTests.java:498)

11 tests completed, 1 failed, 1 skipped

> Task :airbyte-tests:acceptanceTests FAILED

Initially, I couldn't even boot the app, so I thought the problemspace was more binary. I'll try and see if I can get that test passing.

@evantahler
Copy link
Contributor Author

evantahler commented Apr 11, 2022

Any advice on how to get the Github tests passing @jrhizor ?

@davinchia
Copy link
Contributor

can you try ./gradlew format?

@davinchia
Copy link
Contributor

davinchia commented Apr 12, 2022

@jrhizor are we actually publishing M1 images with each release now or are these changes only limited to the developing locally portion?

@evantahler
Copy link
Contributor Author

evantahler commented Apr 12, 2022

I'm still doing discovery on this topic (notes @ https://www.notion.so/MacOS-M1-Problems-6c3c441d951f4410bdf47a8125fbb195), but so far the only custom image I've found for M1/ARM is airbyte/temporal-auto-setup, which may itself no longer be needed, if we upgrade.

@davinchia
Copy link
Contributor

davinchia commented Apr 12, 2022

there is an open issue on the infrastructure side to publish Airbyte M1 images that is in the last stages: https://github.com/airbytehq/airbyte-cloud/issues/801

this is separate from actually running Airbyte on M1 macs, which sounds like is part of your goals too?

@evantahler
Copy link
Contributor Author

evantahler commented Apr 12, 2022

./gradlew format is OK (edit: my fault)

@jrhizor
Copy link
Contributor

jrhizor commented Apr 12, 2022

These problems running syncs with Airbyte go away when using M1-built images for the platform. We probably just need to wait for https://github.com/airbytehq/airbyte-cloud/issues/801 and then we can merge this.

@sherifnada
Copy link
Contributor

it looks like ARM64 should be supportable on self-hosted runners: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#architectures

so that's probably the first step actually, like Jared said

@davinchia
Copy link
Contributor

Yeap. We can switch the AMIs out as we need to. We should build both architectures so we don't need to immediately switch those out, though we should eventually do so since AWS ARM instances are 25% cheaper than x86.

@CLAassistant
Copy link

CLAassistant commented May 5, 2022

CLA assistant check
All committers have signed the CLA.

@evantahler evantahler temporarily deployed to more-secrets May 5, 2022 18:39 Inactive
@evantahler evantahler temporarily deployed to more-secrets May 5, 2022 18:39 Inactive
@evantahler evantahler merged commit be8d857 into master May 24, 2022
@evantahler evantahler deleted the evan/m1-docs-gone branch May 24, 2022 23:46
jscottpolevault pushed a commit to jscottpolevault/airbyte that referenced this pull request Jun 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/documentation Improvements or additions to documentation area/platform issues related to the platform area/server
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants