Giter VIP home page Giter VIP logo

Comments (9)

jangel97 avatar jangel97 commented on June 12, 2024 1

hey @sftim,

In my opionion, integrating a maximum successful execution limit for CronJobs directly into Kubernetes offers significant advantages over external controllers, enhancing the user experience seamlessly. This native feature simplifies management by removing the need for bespoke controllers or additional logic, thereby reducing complexity and error potential.

A native implementation also mitigates the resource overhead linked with external controllers, such as operational and maintenance costs, and potential performance degradation from managing multiple controllers. By incorporating this feature directly into Kubernetes, we foster community contributions and continuous improvement, ensuring robustness under diverse operational conditions.

The feature is designed as an optional parameter that activates only when configured by the user (with a default value of 0, for example), ensuring it does not impact existing CronJobs. This approach offers flexibility, allowing users to adapt the feature as needed without disrupting existing setups and preserving Kubernetes' commitment to modularity and user-driven configuration.

This optional parameter would benefit use cases like mine, where automation dynamically creates cronjobs to monitor specific conditions over short periods. Kubernetes, with its distributed architecture and reliable scheduling, is ideally suited for this. The proposed feature would automatically suspend these cronjobs after their intended number of executions, streamlining management and enhancing efficiency.

Consider the built-in Jobs history limits in Kubernetes, which already streamline job management and could have been handled by an external controller. However, having this functionality built into Kubernetes provides a more convenient, reliable, and cohesive experience. This proposed feature follows a similar rationale, embedding essential functionality directly within Kubernetes to enhance user convenience.

from kubernetes.

sftim avatar sftim commented on June 12, 2024 1

@jangel97 you should take this to a SIG Apps Zoom meeting (or Slack conversation) and test the water to see if other people are sold on adding more code to maintain.

If they're not, it'll likely find a better home out of tree. If there is interest, the next step is to find a project manager (KEP owner) willing to supervise delivery for the enhancement.

from kubernetes.

jangel97 avatar jangel97 commented on June 12, 2024 1

Hey @sftim ! Thank you for letting me know about this!

from kubernetes.

k8s-ci-robot avatar k8s-ci-robot commented on June 12, 2024

This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

from kubernetes.

sftim avatar sftim commented on June 12, 2024

My key question: why should we build this into Kubernetes (and not, for example, let someone write an external controller that achieves the same outcome)?

from kubernetes.

sftim avatar sftim commented on June 12, 2024

If the only benefit of it not being an external controller is not needing an external controller, I think you'll want a stronger case @jangel97.

You could build an out-of-tree prototype to show how it might work. Would you be willing to do that?

from kubernetes.

jangel97 avatar jangel97 commented on June 12, 2024

@sftim,

The proposal not only removes the requirement for an external controller but also enhances functionality to support a variety of potential use cases. For example, including this feature in Kubernetes cronjobs would perfectly address my requirements, and likely those of others. Take the implementation of Job history limits as another instance; it was introduced to meet a common need, providing multiple users with a native solution to manage job subresources as per need.

When you mention an out-of-tree prototype, are you suggesting a demonstration of how the proposed implementation would work? If so, I'm on board with that. Additionally, I'm keen to collaborate on the implementation tasks, provided that there's agreement on the viability of this proposal.

from kubernetes.

jwhittem avatar jwhittem commented on June 12, 2024

I agree with @sftim this seems like an opportunity to write something outside of the k8s code base, I could see this wanting more and more features that would be more quickly approved in another project anyhow. Creating a new type of 'job' object with this project, so that if there was enough adoption, perhaps this could merge into the k8s codebase some day. IMO, this use case is not so common.

from kubernetes.

jangel97 avatar jangel97 commented on June 12, 2024

@jwhittem, I agree that if this RFE doesn't receive sufficient support from the community, due to it being a niche use case, it would be more appropriate to integrate this setting into another project that more specifically focuses on job time scheduling (or just doing my custom thing for myself).

As for future RFEs concerning this setting, I find it hard to foresee any, as the setting appears to be quite distinct and standalone.

from kubernetes.

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.