forked from chef/omnibus
-
Notifications
You must be signed in to change notification settings - Fork 11
[ABLD-28] Backport upstream macOS multiarch support #240
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
rdesgroppes
merged 2 commits into
datadog-5.5.0
from
regis.desgroppes/backport-macos-multiarch-support
Jul 18, 2025
Merged
[ABLD-28] Backport upstream macOS multiarch support #240
rdesgroppes
merged 2 commits into
datadog-5.5.0
from
regis.desgroppes/backport-macos-multiarch-support
Jul 18, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aiuto
reviewed
Jul 16, 2025
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait. Quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240 The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
bb4f723 to
0af1fed
Compare
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 16, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
aiuto
approved these changes
Jul 17, 2025
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 17, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 17, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
* Provide the correct platform version (11 vs 11.x) for macOS. * Add the architecture (x86_64, arm64) to the file name Cherry-picked-from: chef/omnibus@2b1b503 Co-authored-by: Régis Desgroppes <regis.desgroppes@datadoghq.com>
0af1fed to
0dce646
Compare
25 tasks
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 17, 2025
The script doesn't need to wait for AArch64/ARM64 DMGs to be publicly released - quite the other way around as we're going to add an architecture qualifier to DMGs, see: DataDog/omnibus-ruby#240. The present change therefore adapts the script to the foreseeable future, by considering the optional presence of an architecture qualifier.
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 18, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
Unless hostArchitectures is set, macOS 11 will assume that the package is x86_64 and require Rosetta 2. * https://scriptingosx.com/2020/12/platform-support-in-macos-installer-packages-pkg/ * https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW7 Cherry-picked-from: chef/omnibus@6173b5f Co-authored-by: Régis Desgroppes <regis.desgroppes@datadoghq.com>
0dce646 to
71e05f5
Compare
1 task
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 18, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 18, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 18, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 21, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 21, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - #38498 - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 21, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 21, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 22, 2025
This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20812 - DataDog/integrations-core#20815 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 22, 2025
Add macOS build for AArch64/ARM64 This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20812 - DataDog/integrations-core#20815 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
rdesgroppes
added a commit
to DataDog/datadog-agent
that referenced
this pull request
Jul 28, 2025
Add macOS build for AArch64/ARM64 This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20812 - DataDog/integrations-core#20815 - DataDog/integrations-core#20645 - DataDog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
lucastemb
pushed a commit
to DataDog/datadog-agent
that referenced
this pull request
Aug 7, 2025
Add macOS build for AArch64/ARM64 This is the payload for adding macOS "native" build support for the AArch64/ARM64 architecture to the Agent, that is by removing the need for Rosetta 2 translation at runtime. Groundwork enabling the present payload: - DataDog/integrations-core#20455 - DataDog/integrations-core#20577 - DataDog/integrations-core#20699 - DataDog/omnibus-ruby#239 - DataDog/omnibus-ruby#240 - #38498 - #39082 - DataDog/agent-release-management#364 Some earlier scouting: - DataDog/integrations-core#19193 (credits to @Pythyu) - DataDog/omnibus-software#553 (credits to @Pythyu) - #31787 (credits to @Pythyu) - DataDog/ci-platform-machine-images#321 Some follow-ups: - DataDog/datadog-agent-dev#137 - DataDog/datadog-agent-buildimages#888 - #38446 - DataDog/integrations-core#20812 - DataDog/integrations-core#20815 - DataDog/integrations-core#20645 - Datadog/ci-platform-machine-images#343 - DataDog/agent-release-management#365
rdesgroppes
added a commit
to DataDog/ansible-datadog
that referenced
this pull request
Oct 8, 2025
…#664) * Prepare deployment of Agent v7.70+ for macOS (arm64/x86_64) This change is meant to take into account how agent deliverables for macOS embed architecture qualifiers (name & metadata) starting from version 7.70 and some of the practical implications. A word of caution: I'm far from being fluent with `ansible`, let alone with the local setup and conventions, so the change is unlikely to work out of the box nor to be exhaustive. Following upstream changes might be of interest to reviewers: - architecture qualifiers: - DataDog/omnibus-ruby#240 - DataDog/agent-release-management#364 - new build for AArch64/ARM64: - DataDog/datadog-agent#37676 - DataDog/agent-release-management#365 * Fix CI-reported failures Altogether: - use method `GET` w/ `return_content: false` instead of `HEAD` (not necessarily implemented) - move `uri`-unsupported `retries` to upper level - pass `status_code: 200` to populate `datadog_macos_agent7_latest_arch_check.status` - make `ansible-lint` happy (at the expense of readability) * Apply Fanny's suggestion To prevent an undefined variable error. Co-authored-by: Fanny Jiang <fanny.jiang@datadoghq.com> * Make `ansible-lint` happy again Use a folded block scalar to overcome the 160-char line limitation. --------- Co-authored-by: Fanny Jiang <fanny.jiang@datadoghq.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
While looking at the macOS installation script, I realized no architecture was passed to the
dd-agentquery string:curl "https://s3.amazonaws.com/dd-agent?prefix=datadog-agent-${major_minor}."There was no architecture disambiguation so far because our PKGs and DMGs had been primarily targeting x86_64/AMD64, and relying on Rosetta 2 translation for AArch64/ARM64.
The present change is therefore to backport (
git cherry-pick) upstream efforts on the matter, i.e.:Without/with an architecture qualifier:
(examples from development pipelines)