diff --git a/cmd/kubeadm/app/phases/upgrade/BUILD b/cmd/kubeadm/app/phases/upgrade/BUILD index a34d3e214dd..379c8361e6a 100644 --- a/cmd/kubeadm/app/phases/upgrade/BUILD +++ b/cmd/kubeadm/app/phases/upgrade/BUILD @@ -45,6 +45,7 @@ go_library( "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/pkg/version:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/k8s.io/utils/pointer:go_default_library", ], ) diff --git a/cmd/kubeadm/app/phases/upgrade/prepull.go b/cmd/kubeadm/app/phases/upgrade/prepull.go index 668e2735005..03c4d0f500e 100644 --- a/cmd/kubeadm/app/phases/upgrade/prepull.go +++ b/cmd/kubeadm/app/phases/upgrade/prepull.go @@ -22,13 +22,14 @@ import ( "github.com/pkg/errors" apps "k8s.io/api/apps/v1" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/images" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" + utilpointer "k8s.io/utils/pointer" ) const ( @@ -183,6 +184,11 @@ func buildPrePullDaemonSet(component, image string) *apps.DaemonSet { }, Tolerations: []v1.Toleration{constants.ControlPlaneToleration}, TerminationGracePeriodSeconds: &gracePeriodSecs, + // Explicitly add a PodSecurityContext to allow these Pods to run as non-root. + // This prevents restrictive PSPs from blocking the Pod creation. + SecurityContext: &v1.PodSecurityContext{ + RunAsUser: utilpointer.Int64Ptr(999), + }, }, }, },