[STRMCMP-944] Add proper validation for the sysctls field in securityContext #204
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.
A user created a flink config that had a map where an array was expected in the sysctls field of securityContext:
i.e., they had:
when it should have been:
This managed to take down the operator, which was spending all of its time logging this error:
This PR adds validation of the sysctls field to the CRD to prevent such configs from being accepted by the API.
With this change, users will get the following error when they try to create the bad config above:
The deeper issue here is that in the source code we re-use the existing Kubernetes API definitions for objects like securityContext. But we're prevented by kubernetes/kubernetes#62872 from also using the existing schemas, so we are forced to duplicate them. When we miss fields like we did here, it creates the potential for users to submit invalid configuration that can take down the operator.