Config to prevent podSpec alteration from plugin #357
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Add a
prohibit-kubernetes-plugin
option, usable as either a flag or config option, which causes jobs to fail if they containplugins: - kubernetes: ...
.Why
This is an easy way to lock down a k8s cluster and prevent users from doing such things as:
etc etc
How
The main change is to introduce the
prohibit-kubernetes-plugin
flag and config value, and then use it throughout the scheduler.Because this balances things out of favour of a
k8sPlugin
-centric interpretation of celestial mechanics, some useful refactors were in order:Build
now takes a pointer to the podSpec it is supposed to be building, so that we can change which one we're building fromCreate
.BuildFailureJob
doesn't have to setk8sPlugin.PodSpec
in order to build a special podspec.kjob
first, instead of set ink8sPlugin
and then moved tokjob
.jobWrapper
is nowbuildInputs
. It has no methods (they're moved toworker
) and is intended to contain only the relevant parts ofCommandJob
needed byBuild
orBuildFailureJob
. The goal is to make the data flow (what data is need by which operation) clearer.