diff options
| author | Zuul <zuul@review.opendev.org> | 2024-03-28 16:29:14 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2024-03-28 16:29:14 +0000 |
| commit | 95a671b00df7625a357aa73f99f75965cb08aff2 (patch) | |
| tree | 9fb3f5d6ba16da122e88f91730e79c7fc83a93f9 /kolla | |
| parent | 2576fbde000484502e88b58d372b4c193341ed8b (diff) | |
| parent | 3ee1a82d8761902a75e075ccbcd8e9e02a226051 (diff) | |
| download | kolla-95a671b00df7625a357aa73f99f75965cb08aff2.tar.gz kolla-95a671b00df7625a357aa73f99f75965cb08aff2.zip | |
Merge "add: cross-compile support"
Diffstat (limited to 'kolla')
| -rw-r--r-- | kolla/common/config.py | 8 | ||||
| -rw-r--r-- | kolla/image/tasks.py | 1 | ||||
| -rw-r--r-- | kolla/tests/test_build.py | 13 |
3 files changed, 17 insertions, 5 deletions
diff --git a/kolla/common/config.py b/kolla/common/config.py index 2d12314a8..3a74c7dc6 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -143,6 +143,10 @@ if hostarch == 'aarch64': elif hostarch == 'x86_64': debianarch = 'amd64' +# NOTE: Apple Silicon reports as arm64 which is aarch64 +if hostarch == "arm64": + hostarch = "aarch64" + _CLI_OPTS = [ cfg.StrOpt('base', short='b', default='rocky', choices=BASE_OS_DISTRO, @@ -183,6 +187,10 @@ _CLI_OPTS = [ help='The network mode for Docker build. Example: host'), cfg.BoolOpt('cache', default=True, help='Use the container engine cache when building'), + cfg.StrOpt('platform', default=None, + help=('The platform to use for a cross-compile build. Should ' + 'be set in conjunction with "--base-arch" argument. ' + 'Example: "--platform linux/arm64 --base-arch aarch64"')), cfg.MultiOpt('profile', types.String(), short='p', help=('Build a pre-defined set of images, see [profiles]' ' section in config. The default profiles are:' diff --git a/kolla/image/tasks.py b/kolla/image/tasks.py index e9790b708..1242ecd8d 100644 --- a/kolla/image/tasks.py +++ b/kolla/image/tasks.py @@ -412,6 +412,7 @@ class BuildTask(EngineTask): network_mode=self.conf.network_mode, pull=pull, forcerm=self.forcerm, + platform=self.conf.platform, buildargs=buildargs, **kwargs)[1]: if self.conf.engine == engine.Engine.PODMAN.value: diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index 7ffa6827a..afbfe009c 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -168,7 +168,7 @@ class TasksTest(base.TestCase): mock_client().images.build.assert_called_once_with( path=self.image.path, tag=self.image.canonical_name, network_mode='host', nocache=False, rm=True, pull=True, - forcerm=True, buildargs=None, **self.build_kwargs) + forcerm=True, platform=None, buildargs=None, **self.build_kwargs) self.assertTrue(builder.success) @@ -185,7 +185,7 @@ class TasksTest(base.TestCase): mock_client().images.build.assert_called_once_with( path=self.image.path, tag=self.image.canonical_name, network_mode='bridge', nocache=False, rm=True, pull=True, - forcerm=True, buildargs=None, **self.build_kwargs) + forcerm=True, platform=None, buildargs=None, **self.build_kwargs) self.assertTrue(builder.success) @@ -205,7 +205,8 @@ class TasksTest(base.TestCase): mock_client().images.build.assert_called_once_with( path=self.image.path, tag=self.image.canonical_name, network_mode='host', nocache=False, rm=True, pull=True, - forcerm=True, buildargs=build_args, **self.build_kwargs) + forcerm=True, platform=None, buildargs=build_args, + **self.build_kwargs) self.assertTrue(builder.success) @@ -224,7 +225,8 @@ class TasksTest(base.TestCase): mock_client().images.build.assert_called_once_with( path=self.image.path, tag=self.image.canonical_name, network_mode='host', nocache=False, rm=True, pull=True, - forcerm=True, buildargs=build_args, **self.build_kwargs) + forcerm=True, platform=None, buildargs=build_args, + **self.build_kwargs) self.assertTrue(builder.success) @@ -245,7 +247,8 @@ class TasksTest(base.TestCase): mock_client().images.build.assert_called_once_with( path=self.image.path, tag=self.image.canonical_name, network_mode='host', nocache=False, rm=True, pull=True, - forcerm=True, buildargs=build_args, **self.build_kwargs) + forcerm=True, platform=None, buildargs=build_args, + **self.build_kwargs) self.assertTrue(builder.success) |
