Add Docker images to build with crypto backends for Windows, and include cross-builds
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 431
- Forks
- 44
- Avg merge
- 21h 18m
- Merged PRs (30d)
- 30
Description
Right now, we have -fips tags, but they're limited to building on Linux targeting Linux.
We know that some people do build on Linux targeting Windows. It would help if we provide a tag to do that, rather than forcing them to manually configure GOEXPERIMENT in this particular case.
We also have no FIPS-preconfigured Windows builders, whether targeting Windows or Linux. I don't think we've identified any teams that build this way, but it seems reasonable to fill out the build matrix to have something ready for anyone who does.
We need a new naming scheme for this. I think dropping simple -fips- and mentioning the backend is needed. Simplest is to use the goexperiment string, like:
| Tag | Build platform | Target platform |
|---|---|---|
.../microsoft/golang:1.21-opensslcrypto-bullseye |
Linux | Linux |
.../microsoft/golang:1.21-cngcrypto-bullseye |
Linux | Windows |
.../microsoft/golang:1.21-opensslcrypto-windowsservercore-ltsc2022 |
Windows | Linux |
.../microsoft/golang:1.21-cngcrypto-windowsservercore-ltsc2022 |
Windows | Windows |
Something to perhaps point out more directly in our readme is that we don't produce runtime images. These (and the non-FIPS images for that matter) are all meant to be used for builds, not deployment.
- Related: https://github.com/microsoft/go/issues/695
- We could also consider adding e.g.
golang:1.21-opensslcrypto-compelfips-bullseyetying in with https://github.com/microsoft/go/issues/928
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing Docker image definitions and -fips build configuration, then compare the Linux/Windows build and target combinations listed in the issue. Define the backend-aware tag matrix and update the README to state that these are build images, not runtime images; done means the four listed combinations are available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- build-system, devops
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100