Comments (11)
EliminationTimeout
does not sound quite right to me. I would rather we keep DeleteEvent/DeleteTimeout and get rid of PruneEvent/PruneTimeout.
BTW, I don't think this is very high priority.
from cli-utils.
An alternate option here is to remove DeleteTimeout/PruneTimeout completely and replace them with the existing ReconcileTimeout.
@haiyanmeng @ash2k Would this be acceptable for your use cases or do you need the timeouts to remain separate?
from cli-utils.
@karlkfi Appreciate the ping.
Conceptually it may make sense for each logically separate "thing"/step to have a separate timeout. I don't know if it's hard or easy to achieve this, haven't checked the code. In practice though my program passes a context to the applier run and cancels it when it needs to stop the applier (when program is terminating or when another set of objects need to be synced instead of the one that is currently being applied).
An alternate option here is to remove DeleteTimeout/PruneTimeout completely and replace them with the existing ReconcileTimeout.
Are you suggesting ReconcileTimeout
to cover the whole process or each phase/step would use a separate timeout set to ReconcileTimeout
? I think ideally we would have both, but again I don't know if it's difficult/worth the effort.
from cli-utils.
We already allow a global applier timeout using context.WithTimeout (which it sounds like you're using already).
The proposal is either:
A) Rename DeleteTimeout & PruneTimeout to EliminationTimeout. This would keep EliminationTimeout distinct from ReconcileTimeout.
B) Replace DeleteTimeout & PruneTimeout with ReconcileTimeout. This would combine the WaitTask timeouts to all be the same name.
DeleteTimeout & PruneTimeout both come from the WaitTask, one from the destroyer and one from the applier, so the differentiation is already confusing.
Even if we do either of these, there's still a difference between the DeleteEvent (destroyer) and PruneEvent (applier), even though they both come from the PruneTask. I would like to make them both a DeleteEvent for consistency, but I wasn't sure I wanted to make both API changes at the same time.
from cli-utils.
Agreed on it being low priority. It was just surfaced as tech debt from one of my previous PRs.
The problem with the current naming is:
- Inconsistency (Delete vs Prune, when both perform the same DELETE call to the cluster)
- Inaccuracy (The timeout isn't for the DELETE call to the cluster but actually waiting until the poller performing GET calls verifies that the object is NotFound).
If I were setting a DeleteTimeout, I would expect it to include the DELETE call, but it does not. It only includes the waiting afterwards. This has come up as being confusing several times when trying to explain how the applier actually works.
Perhaps you would prefer WaitTimeout for both applying and deleting?
from cli-utils.
Ok, so new proposal: How about we just use "Reconcile[d]" for both ideas. This is what I've done for the new WaitEvent operations in #463
So this would mean combining the reconcile/prune/delete timeout configs into one ReconcileTimeout
, and treating Apply -> Current and Delete -> NotFound as effectively the same process.
from cli-utils.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
from cli-utils.
/remove-lifecycle stale
from cli-utils.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
from cli-utils.
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
from cli-utils.
/remove-lifecycle rotten
/lifecycle frozen
from cli-utils.
Related Issues (20)
- Bug: Destroyer should retain inventory if any objects failed to delete or reconcile HOT 4
- Bug: kstatus/status returns incorrect "Current" result immediately after DaemonSet apply HOT 2
- Bug: InventoryManager.SetObjectStatus doesn't actually update the object status
- Chore: refactor Filters to take TaskContext HOT 3
- Bug: Inventory updates should tolerate drift (and overwrite it) HOT 4
- Feature Request: Expose skip operation reasons HOT 3
- Bug: event printer only prints reconcile summary once (should be 1 for apply wait & 1 for prune wait) HOT 3
- Provide the possibility to override condition functions for resources HOT 10
- ObjectMetadata fieldSeparator is set to underscore, breaking Gitlab Kubernetes Agent and Crossplane. HOT 2
- kapply panic when the inventory object is missing HOT 5
- kstatus does not accept booleans for conditions HOT 7
- Table view as in `kpt live apply` is hard to read on slow terminals HOT 4
- Bug: objects flagged by CurrentUIDFilter should be removed from the inventory
- Watch for client-go deployments HOT 5
- Fix or reduce frequency or switch off perma-failing jobs HOT 6
- safely consuming kstatus collector updates HOT 6
- Feature Request: Optionally skip waiting for reconciliation HOT 9
- kstatus: defaults to fail open when no `status` field is available HOT 5
- Archive the repository? HOT 2
- Feature Request: Apply roles before bindings 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 cli-utils.