diff --git a/keps/sig-node/127-user-namespaces/README.md b/keps/sig-node/127-user-namespaces/README.md index 412a6521cfa..7abf3f14e4f 100644 --- a/keps/sig-node/127-user-namespaces/README.md +++ b/keps/sig-node/127-user-namespaces/README.md @@ -288,6 +288,43 @@ message Mount { } ``` +The CRI runtime reports what runtime handlers have support for user +namespaces through the `StatusResponse` message, that gains a new +field `runtime_handlers`: + +``` +message StatusResponse { + // Status of the Runtime. + RuntimeStatus status = 1; + // Info is extra information of the Runtime. The key could be arbitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. plugins used by the container runtime. + // It should only be returned non-empty when Verbose is true. + map info = 2; + + // Runtime handlers. + repeated RuntimeHandler runtime_handlers = 3; +} +``` + +Where RuntimeHandler is defined as below: + +``` +message RuntimeHandlerFeatures { + // supports_user_namespaces is set to true if the runtime handler supports + // user namespaces. + bool supports_user_namespaces = 1; +} + +message RuntimeHandler { + // Name must be unique in StatusResponse. + // An empty string denotes the default handler. + string name = 1; + // Supported features. + RuntimeHandlerFeatures features = 2; +} +``` + ### Support for pods Make pods work with user namespaces. This is activated via the @@ -593,6 +630,7 @@ use container runtime versions that have the needed changes. - Gather and address feedback from the community - Be able to configure UID/GID ranges to use for pods +- This feature is not supported on Windows. - Get review from VM container runtimes maintainers (not blocker, as VM runtimes should just ignore the field, but nice to have) @@ -603,6 +641,20 @@ use container runtime versions that have the needed changes. ### Upgrade / Downgrade Strategy +Existing pods will still work as intended, as the new field is missing there. + +Upgrade will not change any current behaviors. + +When the new functionality wasn't yet used, downgrade will not be affected. + +On downgrade, when the functionality was used, the pods created with +user namespaces that are running will continue to run with user +namespaces. Pods will need to be re-created to stop using the user +namespace. + +Versions of Kubernetes that doesn't have this feature implemented will +ignore the new field `pod.spec.hostUsers`. + ### Version Skew Strategy