Skip to content

feat: ARM64 support#158

Merged
yanksyoon merged 28 commits intomainfrom
feat/arm64
Dec 5, 2023
Merged

feat: ARM64 support#158
yanksyoon merged 28 commits intomainfrom
feat/arm64

Conversation

@yanksyoon
Copy link
Copy Markdown
Member

@yanksyoon yanksyoon commented Nov 30, 2023

Applicable spec: ISD097

Overview

Adds support for ARM64 deployment for bare metal arm64 machines (for non-bare metal machines, arm v8.3a or higher is required which supports nested virtualizations. See https://developer.arm.com/documentation/102142/0100/Nested-virtualization)

Link to successful CI runs: https://github.com/yanksyoon/selfhostedtest/actions/runs/7057746518/job/19211975867

Rationale

To support ARM64 workloads.

Juju Events Changes

None.

Module Changes

charm_state.py adds a method to determine current architecture.
runner.py introduces arm64 yq binary url.

Library Changes

None.

Checklist

Documentation on Charmhub should automatically be updated with the upload-charm-docs workflow.

@yanksyoon yanksyoon changed the title [WIP] feat: ARM64 support (bare metal) feat: ARM64 support (bare metal) Dec 3, 2023
Copy link
Copy Markdown
Member Author

@yanksyoon yanksyoon left a comment

Choose a reason for hiding this comment

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

Some comments to help review.

Comment thread src/runner.py
Comment thread src/runner.py
Comment thread src/runner_manager.py
@yanksyoon yanksyoon marked this pull request as ready for review December 3, 2023 07:41
@yanksyoon yanksyoon requested a review from a team as a code owner December 3, 2023 07:41
@jdkandersson
Copy link
Copy Markdown
Contributor

Could we change the title to not include bare metal since that is more a question of what is supported by the hardware rather than what the charm supports please?

@yanksyoon yanksyoon changed the title feat: ARM64 support (bare metal) feat: ARM64 support Dec 4, 2023
@yanksyoon
Copy link
Copy Markdown
Member Author

@jdkandersson Updated, thank you!

Comment thread docs/explanation/arm64.md Outdated
Comment thread docs/explanation/arm64.md Outdated
Comment thread docs/how-to/deploy-on-arm64.md Outdated
Comment thread docs/how-to/deploy-on-arm64.md Outdated
Comment thread docs/reference/arm64.md Outdated
Comment thread src-docs/charm_state.py.md
Comment thread src/charm_state.py Outdated
Comment thread tests/unit/test_charm.py
Comment thread src/charm_state.py Outdated
jdkandersson
jdkandersson previously approved these changes Dec 4, 2023
cbartz
cbartz previously approved these changes Dec 4, 2023
Copy link
Copy Markdown
Collaborator

@cbartz cbartz left a comment

Choose a reason for hiding this comment

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

LGTM, Just one small comment.

Comment thread tests/unit/test_runner_manager.py Outdated
Co-authored-by: Christopher Bartz <christopher.bartz@canonical.com>
jdkandersson
jdkandersson previously approved these changes Dec 4, 2023
cbartz
cbartz previously approved these changes Dec 4, 2023
@yanksyoon yanksyoon dismissed stale reviews from cbartz and jdkandersson via a4105e3 December 5, 2023 06:25
jdkandersson
jdkandersson previously approved these changes Dec 5, 2023
cbartz
cbartz previously approved these changes Dec 5, 2023
@yanksyoon yanksyoon dismissed stale reviews from cbartz and jdkandersson via ac10133 December 5, 2023 06:31
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 5, 2023

Test coverage for ac10133

Name                    Stmts   Miss Branch BrPart  Cover   Missing
-------------------------------------------------------------------
src/charm.py              429     98    107     25    75%   79-80, 86-88, 112-113, 117-119, 155-157, 167->179, 177, 220-228, 240-244, 275, 352-357, 378, 395-396, 405-428, 446-448, 456-459, 466, 469-470, 486, 491-496, 541->544, 557-558, 560-561, 595-602, 626-627, 639-641, 656-657, 682-683, 685-686, 688-689, 763->765, 826-827, 843, 861-863, 867
src/charm_state.py         75      6     10      0    91%   90-97
src/errors.py              34      0      0      0   100%
src/event_timer.py         42      8      4      0    74%   94-97, 117-120
src/firewall.py            43     25     10      0    38%   38-42, 64-67, 75-149
src/github_type.py         36      0      0      0   100%
src/lxd_type.py            37      0      2      0   100%
src/metrics.py             67      2     10      1    96%   60->63, 150-151
src/runner.py             344     70    110     26    75%   50->52, 128, 226-233, 239-245, 272-273, 317-326, 350-355, 360, 380, 384-394, 443->446, 449-451, 458, 472, 482, 486, 488, 504, 552-557, 573-586, 597-629, 634, 672, 718-720, 724, 742, 777, 803, 808-820, 834, 854, 870
src/runner_manager.py     274     26    102      9    90%   166, 219-221, 234-235, 247-249, 255-260, 264-265, 275-276, 295, 424, 443-447, 472, 555, 704, 724
src/runner_metrics.py     112      5     22      2    95%   133-134, 146, 215-216
src/runner_type.py         55      0     12      0   100%
src/shared_fs.py           80     10     12      0    89%   73-74, 160-161, 166-167, 173-174, 196-197
src/utilities.py           68      6     20      8    84%   74->76, 78->84, 89-91, 121, 135, 173, 226
-------------------------------------------------------------------
TOTAL                    1696    256    421     71    82%

Static code analysis report

Run started:2023-12-05 06:32:33.691133

Test results:
  No issues identified.

Code scanned:
  Total lines of code: 3776
  Total lines skipped (#nosec): 0
  Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 10

Run metrics:
  Total issues (by severity):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
  Total issues (by confidence):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
Files skipped (0):

@yanksyoon yanksyoon merged commit abfce11 into main Dec 5, 2023
@yanksyoon yanksyoon deleted the feat/arm64 branch December 5, 2023 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants