FfDL
FfDL copied to clipboard
Add ppc64le & multiarch support
This code is adding ppc64le and multiarch support for FfDL.
-
Adds new make target to the main Makefile: docker-create-manifest that creates the multiarch manifests for the services.
-
arch (architecture) parameter was added to values.yaml and storage-plugin/values.yaml
make docker-build will generate all the services with a -${ARCHITECTURE} suffix. During build an ARCH argument is sent to the Dockerfiles in order to have architecture specific implementation inside it.
Building docker images for ppc64le should look like this:
make docker-build
make docker-push
make docker-create-manifest
.....
helm install storage-plugin --set arch=ppc64le,namespace=$NAMESPACE
helm install . --set arch=ppc64le,lcm.shared_volume_storage_class=$SHARED_VOLUME_STORAGE_CLASS,namespace=$NAMESPACE
Fixes #115
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the Apache License 2.0; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
Hi All,
This code adds support for ppc64le in FfDL. It does adds a suffix to the built services with the architecture and also adds a target in the main Makefile to create/ammend the needed manifest lists to support the multiple architectures.
There are two services that are needed by the code prom/pushgateway and localstack/localstack (optional) that does not have a ppc64le version in the public registries. I did generate custom build ppc64le version and pushed it to my own registry smonov. They will be pulled from there for now until published on a more official registry.
Found few issues. Fixing and testing them now:
- fixed issue with the repository in the values.yaml reported by @Tomcli
- added new target to the Makefile: docker-tag-local. It will tag the arch dependent image name to arch independent name. For example: ffdl/ffdl-ui-ppc64le:v0.1.1 will be tagged to ffdl/ffdl-ui:v.0.1.1. This is used for local deployments only that do not require pushing to registry. make docker-push will push only the arch dependent images (with -${ARCHITECTURE} suffix) only and then a manifest lists will be created for these image to support multiarch (by invoking make docker-create-manifest).
- updated .travis.yml to invoke docker-tag-local.
Thanks @sdmonov. What is the target for travis if any?
helm install storage-plugin --set arch=ppc64le,namespace=$NAMESPACE What if you have a mixed x86, POWER cluster, what happens then?
Could we not put the multi-arch storage plugin in a private repo and use it?
The public travis ci is now multi-arch so you should do builds with it. I would like to see the changes in Travis.yaml file.
We have to deal with learner images... is that addressed in a different PR?
@seelam:
- About the storage plugin I totally agree with you we need to push multi-arch images and create a manifest list. I have no access to push images at the moment. If I can be given access (@animeshsingh) I can push both ppc64le and x86_64 images and create the manifest lists to support the multi-arch.
- at the moment travil.yml (as far as I can tell looking into it) is doing testing only. It is not pushing images to the repos
- learner images will go separate PR. will commit soon.