-
Notifications
You must be signed in to change notification settings - Fork 46
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
support for additional libraries #2
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a nice solution to this problem, thank you. Just a few comments.
What do you think about gating all the parts to this strategy—the initContainer, volumeMount, and volume—with a check to see if .Values.flink.additional_libs
is non-empty?
It would make the chart slightly more complicated, but I'm not sure how I feel about making the default behavior to populate an emptyDir with the same set of libs that are already there. What do you think?
@@ -10,6 +10,16 @@ spec: | |||
app: {{ template "fullname" . }} | |||
component: jobmanager | |||
spec: | |||
initContainers: | |||
- name: flink-copy-libs | |||
image: {{ .Values.image }}:{{ .Values.imageTag }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The init container should probably also respect imagePullPolicy
. (also in deployment-taskmanager.yaml
)
command: | ||
- sh | ||
- -c | ||
- cp /opt/flink/lib/* {{ range .Values.flink.additional_libs}}/opt/flink/opt/{{ . }} {{ end }} /flink-lib; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor style: space after additional_libs
(also in deployment-taskmanager.yaml
)
this adds a config flag (
flink.additional_libs
) that allows users to reference and include addtional libraries from the flink distribution. this is useful e.g. if you want to enable metrics but don't want to create a custom image for that. Basically what happens is that an init container (that runs the same image as jobmanager and taskmanager) mounts anemptyDir
, copies the relevant libs from$FLINK_BASEDIR/lib
and$FLINK_BASEDIR/opt
(<-- those are the ones that you can reference via--set flink.additional_libs
) to thatemptyDir
and mounts that directory in the jobmanager and taskmanager containers to/opt/flink/lib
.