Skip to content

Applying an httpProxy manifest that doesn't manage weights unsets weights on resource. #7500

@maxcabrajac

Description

@maxcabrajac

What steps did you take and what happened:

  1. Apply the following manifest (example from weight documentation):
apiVersion: projectcontour.io/v1
kind: HTTPProxy
metadata:
  name: unsetting-weights
  namespace: default
spec:
  virtualhost:
    fqdn: weights.bar.com
  routes:
    - services:
        - name: s1
          port: 80
        - name: s2
          port: 80
  1. Edit weights on s1 and s2
  2. Reapply the manifest
  3. Check the resource to see that the weights you edited in were removed

What did you expect to happen:

The weights are not managed by the manifest, so they should remain the same after step 3.

Anything else you would like to add:

We've been using this argo rollouts plugin to manage weights on our httpproxies. It changes the weights during canary rollouts gradually. Recently, the plugin failed momentarily (unrelated reasons) and we noticed that 50% of traffic was going to the canary service. After some investigation, we found out that, due to this issue, argoCD unset the weights we had setup to the services.

Environment:

  • Contour version: 1.33.2
  • Kubernetes version: (use kubectl version): 1.33.8
  • Kubernetes installer & version: N/A
  • Cloud provider or hardware configuration: N/A
  • OS (e.g. from /etc/os-release): N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.lifecycle/needs-triageIndicates that an issue needs to be triaged by a project contributor.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions