Code change:
exit 1 fi <del> APIROOT="${KUBE_ROOT}/pkg/api" TMP_APIROOT="${KUBE_ROOT}/_tmp/api" </del> <ins> DIFFROOT="${KUBE_ROOT}/pkg" TMP_DIFFROOT="${KUBE_ROOT}/_tmp/pkg" </ins> _tmp="${KUBE_ROOT}/_tmp" mkdir -p "${_tmp}" <del> cp -a "${APIROOT}" "${TMP_APIROOT}" </del> <ins> cp -a "${DIFFROOT}" "${TMP_DIFFROOT}" </ins> "${KUBE_ROOT}/hack/update-generated-swagger-docs.sh" <del> echo "diffing ${APIROOT} against freshly generated swagger type documentation" </del> <ins> echo "diffing ${DIFFROOT} against freshly generated swagger type documentation" </ins> ret=0 <del> diff -Naupr -I 'Auto generated by' "${APIROOT}" "${TMP_APIROOT}" || ret=$? cp -a "${TMP_APIROOT}" "${KUBE_ROOT}/pkg" </del> <ins> diff -Naupr -I 'Auto generated by' "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? cp -a "${TMP_DIFFROOT}/" "${KUBE_ROOT}/" </ins> rm -rf "${_tmp}" if [[ $ret -eq 0 ]] then <del> echo "${APIROOT} up to date." </del> <ins> echo "${DIFFROOT} up to date." </ins> else <del> echo "${APIROOT} is out of date. Please run hack/update-generated-swagger-docs.sh" </del> <ins> echo "${DIFFROOT} is out of date. Please run hack/update-generated-swagger-docs.sh" </ins> exit 1 fi

Related discussion:
text: Long term, I think it would be great to have better documentation re which sysctl parameters are namespaced (and thus supported) and which ones are not, and also a more descriptive error message if you try and utilize a non-supported parameter.
This historic issue also seems relevant: Perhaps we were premature to close it.
Matt, thanks for confirming the problem! I found the following comments very helpful: Looking at , there doesn't seem to be any difference between Linux 4.15 and 5.1. I'm happy to remove the references to in the docs, but before doing so, should we confirm sysctl worked at some point in the past? As you said, we should enhance the error message and the docs with the supported sysctls. I understand documenting the namespaced sysctls can be a moving target, but not everyone likes to check the Linux source code to see what's namespaced or not. :)
It's probably better to change the docs to set a namespaced sysctl like or . A good way to figure out what network sysctls are namespaced is to pass to kubelet and see all the sysctls listed under inside the pod.
/triage unresolved Comment when the issue is assessed and confirmed. I am a bot run by vllry. ‍
Agree with all your statements here :) I'm also surprised that ever worked, but perhaps we could sync with the original author of the docs? +1 to in the meantime changing the docs to a namespaced sysctl.
I don't think ever worked as it's hardly to believe a sysctl got unnamespacified in the kernel (it's always the other way around). is a good example of namespaced networking sysctl. However, the above suggested is not in some cases - it's unnamespaced in kernel 4.14 and became namespaced in 4.15. In general, this is hard to document because there are hundreds of parameters and some of them is kernel version dependent and you always need to lookup the kernel code for answers. I think what we should do now is to with in the example in the doc. in the doc to something like . I think this should be very close ( is an exception) - I couldn't verify all of them as there are so many sysctls and they can also be by loading kernel modules.
SGTM, can you drive that?