GithubHelp home page GithubHelp logo

Comments (3)

jessesuen avatar jessesuen commented on May 19, 2024

the controller will modify the specified service to add the pod-hash as a label selector.

Instead of adding a new pod-hash as a label selector to the specified canaryService, we probably need to replace entire label selectors to only match canary pods. The reason why we cannot add to any existing selectors, is because we additionally want to support "previewing" pods of the new spec (#92). In order to support previewing, the selectors of the canaryService would need to be:

  selector:
    rollouts-pod-template-hash: 7d95bc4d88

instead of:

  selector:
    app: guestbook
    rollouts-pod-template-hash: 7d95bc4d88

The former is needed because if we have the latter, it implies the preview replicaset would have to have app: guestbook in its pod labels. Having app: guestbook in the preview replicaset's pod labels would cause the active/production service, to direct traffic to the preview replicaset, defeating the entire purpose of a preview.

from argo-rollouts.

jessesuen avatar jessesuen commented on May 19, 2024

we probably need to replace entire label selectors to only match canary pods.

Since replacing label selectors is destructive (and would additionally cause an OutOfSync condition in argo-cd), I propose it is a user error when a user specifies a canaryService which has anything in spec.selector.

from argo-rollouts.

jessesuen avatar jessesuen commented on May 19, 2024

For this to work, we will need to inject the rollouts-pod-template-hash label to the replicasets created by the canary strategy. This is something we already do for the blue-green strategy, but will need to do for canary to accomplish this feature.

Actually looks like we already do this for canary

from argo-rollouts.

Related Issues (20)

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.