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

Assignees

No one assigned

    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