(Not sure if this is a bug or enhancement) is bug.
Summary
When AR manages a canary service, it manages the selectors to ensure the canary service points at the canary pods.
Once a rollout is fully promoted, the service continues to point at the stable pods. So if you have something pointing at the service, it continues to operate.
If you abort a rollout, the canary service selector label is not rolled back as well, leading to a 'dead'; service. I would like to change this behaviour that when you rollback, the selector should be restored as well.
Use Cases
Whats interesting about how this works is that is allows you to rig up a fully canary path for your services assuming a certain naming convention.
eg: canary.ingress.example.com > canary-service.ns.svc.local > another-service.ns.svc.local
You can then have a trigger that whenever a request comes in to host canary.ingress.example.com that you hit up all the canary-* service endpoints internally. If other services are running a canary at the moment, great! if not, also great, since everything will respond on that code path.
Wanted to check if this is desired before doing the work.
Let me know if this needs more details.
[edit] Since this seems to be a bug (#2540) a few more details
- Reproduced using 1.4 and 1.5
- Abort was done via dashboard
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
(Not sure if this is a bug or enhancement)is bug.Summary
When AR manages a canary service, it manages the selectors to ensure the canary service points at the canary pods.
Once a rollout is fully promoted, the service continues to point at the stable pods. So if you have something pointing at the service, it continues to operate.
If you abort a rollout, the canary service selector label is not rolled back as well, leading to a 'dead'; service. I would like to change this behaviour that when you rollback, the selector should be restored as well.
Use Cases
Whats interesting about how this works is that is allows you to rig up a fully canary path for your services assuming a certain naming convention.
eg: canary.ingress.example.com > canary-service.ns.svc.local > another-service.ns.svc.local
You can then have a trigger that whenever a request comes in to host
canary.ingress.example.comthat you hit up all thecanary-*service endpoints internally. If other services are running a canary at the moment, great! if not, also great, since everything will respond on that code path.Wanted to check if this is desired before doing the work.
Let me know if this needs more details.
[edit] Since this seems to be a bug (#2540) a few more details
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.