Skip to content

Would like to use the HttpRoute defined in the same namespace as the Rollout #123

@taer

Description

@taer

I have an Argo Rollout that is using this plugin. The Rollout has no idea what it's namespace is, since it's managed by Argo.

I'm also using Kustomize for my deployments.

The issue lies in this config

      trafficRouting:
        plugins:
          argoproj-labs/gatewayAPI:
            grpcRoute: rates
            namespace: rate-history-service

I get this error when namespace isn't present


{"generation":300,"level":"error","msg":"roCtx.reconcile err failed to remove managed routes via plugin: an empty namespace may not be set when a resource name is provided","namespace":"rate-history-s
ervice","resourceVersion":"321359673","rollout":"rate-history-service","time":"2025-06-13T19:00:22Z"}                                                                                                   

{"level":"error","msg":"rollout syncHandler error: failed to remove managed routes via plugin: an empty namespace may not be set when a resource name is provided","namespace":"rate-history-service","r
ollout":"rate-history-service","time":"2025-06-13T19:00:22Z"}                                                                                                                                           

{"error":null,"level":"error","msg":"failed to remove managed routes via plugin: an empty namespace may not be set when a resource name is provided","time":"2025-06-13T19:00:22Z"}                     
2025-06-13T19:00:28.566Z [DEBUG] plugin.gatewayAPI: time="2025-06-13T19:00:28Z" level=info msg="[RemoveManagedRoutes] plugin \"argoproj-labs/gatewayAPI\" controls HTTPRoutes: [rates]" plugin=trafficro
uter                                           

Is there a shortcut or other option to use the namespace from the Rollout if not present? The namespaces are static, but kind of dynamically generated. It's possible to know what it is, but that's extra config.

Example of an GRPCRoute

apiVersion: gateway.networking.k8s.io/v1
kind: GRPCRoute
metadata:
  name: rates
spec:
  parentRefs:
    - group: ""
      kind: Service
      name: rates
      port: 50051

The service here is the one called rates in the same namespace. Is there a reason this plugin doesn't use currentNamespace if not present?

Thanks!

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions