Skip to content

fix(download): Correct Youki download URL for arm64 architecture#12956

Open
burxtx wants to merge 2 commits intokubernetes-sigs:masterfrom
burxtx:fix-#12950
Open

fix(download): Correct Youki download URL for arm64 architecture#12956
burxtx wants to merge 2 commits intokubernetes-sigs:masterfrom
burxtx:fix-#12950

Conversation

@burxtx
Copy link

@burxtx burxtx commented Feb 4, 2026

This PR fixes an issue with downloading Youki on systems where Ansible reports the architecture as arm64, such as Apple Silicon Macs. The youki_download_url was using {{ ansible_architecture }} directly, which results in arm64 in the URL. However, Youki's release artifacts use aarch64 for this architecture, leading to a "404 Not Found" error when trying to download the component.

What type of PR is this?

/kind bug

What this PR does / why we need it:
This change introduces a conditional to map arm64 to aarch64 for both the youki_download_url and the local destination file path (downloads.youki.dest), resolving the download failure.

Which issue(s) this PR fixes:

Fixes #12950

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Fixed youki download URL for Apple Silicon Mac's arm64 architecture

@k8s-ci-robot k8s-ci-robot added the do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. label Feb 4, 2026
@k8s-ci-robot k8s-ci-robot requested review from mzaian and yankay February 4, 2026 02:13
@k8s-ci-robot k8s-ci-robot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Feb 4, 2026
@k8s-ci-robot
Copy link
Contributor

Hi @burxtx. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Feb 4, 2026
@tico88612
Copy link
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Feb 4, 2026
@tico88612
Copy link
Member

Hey @burxtx, could you write the release note?

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Feb 4, 2026
@burxtx
Copy link
Author

burxtx commented Feb 4, 2026

Hey @burxtx, could you write the release note?

OK, release-note added.

@yankay
Copy link
Member

yankay commented Feb 5, 2026

Thanks @burxtx
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: burxtx, yankay

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 5, 2026
Copy link
Contributor

@VannTen VannTen left a comment

Choose a reason for hiding this comment

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

We already have the mapping in the other direction (host_architecture)( Which btw seems weird because I think ansible_arch can have the values used as key there).

Can you please instead add a dict alt_arch (or something like that) and use that (

alt_arch:
  arch1: alt_arch_name
  ...

There is one in

arch_alt_name = {
"amd64": "x86_64",
"arm64": "aarch64",
"ppc64le": None,
"arm": None,
"no_arch": None,
but it's not in YAML.

On systems where ansible_architecture is reported as 'arm64' (such as Apple Silicon Macs), downloading Youki fails because the release artifacts are named with 'aarch64'.
@k8s-ci-robot
Copy link
Contributor

Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added do-not-merge/contains-merge-commits size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Feb 9, 2026
@burxtx
Copy link
Author

burxtx commented Feb 9, 2026

We already have the mapping in the other direction (host_architecture)( Which btw seems weird because I think ansible_arch can have the values used as key there).

Can you please instead add a dict alt_arch (or something like that) and use that (

alt_arch:
  arch1: alt_arch_name
  ...

There is one in

arch_alt_name = {
"amd64": "x86_64",
"arm64": "aarch64",
"ppc64le": None,
"arm": None,
"no_arch": None,

but it's not in YAML.

@VannTen Thanks for the review, I also noticed the _host_architecture_groups, maybe we need a new dict to resolve the "reverse mapping". I've moved the alt architecture name mapping into "_alt_arch_name".

Copy link
Contributor

@VannTen VannTen left a comment

Choose a reason for hiding this comment

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

One comment (also, no need to rebase / merge unless the bot detect a conflict, but if you need to , you should do something like git rebase master from your branch.

Comment on lines +737 to +742
alt_host_arch: >-
{%- if ansible_architecture in _alt_arch_name -%}
{{ _alt_arch_name[ansible_architecture] }}
{%- else -%}
{{ ansible_architecture }}
{%- endif -%}
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't bother with that, this would only mask errors.
just setup the dict, and if you can have one entry for each supported arch for youki that should be enough.
Then just use alt_arch_name[ansible_architecture] directly on use site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/contains-merge-commits ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

youki download url is not compatible with MacOS arm64 architecture

5 participants