-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add docker images built using FIPS binaries #7352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Let's make that PR title a 💯 shall we? 💪 Your PR title and story title look slightly different. Just checking in to know if it was intentional!
Check out this guide to learn more about PR best-practices. |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
API Changes no api changes detected |
PR Code Suggestions ✨Explore these optional code suggestions:
|
📦 Impact Review Snapshot
Impact AssessmentThis PR adds FIPS-compliant Docker images to Tyk Gateway releases without modifying any APIs, schemas, or protocols. The changes are limited to build configuration (goreleaser.yml) and CI/CD workflows (release.yml). Parallel PRs exist for other components (tyk-pump, tyk-sink, tyk-analytics) to ensure consistent FIPS support across the platform. Required UpdatesNo direct code updates are required in downstream repositories, but documentation should be updated to reflect the availability of FIPS-compliant Docker images. The PR author notes that "Changes to FIPS documentation may be required." For tyk-charts, consider adding support for deploying FIPS images as an option in Helm charts, though this isn't strictly required for compatibility. For tyk-sink (MDCB), the parallel PR mentioned in the description should handle the necessary changes to ensure consistent FIPS support. Compatibility ConcernsNo backward compatibility issues are expected as this PR only adds new Docker image variants without changing existing functionality. The FIPS images are built using the GOEXPERIMENT=boringcrypto flag and packaged in distroless containers, but the API surface and behavior remain unchanged. Note that FIPS images are currently only available for amd64 architecture (not arm64), which should be documented. Summary & Recommendations
Tip: Mention me again using |
🚀 Performance Snapshot
## Performance Impact AnalysisThis PR adds FIPS-compliant Docker images to Tyk Gateway releases without modifying the core codebase. The performance impact is isolated to cryptographic operations due to the use of BoringSSL (via Go's boringcrypto experiment) instead of standard Go crypto libraries. BoringSSL typically has different performance characteristics, often with some overhead for FIPS compliance. ## Critical AreasThe only performance-sensitive areas potentially affected are:
No changes to request handling logic, middleware chains, or API definition processing are included in this PR. ## Optimization Recommendations
## Summary
Tip: Mention me again using |
🚦 Connectivity Review Snapshot
## Connectivity Assessment
## Test Coverage Validation
## Security & Performance Impact
## Summary & Recommendations
Tip: Mention me again using |
Analysis of PR: Add Docker Images Built Using FIPS BinariesThis PR adds FIPS-compliant Docker images to Tyk Gateway releases by leveraging existing FIPS binaries in a distroless container. The changes are purely infrastructure-focused and don't modify any application code or APIs. Key Changes
Important Notes
Performance & Security Considerations
This PR successfully implements the requested feature without modifying any application code or APIs, making it a low-risk enhancement that meets the customer requirements for FIPS-compliant Docker images. Tip: Mention me again using |
🚦 Connectivity Review Snapshot
## Connectivity Assessment
## Test Coverage Validation
## Security & Performance Impact
## Summary & Recommendations
Tip: Mention me again using |
|
User description
TT-15334
Description
Auto generated changes by gromit to add fips compliant docker images to releases. These changes are in response to a customer request for fips compliant docker images. These are provided by using our existing fips binaries in a distroless image. THESE ARE NOT FIPS VALIDATED IMAGES. see this ticket. Changes to FIPS documentation may be required.
Related Issue
These changes are in response to a customer request for fips compliant docker images. These are provided by using our existing fips binaries in a distroless image. THESE ARE NOT FIPS VALIDATED IMAGES. see this ticket. There are also PRs with the same branch name on the following repos tyk-pump tyk-sink tyk-analytics
Motivation and Context
These images were request to be included in regular releases by a client.
How This Has Been Tested
goreleaser was run locally, everything seems okay a fips image is built using the fips binary. More end to end testing is needed with the other fips components.
Types of changes
Checklist
fork, don't request your
master
!master
branch (left side). Also, you should startyour branch off our latest
master
.go mod tidy && go mod vendor
go fmt -s
go vet
PR Type
Enhancement, Other
Description
Add FIPS Docker image build and publish
Extend CI with FIPS image metadata/tags
Configure goreleaser for FIPS/std/EE images
Tweak Dockerfile install and cleanup paths
Diagram Walkthrough
File Walkthrough
release.yml
CI workflow adds FIPS image build and publish
.github/workflows/release.yml
goreleaser.yml
Goreleaser config for FIPS/STD/EE Docker images
ci/goreleaser/goreleaser.yml
Dockerfile.std
Standard Dockerfile installs from dist and cleans
ci/Dockerfile.std