Configure “Docker” runtime to multi-architecture build. #24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use gradle-docker-plugin and (my) gradle-fatmanifest-plugin to create a multi-architecture manifest for the nodejs runtime. The process relies on having PPC64LE and S390X docker environments available. The TLS certificates for these environments are encrypted in the repo. The GPG key for them has been encrypted as well, accessible by my fork and by ‘apache/incubator-openwhisk-runtime-nodejs’. Other forks can be given access — it is necessary to add encryption’s of the GPG key and the JSON specifying the repository locations in the .travis.yml. They will also need to provide their own Docker registry (or we need to do some additional work to support using an ephemeral registry — the problem is that we then need to add a capability to the gradle-fatmanifest-plugin to copy blobs between registries, not a pretty proposition.
I’m going to try to add some documentation of the process to the files and to a docs folder, but I wanted to get review started now, as I suspect there’ll be many questions and those will in turn inform the documentation.
This is a key milestone in being able to run OpenWhisk in a multi-architecture environment. Being able to take advantage of it will eventually depend upon OpenWhisk Issue 3412 and other following changes to do away with hard-coding. (See OpenWhisk PR 3407 for an outline of upcoming changes.)
There is a severe backlog of cleanup coming, too. Issue to follow to document needed cleanup.
@csantanapr
Bump to the Python version used and to use Alpine 3.7 image (python defaults to Alpine 3.4, which has no multiarch image built).