@@ -45,6 +45,7 @@ OCF_RESKEY_nic_default="br-ex"
4545OCF_RESKEY_authfile_default=" /var/lib/kubelet/config.json"
4646OCF_RESKEY_allow_pull_default=" 1"
4747OCF_RESKEY_reuse_default=" 0"
48+ OCF_RESKEY_oom_default=" -997"
4849
4950: ${OCF_RESKEY_image=${OCF_RESKEY_image_default} }
5051: ${OCF_RESKEY_pod_manifest=${OCF_RESKEY_pod_manifest_default} }
@@ -53,6 +54,7 @@ OCF_RESKEY_reuse_default="0"
5354: ${OCF_RESKEY_authfile=${OCF_RESKEY_authfile_default} }
5455: ${OCF_RESKEY_allow_pull=${OCF_RESKEY_allow_pull_default} }
5556: ${OCF_RESKEY_reuse=${OCF_RESKEY_reuse_default} }
57+ : ${OCF_RESKEY_oom=${OCF_RESKEY_oom_default} }
5658
5759# ######################################################################
5860
@@ -230,6 +232,16 @@ to stop the container before pacemaker.
230232<shortdesc lang="en">drop-in dependency</shortdesc>
231233<content type="boolean"/>
232234</parameter>
235+
236+ <parameter name="oom" required="0" unique="0">
237+ <longdesc lang="en">
238+ Tune the host's Out-Of-Memory (OOM) preferences for containers (accepts values from -1000 to 1000).
239+ Default to same OOM score as system-node-critical
240+ https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#node-out-of-memory-behavior
241+ </longdesc>
242+ <shortdesc lang="en">OOM for container</shortdesc>
243+ <content type="integer" default="${OCF_RESKEY_oom_default} "/>
244+ </parameter>
233245</parameters>
234246
235247<actions>
@@ -1226,7 +1238,10 @@ podman_start()
12261238 fi
12271239
12281240 podman_create_mounts
1229- local run_opts=" -d --name=${CONTAINER} "
1241+ local run_opts=" --detach --name=${CONTAINER} "
1242+
1243+ run_opts=" $run_opts --oom-score-adj=${OCF_RESKEY_oom} "
1244+
12301245 # check to see if the container has already started
12311246 podman_simple_status
12321247 if [ $? -eq $OCF_SUCCESS ]; then
@@ -1513,6 +1528,11 @@ podman_validate()
15131528 exit $OCF_ERR_CONFIGURED
15141529 fi
15151530
1531+ if [ " $OCF_RESKEY_oom " -lt -1000 ] || [ " $OCF_RESKEY_oom " -gt 1000 ]; then
1532+ ocf_exit_reason " 'oom' value ${OCF_RESKEY_oom} is out of range [-1000:1000]"
1533+ exit $OCF_ERR_CONFIGURED
1534+ fi
1535+
15161536 return $OCF_SUCCESS
15171537}
15181538
0 commit comments