Comments (3)
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.
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.
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)
- Consul Service Mesh - support for service subset canary deployments (Consul API V1) HOT 2
- Rollout stuck issue HOT 20
- [argoproj / rollouts-demo] Internal host request route not base on weight but pod count HOT 3
- Honeycomb metric provider HOT 7
- Release cycle for the docs needs to be updated HOT 1
- Rollout superseding an in progress rollout gets stuck HOT 5
- BlueGreen rollout under slow/staggered traffic convergence results in completing a rollout before traffic is truly converged
- Option to specify a different KUBECONFIG where Analysis vs. Jobs would run HOT 4
- [Bug] Second subscriber not triggered and retries not initiated when the first subscriber fails
- Getting "error updating replicaset in syncEphemeralMetadata" while triggering a new canary upgrade. HOT 2
- GCP cloud monitoring ( stackdriver ) and GCP managed Prometheus support for Argo Rollouts Analysis Template HOT 3
- Argo-rollouts controller crashing in AKS due to lease renew timeout. HOT 1
- Supported kuberenetes versions
- Argo Rollouts deployment triggers PodSecurity warning
- A default valueFrom not accepted on AnalysisTemplate HOT 2
- Use of native SidecarContainers (init container with `restartPolicy: Always`) results in pod status getting stuck on `Init`
- when dynamicStableScale is enabled, the 2nd canary deployment (when the first one didn't finish) shifts the traffic to the stable 100% without waiting for it to scale up HOT 2
- [argoproj / rollouts-demo] Internal host request route not base on weight but pod count HOT 2
- Support Linkerd as traffic provider HOT 1
- Argo rollouts controller/dashboard probes and rollout strategy HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from argo-rollouts.