GithubHelp home page GithubHelp logo

argoproj-labs / rollouts-plugin-trafficrouter-gatewayapi Goto Github PK

View Code? Open in Web Editor NEW
83.0 6.0 14.0 824 KB

The Argo Rollouts plugin implementing the Kubernetes Gateway API specification for using different traffic providers in progressive delivery scenarios

Home Page: https://rollouts-plugin-trafficrouter-gatewayapi.readthedocs.io/en/latest/

License: Apache License 2.0

Go 97.63% Makefile 2.37%
argo gateway-api kubernetes progressive-delivery argo-rollouts argoproj canary gitops argoproj-labs

rollouts-plugin-trafficrouter-gatewayapi's Introduction

rollouts-plugin-trafficrouter-gatewayapi's People

Contributors

iandelahorne avatar komalsukhani avatar kostis-codefresh avatar lgadban avatar philipp-plotnikov avatar philippplotnikov avatar smarunich avatar svrakitin avatar tommy351 avatar xtineskim avatar yohanb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rollouts-plugin-trafficrouter-gatewayapi's Issues

Failed to run Gateway API plugin

I have installed the latest version of the argo-rollout controller and v0.0.1 gateway API plugin.
I have installed plugin using ConfigMap as follows

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: rollouts-controller
    app.kubernetes.io/name: argo-rollouts
    app.kubernetes.io/part-of: argo-rollouts
  name: argo-rollouts-config
data:
  trafficRouterPlugins: |-
    - name: "argoproj-labs/gatewayAPI"
      location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.0.1/gateway-api-plugin-darwin-arm64"

Plugin is getting downloaded successfully but when I create a rollout I get the below 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\n" error="<nil>"

Support multiple HTTPRoute resources per rollout

It's possible that the same rollout might need to change backend weights in multiple HTTPRoute/TCPRoute resources.
I'm running into a situation, where I have multiple HTTPRoute resources per service and can only change one.

This is similar to argoproj/argo-rollouts#1100, which is about Istio VirtualService resources.

Example:

plugins:
  argoproj-labs/gatewayAPI:
    routes: 
      - kind: HTTPRoute
        name: first
      - kind: HTTPRoute
        name: second

or

plugins:
  argoproj-labs/gatewayAPI:
    httpRoutes: 
      - first
      - second

If you think it makes sense I'm up for contributing.

Issue Integrating Kong with Argo Rollout

Hi Team

Faced one issue when integrating KIC with Argo Rollouts. This seems to be an issue with KIC, I did raise a ticket there too but wanted to check if this issue was come across when trying the demo with Kong

2024-03-06T17:09:44Z error Failed parsing resource errors {"url": "https://localhost:8444", "update_strategy": "InMemory", "error": "could not unmarshal config error: json: cannot unmarshal object into Go struct field ConfigError.flattened_errors of type []sendconfig.FlatEntityError"}

Got this error when httproute and rollout was configured.

KIC Issue for reference -> Kong/kubernetes-ingress-controller#5676

Failed to run gateway-api plugin - rollouts/plugin-bin: read-only file system - with Argo Rollouts Helm chart

Argo-rollouts installed using helm chart:
https://artifacthub.io/packages/helm/argo/argo-rollouts

After mounting new configMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: argo-rollouts-config # must be so name
  namespace: argo-rollouts # must be in this namespace
data:
  trafficRouterPlugins: |-
    - name: "argoproj-labs/gatewayAPI"
      location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.2.0/gateway-api-plugin-linux-amd64"

And restarting deployment:
kubectl rollout restart deployment -n argo-rollouts argo-rollouts

New pods dont work:

time="2024-07-01T14:46:38Z" level=info msg="Argo Rollouts starting" version=v1.7.0+6937996
time="2024-07-01T14:46:38Z" level=info msg="Creating event broadcaster"
2024-07-01T14:46:38.975517525Z time="2024-07-01T14:46:38Z" level=info msg="Setting up event handlers"
2024-07-01T14:46:38.975524925Z time="2024-07-01T14:46:38Z" level=info msg="Setting up experiments event handlers"
2024-07-01T14:46:38.975589514Z time="2024-07-01T14:46:38Z" level=info msg="Setting up analysis event handlers"
2024-07-01T14:46:38.979223324Z time="2024-07-01T14:46:38Z" level=fatal msg="Failed to download plugins: failed to create plugin folder for plugin (argoproj-labs/gatewayAPI): (mkdir /home/argo-rollouts/plugin-bin: read-only file system)"

Any hint whats next?

Config map ref broken while upgrading to 0.1.0 version from 0.0.1

Error from the argo-controller pods after upgrading to v0.1.0

time="2024-02-13T06:47:11Z" level=info msg="Found 1 TrafficRouting Reconcilers" namespace=test-argo-gamma rollout=gap-app-argo
time="2024-02-13T06:47:11Z" level=info msg="Reconciling TrafficRouting with type 'GatewayAPI'" namespace=test-argo-gamma rollout=gap-app-argo
time="2024-02-13T06:47:11Z" level=error msg="roCtx.reconcile err failed to remove managed routes via plugin: configmaps \"argo-gatewayapi-configmap\" not found" generation=2 namespace=test-argo-gamma resourceVersion=348232258 rollout=gap-app-argo
time="2024-02-13T06:47:11Z" level=info msg="Reconciliation completed" generation=2 namespace=test-argo-gamma resourceVersion=348232258 rollout=gap-app-argo time_ms=23.592025
time="2024-02-13T06:47:11Z" level=error msg="rollout syncHandler error: failed to remove managed routes via plugin: configmaps \"argo-gatewayapi-configmap\" not found" namespace=test-argo-gamma rollout=gap-app-argo
time="2024-02-13T06:47:11Z" level=info msg="rollout syncHandler queue retries: 38 : key \"test-argo-gamma/gap-app-argo\"" namespace=test-argo-gamma rollout=gap-app-argo
time="2024-02-13T06:47:11Z" level=error msg="failed to remove managed routes via plugin: configmaps \"argo-gatewayapi-configmap\" not found\n" error="<nil>"
apiVersion: v1
kind: ConfigMap
metadata:
  name: argo-rollouts-config 
  namespace: argo-rollouts 
data:
  trafficRouterPlugins: |-
    - name: "argoproj-labs/gatewayAPI"
      location: "https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.1.0/gateway-api-plugin-linux-amd64"

Reverting back to v0.0.1 works fine.

Is there a ReadME with instructions for the upgrade to 0.1.0? How can I help?

SetHeader option support

Hi,
I was wondering if there is a plan or a roadmap for when the plugin will support the SetHeader option.
Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.