diff options
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) |
