KEP-3619: Fine grained SupplementalGroups control
Signed-off-by: Shingo Omura <everpeace@gmail.com>
This commit is contained in:
2
vendor/golang.org/x/net/html/doc.go
generated
vendored
2
vendor/golang.org/x/net/html/doc.go
generated
vendored
@@ -104,7 +104,7 @@ tokenization, and tokenization and tree construction stages of the WHATWG HTML
|
||||
parsing specification respectively. While the tokenizer parses and normalizes
|
||||
individual HTML tokens, only the parser constructs the DOM tree from the
|
||||
tokenized HTML, as described in the tree construction stage of the
|
||||
specification, dynamically modifying or extending the docuemnt's DOM tree.
|
||||
specification, dynamically modifying or extending the document's DOM tree.
|
||||
|
||||
If your use case requires semantically well-formed HTML documents, as defined by
|
||||
the WHATWG specification, the parser should be used rather than the tokenizer.
|
||||
|
||||
13
vendor/golang.org/x/net/http/httpguts/httplex.go
generated
vendored
13
vendor/golang.org/x/net/http/httpguts/httplex.go
generated
vendored
@@ -12,7 +12,7 @@ import (
|
||||
"golang.org/x/net/idna"
|
||||
)
|
||||
|
||||
var isTokenTable = [127]bool{
|
||||
var isTokenTable = [256]bool{
|
||||
'!': true,
|
||||
'#': true,
|
||||
'$': true,
|
||||
@@ -93,12 +93,7 @@ var isTokenTable = [127]bool{
|
||||
}
|
||||
|
||||
func IsTokenRune(r rune) bool {
|
||||
i := int(r)
|
||||
return i < len(isTokenTable) && isTokenTable[i]
|
||||
}
|
||||
|
||||
func isNotToken(r rune) bool {
|
||||
return !IsTokenRune(r)
|
||||
return r < utf8.RuneSelf && isTokenTable[byte(r)]
|
||||
}
|
||||
|
||||
// HeaderValuesContainsToken reports whether any string in values
|
||||
@@ -202,8 +197,8 @@ func ValidHeaderFieldName(v string) bool {
|
||||
if len(v) == 0 {
|
||||
return false
|
||||
}
|
||||
for _, r := range v {
|
||||
if !IsTokenRune(r) {
|
||||
for i := 0; i < len(v); i++ {
|
||||
if !isTokenTable[v[i]] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
13
vendor/golang.org/x/net/http2/frame.go
generated
vendored
13
vendor/golang.org/x/net/http2/frame.go
generated
vendored
@@ -490,6 +490,9 @@ func terminalReadFrameError(err error) bool {
|
||||
// returned error is ErrFrameTooLarge. Other errors may be of type
|
||||
// ConnectionError, StreamError, or anything else from the underlying
|
||||
// reader.
|
||||
//
|
||||
// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID
|
||||
// indicates the stream responsible for the error.
|
||||
func (fr *Framer) ReadFrame() (Frame, error) {
|
||||
fr.errDetail = nil
|
||||
if fr.lastFrame != nil {
|
||||
@@ -1521,7 +1524,7 @@ func (fr *Framer) maxHeaderStringLen() int {
|
||||
// readMetaFrame returns 0 or more CONTINUATION frames from fr and
|
||||
// merge them into the provided hf and returns a MetaHeadersFrame
|
||||
// with the decoded hpack values.
|
||||
func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
|
||||
func (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) {
|
||||
if fr.AllowIllegalReads {
|
||||
return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders")
|
||||
}
|
||||
@@ -1592,7 +1595,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
|
||||
}
|
||||
// It would be nice to send a RST_STREAM before sending the GOAWAY,
|
||||
// but the structure of the server's frame writer makes this difficult.
|
||||
return nil, ConnectionError(ErrCodeProtocol)
|
||||
return mh, ConnectionError(ErrCodeProtocol)
|
||||
}
|
||||
|
||||
// Also close the connection after any CONTINUATION frame following an
|
||||
@@ -1604,11 +1607,11 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
|
||||
}
|
||||
// It would be nice to send a RST_STREAM before sending the GOAWAY,
|
||||
// but the structure of the server's frame writer makes this difficult.
|
||||
return nil, ConnectionError(ErrCodeProtocol)
|
||||
return mh, ConnectionError(ErrCodeProtocol)
|
||||
}
|
||||
|
||||
if _, err := hdec.Write(frag); err != nil {
|
||||
return nil, ConnectionError(ErrCodeCompression)
|
||||
return mh, ConnectionError(ErrCodeCompression)
|
||||
}
|
||||
|
||||
if hc.HeadersEnded() {
|
||||
@@ -1625,7 +1628,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
|
||||
mh.HeadersFrame.invalidate()
|
||||
|
||||
if err := hdec.Close(); err != nil {
|
||||
return nil, ConnectionError(ErrCodeCompression)
|
||||
return mh, ConnectionError(ErrCodeCompression)
|
||||
}
|
||||
if invalid != nil {
|
||||
fr.errDetail = invalid
|
||||
|
||||
11
vendor/golang.org/x/net/http2/server.go
generated
vendored
11
vendor/golang.org/x/net/http2/server.go
generated
vendored
@@ -732,11 +732,7 @@ func isClosedConnError(err error) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// TODO: remove this string search and be more like the Windows
|
||||
// case below. That might involve modifying the standard library
|
||||
// to return better error types.
|
||||
str := err.Error()
|
||||
if strings.Contains(str, "use of closed network connection") {
|
||||
if errors.Is(err, net.ErrClosed) {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -1482,6 +1478,11 @@ func (sc *serverConn) processFrameFromReader(res readFrameResult) bool {
|
||||
sc.goAway(ErrCodeFlowControl)
|
||||
return true
|
||||
case ConnectionError:
|
||||
if res.f != nil {
|
||||
if id := res.f.Header().StreamID; id > sc.maxClientStreamID {
|
||||
sc.maxClientStreamID = id
|
||||
}
|
||||
}
|
||||
sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev)
|
||||
sc.goAway(ErrCode(ev))
|
||||
return true // goAway will handle shutdown
|
||||
|
||||
15
vendor/golang.org/x/net/http2/transport.go
generated
vendored
15
vendor/golang.org/x/net/http2/transport.go
generated
vendored
@@ -936,7 +936,20 @@ func (cc *ClientConn) setGoAway(f *GoAwayFrame) {
|
||||
}
|
||||
last := f.LastStreamID
|
||||
for streamID, cs := range cc.streams {
|
||||
if streamID > last {
|
||||
if streamID <= last {
|
||||
// The server's GOAWAY indicates that it received this stream.
|
||||
// It will either finish processing it, or close the connection
|
||||
// without doing so. Either way, leave the stream alone for now.
|
||||
continue
|
||||
}
|
||||
if streamID == 1 && cc.goAway.ErrCode != ErrCodeNo {
|
||||
// Don't retry the first stream on a connection if we get a non-NO error.
|
||||
// If the server is sending an error on a new connection,
|
||||
// retrying the request on a new one probably isn't going to work.
|
||||
cs.abortStreamLocked(fmt.Errorf("http2: Transport received GOAWAY from server ErrCode:%v", cc.goAway.ErrCode))
|
||||
} else {
|
||||
// Aborting the stream with errClentConnGotGoAway indicates that
|
||||
// the request should be retried on a new connection.
|
||||
cs.abortStreamLocked(errClientConnGotGoAway)
|
||||
}
|
||||
}
|
||||
|
||||
1807
vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go
generated
vendored
1807
vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
62
vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto
generated
vendored
62
vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto
generated
vendored
@@ -321,6 +321,20 @@ message NamespaceOption {
|
||||
UserNamespace userns_options = 5;
|
||||
}
|
||||
|
||||
// SupplementalGroupsPolicy defines how supplemental groups
|
||||
// of the first container processes are calculated.
|
||||
enum SupplementalGroupsPolicy {
|
||||
// Merge means that the container's provided SupplementalGroups
|
||||
// and FsGroup (specified in SecurityContext) will be merged with
|
||||
// the primary user's groups as defined in the container image
|
||||
// (in /etc/group).
|
||||
Merge = 0;
|
||||
// Strict means that the container's provided SupplementalGroups
|
||||
// and FsGroup (specified in SecurityContext) will be used instead of
|
||||
// any groups defined in the container image.
|
||||
Strict = 1;
|
||||
}
|
||||
|
||||
// Int64Value is the wrapper of int64.
|
||||
message Int64Value {
|
||||
// The value.
|
||||
@@ -345,13 +359,14 @@ message LinuxSandboxSecurityContext {
|
||||
Int64Value run_as_group = 8;
|
||||
// If set, the root filesystem of the sandbox is read-only.
|
||||
bool readonly_rootfs = 4;
|
||||
// List of groups applied to the first process run in the sandbox, in
|
||||
// addition to the sandbox's primary GID, and group memberships defined
|
||||
// in the container image for the sandbox's primary UID of the container process.
|
||||
// If the list is empty, no additional groups are added to any container.
|
||||
// Note that group memberships defined in the container image for the sandbox's primary UID
|
||||
// of the container process are still effective, even if they are not included in this list.
|
||||
// List of groups applied to the first process run in each container.
|
||||
// supplemental_groups_policy can control how groups will be calculated.
|
||||
repeated int64 supplemental_groups = 5;
|
||||
// supplemental_groups_policy defines how supplemental groups of the first
|
||||
// container processes are calculated.
|
||||
// Valid values are "Merge" and "Strict".
|
||||
// If not specified, "Merge" is used.
|
||||
SupplementalGroupsPolicy supplemental_groups_policy = 11;
|
||||
// Indicates whether the sandbox will be asked to run a privileged
|
||||
// container. If a privileged container is to be executed within it, this
|
||||
// MUST be true.
|
||||
@@ -905,13 +920,14 @@ message LinuxContainerSecurityContext {
|
||||
string run_as_username = 6;
|
||||
// If set, the root filesystem of the container is read-only.
|
||||
bool readonly_rootfs = 7;
|
||||
// List of groups applied to the first process run in the container, in
|
||||
// addition to the container's primary GID, and group memberships defined
|
||||
// in the container image for the container's primary UID of the container process.
|
||||
// If the list is empty, no additional groups are added to any container.
|
||||
// Note that group memberships defined in the container image for the container's primary UID
|
||||
// of the container process are still effective, even if they are not included in this list.
|
||||
// List of groups applied to the first process run in each container.
|
||||
// supplemental_groups_policy can control how groups will be calculated.
|
||||
repeated int64 supplemental_groups = 8;
|
||||
// supplemental_groups_policy defines how supplemental groups of the first
|
||||
// container processes are calculated.
|
||||
// Valid values are "Merge" and "Strict".
|
||||
// If not specified, "Merge" is used.
|
||||
SupplementalGroupsPolicy supplemental_groups_policy = 17;
|
||||
// no_new_privs defines if the flag for no_new_privs should be set on the
|
||||
// container.
|
||||
bool no_new_privs = 11;
|
||||
@@ -950,6 +966,15 @@ message LinuxContainerConfig {
|
||||
LinuxContainerSecurityContext security_context = 2;
|
||||
}
|
||||
|
||||
message LinuxContainerUser {
|
||||
// uid is the primary uid initially attached to the first process in the container
|
||||
int64 uid = 1;
|
||||
// gid is the primary gid initially attached to the first process in the container
|
||||
int64 gid = 2;
|
||||
// supplemental_groups are the supplemental groups initially attached to the first process in the container
|
||||
repeated int64 supplemental_groups = 3;
|
||||
}
|
||||
|
||||
// WindowsNamespaceOption provides options for Windows namespaces.
|
||||
message WindowsNamespaceOption {
|
||||
// Network namespace for this container/sandbox.
|
||||
@@ -1286,6 +1311,8 @@ message ContainerStatus {
|
||||
// misusage, we now introduce the image_id field, which should always refer
|
||||
// to a unique image identifier on the node.
|
||||
string image_id = 17;
|
||||
// User identities initially attached to the container
|
||||
ContainerUser user = 18;
|
||||
}
|
||||
|
||||
message ContainerStatusResponse {
|
||||
@@ -1306,6 +1333,17 @@ message ContainerResources {
|
||||
WindowsContainerResources windows = 2;
|
||||
}
|
||||
|
||||
message ContainerUser {
|
||||
// User identities initially attached to first process in the Linux container.
|
||||
// Note that the actual running identity can be changed if the process has enough privilege to do so.
|
||||
LinuxContainerUser linux = 1;
|
||||
|
||||
// User identities initially attached to first process in the Windows container
|
||||
// This is just reserved for future use.
|
||||
// WindowsContainerUser windows = 2;
|
||||
}
|
||||
|
||||
|
||||
message UpdateContainerResourcesRequest {
|
||||
// ID of the container to update.
|
||||
string container_id = 1;
|
||||
|
||||
14
vendor/modules.txt
vendored
14
vendor/modules.txt
vendored
@@ -231,7 +231,7 @@ github.com/coreos/go-systemd/v22/dbus
|
||||
# github.com/cpuguy83/go-md2man/v2 v2.0.4
|
||||
## explicit; go 1.11
|
||||
github.com/cpuguy83/go-md2man/v2/md2man
|
||||
# github.com/davecgh/go-spew v1.1.1
|
||||
# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
|
||||
## explicit
|
||||
github.com/davecgh/go-spew/spew
|
||||
# github.com/distribution/reference v0.6.0
|
||||
@@ -412,7 +412,7 @@ github.com/pelletier/go-toml/v2/unstable
|
||||
# github.com/pkg/errors v0.9.1
|
||||
## explicit
|
||||
github.com/pkg/errors
|
||||
# github.com/pmezard/go-difflib v1.0.0
|
||||
# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
||||
## explicit
|
||||
github.com/pmezard/go-difflib/difflib
|
||||
# github.com/prometheus/client_golang v1.19.1
|
||||
@@ -545,7 +545,7 @@ go.opentelemetry.io/proto/otlp/collector/trace/v1
|
||||
go.opentelemetry.io/proto/otlp/common/v1
|
||||
go.opentelemetry.io/proto/otlp/resource/v1
|
||||
go.opentelemetry.io/proto/otlp/trace/v1
|
||||
# golang.org/x/crypto v0.22.0
|
||||
# golang.org/x/crypto v0.23.0
|
||||
## explicit; go 1.18
|
||||
golang.org/x/crypto/cast5
|
||||
golang.org/x/crypto/openpgp
|
||||
@@ -563,7 +563,7 @@ golang.org/x/exp/slices
|
||||
# golang.org/x/mod v0.17.0
|
||||
## explicit; go 1.18
|
||||
golang.org/x/mod/semver
|
||||
# golang.org/x/net v0.24.0
|
||||
# golang.org/x/net v0.25.0
|
||||
## explicit; go 1.18
|
||||
golang.org/x/net/bpf
|
||||
golang.org/x/net/html
|
||||
@@ -595,10 +595,10 @@ golang.org/x/sys/windows/registry
|
||||
golang.org/x/sys/windows/svc
|
||||
golang.org/x/sys/windows/svc/debug
|
||||
golang.org/x/sys/windows/svc/mgr
|
||||
# golang.org/x/term v0.19.0
|
||||
# golang.org/x/term v0.20.0
|
||||
## explicit; go 1.18
|
||||
golang.org/x/term
|
||||
# golang.org/x/text v0.14.0
|
||||
# golang.org/x/text v0.15.0
|
||||
## explicit; go 1.18
|
||||
golang.org/x/text/secure/bidirule
|
||||
golang.org/x/text/transform
|
||||
@@ -812,7 +812,7 @@ k8s.io/client-go/util/workqueue
|
||||
# k8s.io/component-base v0.30.0
|
||||
## explicit; go 1.22.0
|
||||
k8s.io/component-base/logs/logreduction
|
||||
# k8s.io/cri-api v0.30.0
|
||||
# k8s.io/cri-api v0.31.0-alpha.0.0.20240529224029-3a66d9d86654
|
||||
## explicit; go 1.22.0
|
||||
k8s.io/cri-api/pkg/apis/runtime/v1
|
||||
k8s.io/cri-api/pkg/errors
|
||||
|
||||
Reference in New Issue
Block a user