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
feat: plugin location support for GOARCH and GOOS env vars #3280
base: master
Are you sure you want to change the base?
Conversation
Quality Gate failedFailed conditions 48.6% Duplication on New Code (required ≤ 40%) |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3280 +/- ##
==========================================
+ Coverage 81.83% 82.89% +1.05%
==========================================
Files 135 135
Lines 20688 17149 -3539
==========================================
- Hits 16931 14215 -2716
+ Misses 2883 2042 -841
- Partials 874 892 +18 ☔ View full report in Codecov by Sentry. |
Go Published Test Results2 161 tests 2 161 ✅ 2m 53s ⏱️ Results for commit 26efbce. ♻️ This comment has been updated with latest results. |
E2E Tests Published Test Results 6 files 6 suites 5h 23m 33s ⏱️ For more details on these failures, see this check. Results for commit 26efbce. ♻️ This comment has been updated with latest results. |
5bdee35
to
dca2186
Compare
Quality Gate passedKudos, no new issues were introduced! 0 New issues |
@zachaller Thanks for reviewing and sorry for the delay responding. I started trying to document this and I realised that the approach I've taken really is not compatible with the checksum field. If considered important it might have been better to support an extended plugin syntax, perhaps something like: - name: plugin-name
platforms:
linux-amd64:
location: <uri>
sha256: <checksum>
linux-arm64:
location: <uri>
sha256: <checksum> Presumably, for backwards compatibility, this would need to continue supporting the existing syntax complicating the implementation a bit, e.g: apiVersion: v1
kind: ConfigMap
metadata:
name: argo-rollouts-config
data:
trafficRouterPlugins: |-
- name: "argoproj-labs/sample-nginx" # name of the plugin, it must match the name required by the plugin so it can find it's configuration
location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-sample-nginx/releases/download/v0.0.1/metric-plugin-linux-amd64" # supports http(s):// urls and file://
sha256: "08f588b1c799a37bbe8d0fc74cc1b1492dd70b2c" #optional sha256 checksum of the plugin executable
- name: "argoproj-labs/sample-httproute"
platform:
linux-amd64:
location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-sample-httproute/releases/download/v0.0.1/httproute-plugin-linux-amd64"
sha256: "<checksum>"
linux-arm64:
location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-sample-httproute/releases/download/v0.0.1/httproute-plugin-linux-arm64"
sha256: "<checksum>" Personally, I'd always self-host these binaries anyway rather than downloading from the internet, so omitting the checksum wouldn't be such a concern. What do you think? |
Yea that is a good callout another option would be to allow a list of sha's that are valid, it's a little bit less of a spec change but also maybe not as direct from a security perspective not sure yet thoughts?
or with some extra metadata
|
Signed-off-by: Michael Sommerville <[email protected]> Closes: argoproj#3279
dca2186
to
26efbce
Compare
Quality Gate passedIssues Measures |
Signed-off-by: Michael Sommerville [email protected]
Closes: #3279
Checklist:
"fix(controller): Updates such and such. Fixes #1234"
.