Skip to content

There should be an error message when URL is invalid and the plugin isn't downloaded #3708

@Alegrowin

Description

@Alegrowin

When deploying the gatewayAPI plugin using the helm chart like this

  trafficRouterPlugins: 
    trafficRouterPlugins: |-
      - name: "argoproj-labs/gatewayAPI"
        location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/0.3.0/gateway-api-plugin-linux-amd64"
# This is the right url, there was a missing v in the version v.0.3.0
# location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.3.0/gateway-api-plugin-linux-amd64"

The logs show that the plugin downloaded successfully, it also shows a successful reconciliation and shows some misleading errors about stdout and being unable to get the plugin client:

level=info msg="Argo Rollouts starting" version=v1.7.1+6a99ea9
# ...
level=info msg="Downloading plugin argoproj-labs/gatewayAPI from: https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/0.3.0/gateway-api-plugin-linux-amd64"
level=info msg="Download complete, it took 216.038207ms"
# ...
2024-07-05T20:23:30.787Z [DEBUG] plugin: starting plugin: path=/home/argo-rollouts/plugin-bin/argoproj-labs/gatewayAPI args=[/home/argo-rollouts/plugin-bin/argoproj-labs/gatewayAPI]
level=error msg="roCtx.reconcile err failed to get traffic router plugin argoproj-labs/gatewayAPI: unable to start plugin system: unable to get plugin client (argoproj-labs/gatewayAPI): fork/exec /home/argo-rollouts/plugin-bin/argoproj-labs/gatewayAPI: exec format error" generation=6 namespace=test resourceVersion=4560026783 rollout=test
level=info msg="Reconciliation completed" generation=6 namespace=test resourceVersion=4560026783 rollout=test time_ms=4.15409
# ...
level=error msg="rollout syncHandler error: failed to get traffic router plugin argoproj-labs/gatewayAPI: unable to start plugin system: unable to get plugin client (argoproj-labs/gatewayAPI): fork/exec /home/argo-rollouts/plugin-bin/argoproj-labs/gatewayAPI: exec format error" namespace=test rollout=test
level=info msg="rollout syncHandler queue retries: 4 : key \"test/test\"" namespace=test rollout=test
level=error msg="failed to get traffic router plugin argoproj-labs/gatewayAPI: unable to start plugin system: unable to get plugin client (argoproj-labs/gatewayAPI): fork/exec /home/argo-rollouts/plugin-bin/argoproj-labs/gatewayAPI: exec format error" error="<nil>"
# ...
level=error msg="rollout syncHandler error: failed to get traffic router plugin argoproj-labs/gatewayAPI: unable to start plugin system: unable to get plugin client (argoproj-labs/gatewayAPI) for ping: exec: Stdout already set" namespace=test rollout=test
level=info msg="rollout syncHandler queue retries: 7 : key \"test/test\"" namespace=test rollout=test
level=error msg="failed to get traffic router plugin argoproj-labs/gatewayAPI: unable to start plugin system: unable to get plugin client (argoproj-labs/gatewayAPI) for ping: exec: Stdout already set" error="<nil>"
# ...

Expected Behavior:
The pod should fail when it's not able to download the plugins
There should be an optional feature flag allowing the pod to run even if the plugin binary isn't available.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions