-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
K8s Jobs for teams #204
Comments
I'm awaiting responses to the discussions in #248 and the review of #258 @Morriz @j-zimnowoda as of now. |
Relating to task: "Extra functionality for when the Job specification changes." The core problem is that executing a standard release will always run, no matter if the spec has changed or not, if it is defined (e.g. in @Morriz showed me an issue in the helmfile repo that explains the problem. He did, however, merge a workaround. My question is, would this be enough to solve our problem as well? Of course, we can use this command as we see fit, but for someone just using the So the solution/work-around seems to be to implement some scripting based on a key-value pair that is only exposed in If so, we've covered the following cases:
There remain the following cases:
Thinking about all these cases about version-controlled jobs that actually should always run once, isn't it easier to not define it as a release, but give the end-user a tool to run a script using kubectl. That would reduce a lot of hassle imo. I would think a job by itself isn't very useful as a release, only as part of a release to glue something together. I think the end-user doesn't have a lot of fine controls for specifying the conditions of running a job, since I'm assuming he doesn't know about otomi-core, just that he wants to execute something at that moment. As one commenter defined it in the mentioned issue: "I see this as a job for helm hooks as either a pre-upgrade or a post-upgrade hook. The chart that needs the job to run should be the one running the job." I'm inclined to agree with him. I am thinking about whether adding this option would make the end-user's life easier or harder. I'm inclined to say it would introduce some potential for error. If someone has cli access to a Kubernetes cluster, then one of the first things that pops up in most tutorials is how to echo hello world once, so I don't think the Job specification introduces any complexity that we should take away from the end-user. Thoughts? @redkubes/devops |
That is not a workaround unfortunately, just a manual sync invocation to deploy a job.
Indeed. Like I mentioned before in a previous review: we use
This is actually in line with the idempotency expectation.
Not relevant any more in light of what I just elaborated on. user can be sure it ran once when
Our requirements are targeting the end user needs already. The 3 chosen options for
I think we eliminated room for error with our requirements. If you see more please elaborate.
I am not sure what you are trying to say here.
I hope you can proceed now ;) |
Link to discussion: https://github.com/redkubes/otomi-core/discussions/295
Tasks
Core
Meta-schema proof of concept
values-schema.yaml
for Kubernetes Jobs.jobs.demo.yaml
.Previous configuration refactoring
spec.enabled
flag by default.Team jobs basic functionality
jobs.demo.yaml
.Extra functionality for Jobs (e.g. when the Jobs spec changes -- should be exposed to the end-user)
- [ ] Explore Helm hooks.values-schema.yaml
for review.always
andonChange
so the default behaviour that a job is always created can be overridden.Missing functionality, see #295
Definition Of Done
adr/*.md
and appended to list inadr/_index.md
The text was updated successfully, but these errors were encountered: