Merge pull request #1383 from dims/update-to-new-rc10-of-opencontainers/runc
Bump to opencontainers/runc new version - v1.0.0-rc10
This commit is contained in:
commit
19589b4bf9
@ -1,6 +1,6 @@
|
|||||||
# cri dependencies
|
# cri dependencies
|
||||||
github.com/tchap/go-patricia 666120de432aea38ab06bd5c818f04f4129882c9 # v2.2.6
|
github.com/tchap/go-patricia 666120de432aea38ab06bd5c818f04f4129882c9 # v2.2.6
|
||||||
github.com/opencontainers/selinux 3a1f366feb7aecbf7a0e71ac4cea88b31597de9e # v1.2.2
|
github.com/opencontainers/selinux 5215b1806f52b1fcc2070a8826c542c9d33cd3cf
|
||||||
github.com/docker/docker d1d5f6476656c6aad457e2a91d3436e66b6f2251
|
github.com/docker/docker d1d5f6476656c6aad457e2a91d3436e66b6f2251
|
||||||
github.com/docker/distribution 0d3efadf0154c2b8a4e7b6621fff9809655cc580
|
github.com/docker/distribution 0d3efadf0154c2b8a4e7b6621fff9809655cc580
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ github.com/prometheus/client_model 99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c
|
|||||||
github.com/prometheus/client_golang f4fb1b73fb099f396a7f0036bf86aa8def4ed823
|
github.com/prometheus/client_golang f4fb1b73fb099f396a7f0036bf86aa8def4ed823
|
||||||
github.com/pkg/errors ba968bfe8b2f7e042a574c888954fccecfa385b4 # v0.8.1
|
github.com/pkg/errors ba968bfe8b2f7e042a574c888954fccecfa385b4 # v0.8.1
|
||||||
github.com/opencontainers/runtime-spec 29686dbc5559d93fb1ef402eeda3e35c38d75af4 # v1.0.1-59-g29686db
|
github.com/opencontainers/runtime-spec 29686dbc5559d93fb1ef402eeda3e35c38d75af4 # v1.0.1-59-g29686db
|
||||||
github.com/opencontainers/runc d736ef14f0288d6993a1845745d6756cfc9ddd5a # v1.0.0-rc9
|
github.com/opencontainers/runc dc9208a3303feef5b3839f4323d9beb36df0a9dd # v1.0.0-rc10
|
||||||
github.com/opencontainers/image-spec d60099175f88c47cd379c4738d158884749ed235 # v1.0.1
|
github.com/opencontainers/image-spec d60099175f88c47cd379c4738d158884749ed235 # v1.0.1
|
||||||
github.com/opencontainers/go-digest c9281466c8b2f606084ac71339773efd177436e7
|
github.com/opencontainers/go-digest c9281466c8b2f606084ac71339773efd177436e7
|
||||||
github.com/matttproud/golang_protobuf_extensions c12348ce28de40eed0136aa2b644d0ee0650e56c # v1.0.1
|
github.com/matttproud/golang_protobuf_extensions c12348ce28de40eed0136aa2b644d0ee0650e56c # v1.0.1
|
||||||
|
15
vendor/github.com/opencontainers/runc/README.md
generated
vendored
15
vendor/github.com/opencontainers/runc/README.md
generated
vendored
@ -16,9 +16,13 @@ This means that `runc` 1.0.0 should implement the 1.0 version of the specificati
|
|||||||
|
|
||||||
You can find official releases of `runc` on the [release](https://github.com/opencontainers/runc/releases) page.
|
You can find official releases of `runc` on the [release](https://github.com/opencontainers/runc/releases) page.
|
||||||
|
|
||||||
|
Currently, the following features are not considered to be production-ready:
|
||||||
|
|
||||||
|
* Support for cgroup v2
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
Reporting process and disclosure communications are outlined in [/org/security](https://github.com/opencontainers/org/blob/master/security/)
|
The reporting process and disclosure communications are outlined in [/org/security](https://github.com/opencontainers/org/blob/master/security/).
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
@ -229,7 +233,14 @@ runc delete mycontainerid
|
|||||||
This allows higher level systems to augment the containers creation logic with setup of various settings after the container is created and/or before it is deleted. For example, the container's network stack is commonly set up after `create` but before `start`.
|
This allows higher level systems to augment the containers creation logic with setup of various settings after the container is created and/or before it is deleted. For example, the container's network stack is commonly set up after `create` but before `start`.
|
||||||
|
|
||||||
#### Rootless containers
|
#### Rootless containers
|
||||||
`runc` has the ability to run containers without root privileges. This is called `rootless`. You need to pass some parameters to `runc` in order to run rootless containers. See below and compare with the previous version. Run the following commands as an ordinary user:
|
`runc` has the ability to run containers without root privileges. This is called `rootless`. You need to pass some parameters to `runc` in order to run rootless containers. See below and compare with the previous version.
|
||||||
|
|
||||||
|
**Note:** In order to use this feature, "User Namespaces" must be compiled and enabled in your kernel. There are various ways to do this depending on your distribution:
|
||||||
|
- Confirm `CONFIG_USER_NS=y` is set in your kernel configuration (normally found in `/proc/config.gz`)
|
||||||
|
- Arch/Debian: `echo 1 > /proc/sys/kernel/unprivileged_userns_clone`
|
||||||
|
- RHEL/CentOS 7: `echo 28633 > /proc/sys/user/max_user_namespaces`
|
||||||
|
|
||||||
|
Run the following commands as an ordinary user:
|
||||||
```bash
|
```bash
|
||||||
# Same as the first example
|
# Same as the first example
|
||||||
mkdir ~/mycontainer
|
mkdir ~/mycontainer
|
||||||
|
3
vendor/github.com/opencontainers/runc/vendor.conf
generated
vendored
3
vendor/github.com/opencontainers/runc/vendor.conf
generated
vendored
@ -26,3 +26,6 @@ golang.org/x/sys 9eafafc0a87e0fd0aeeba439a4573537970c44c7
|
|||||||
# console dependencies
|
# console dependencies
|
||||||
github.com/containerd/console 0650fd9eeb50bab4fc99dceb9f2e14cf58f36e7f
|
github.com/containerd/console 0650fd9eeb50bab4fc99dceb9f2e14cf58f36e7f
|
||||||
github.com/pkg/errors ba968bfe8b2f7e042a574c888954fccecfa385b4 # v0.8.1
|
github.com/pkg/errors ba968bfe8b2f7e042a574c888954fccecfa385b4 # v0.8.1
|
||||||
|
|
||||||
|
# ebpf dependencies
|
||||||
|
github.com/cilium/ebpf 95b36a581eed7b0f127306ed1d16cc0ddc06cf67
|
||||||
|
18
vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go
generated
vendored
18
vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go
generated
vendored
@ -13,11 +13,12 @@ import (
|
|||||||
|
|
||||||
// Valid Label Options
|
// Valid Label Options
|
||||||
var validOptions = map[string]bool{
|
var validOptions = map[string]bool{
|
||||||
"disable": true,
|
"disable": true,
|
||||||
"type": true,
|
"type": true,
|
||||||
"user": true,
|
"filetype": true,
|
||||||
"role": true,
|
"user": true,
|
||||||
"level": true,
|
"role": true,
|
||||||
|
"level": true,
|
||||||
}
|
}
|
||||||
|
|
||||||
var ErrIncompatibleLabel = fmt.Errorf("Bad SELinux option z and Z can not be used together")
|
var ErrIncompatibleLabel = fmt.Errorf("Bad SELinux option z and Z can not be used together")
|
||||||
@ -51,13 +52,16 @@ func InitLabels(options []string) (plabel string, mlabel string, Err error) {
|
|||||||
return "", mountLabel, nil
|
return "", mountLabel, nil
|
||||||
}
|
}
|
||||||
if i := strings.Index(opt, ":"); i == -1 {
|
if i := strings.Index(opt, ":"); i == -1 {
|
||||||
return "", "", fmt.Errorf("Bad label option %q, valid options 'disable' or \n'user, role, level, type' followed by ':' and a value", opt)
|
return "", "", fmt.Errorf("Bad label option %q, valid options 'disable' or \n'user, role, level, type, filetype' followed by ':' and a value", opt)
|
||||||
}
|
}
|
||||||
con := strings.SplitN(opt, ":", 2)
|
con := strings.SplitN(opt, ":", 2)
|
||||||
if !validOptions[con[0]] {
|
if !validOptions[con[0]] {
|
||||||
return "", "", fmt.Errorf("Bad label option %q, valid options 'disable, user, role, level, type'", con[0])
|
return "", "", fmt.Errorf("Bad label option %q, valid options 'disable, user, role, level, type, filetype'", con[0])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if con[0] == "filetype" {
|
||||||
|
mcon["type"] = con[1]
|
||||||
|
}
|
||||||
pcon[con[0]] = con[1]
|
pcon[con[0]] = con[1]
|
||||||
if con[0] == "level" || con[0] == "user" {
|
if con[0] == "level" || con[0] == "user" {
|
||||||
mcon[con[0]] = con[1]
|
mcon[con[0]] = con[1]
|
||||||
|
33
vendor/github.com/opencontainers/selinux/go-selinux/selinux_linux.go
generated
vendored
33
vendor/github.com/opencontainers/selinux/go-selinux/selinux_linux.go
generated
vendored
@ -18,6 +18,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -252,6 +254,12 @@ func getSELinuxPolicyRoot() string {
|
|||||||
return filepath.Join(selinuxDir, readConfig(selinuxTypeTag))
|
return filepath.Join(selinuxDir, readConfig(selinuxTypeTag))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isProcHandle(fh *os.File) (bool, error) {
|
||||||
|
var buf unix.Statfs_t
|
||||||
|
err := unix.Fstatfs(int(fh.Fd()), &buf)
|
||||||
|
return buf.Type == unix.PROC_SUPER_MAGIC, err
|
||||||
|
}
|
||||||
|
|
||||||
func readCon(fpath string) (string, error) {
|
func readCon(fpath string) (string, error) {
|
||||||
if fpath == "" {
|
if fpath == "" {
|
||||||
return "", ErrEmptyPath
|
return "", ErrEmptyPath
|
||||||
@ -263,6 +271,12 @@ func readCon(fpath string) (string, error) {
|
|||||||
}
|
}
|
||||||
defer in.Close()
|
defer in.Close()
|
||||||
|
|
||||||
|
if ok, err := isProcHandle(in); err != nil {
|
||||||
|
return "", err
|
||||||
|
} else if !ok {
|
||||||
|
return "", fmt.Errorf("%s not on procfs", fpath)
|
||||||
|
}
|
||||||
|
|
||||||
var retval string
|
var retval string
|
||||||
if _, err := fmt.Fscanf(in, "%s", &retval); err != nil {
|
if _, err := fmt.Fscanf(in, "%s", &retval); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@ -345,6 +359,12 @@ func writeCon(fpath string, val string) error {
|
|||||||
}
|
}
|
||||||
defer out.Close()
|
defer out.Close()
|
||||||
|
|
||||||
|
if ok, err := isProcHandle(out); err != nil {
|
||||||
|
return err
|
||||||
|
} else if !ok {
|
||||||
|
return fmt.Errorf("%s not on procfs", fpath)
|
||||||
|
}
|
||||||
|
|
||||||
if val != "" {
|
if val != "" {
|
||||||
_, err = out.Write([]byte(val))
|
_, err = out.Write([]byte(val))
|
||||||
} else {
|
} else {
|
||||||
@ -392,6 +412,14 @@ func SetExecLabel(label string) error {
|
|||||||
return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid()), label)
|
return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid()), label)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SetTaskLabel sets the SELinux label for the current thread, or an error.
|
||||||
|
This requires the dyntransition permission.
|
||||||
|
*/
|
||||||
|
func SetTaskLabel(label string) error {
|
||||||
|
return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/current", syscall.Gettid()), label)
|
||||||
|
}
|
||||||
|
|
||||||
// SetSocketLabel takes a process label and tells the kernel to assign the
|
// SetSocketLabel takes a process label and tells the kernel to assign the
|
||||||
// label to the next socket that gets created
|
// label to the next socket that gets created
|
||||||
func SetSocketLabel(label string) error {
|
func SetSocketLabel(label string) error {
|
||||||
@ -403,6 +431,11 @@ func SocketLabel() (string, error) {
|
|||||||
return readCon(fmt.Sprintf("/proc/self/task/%d/attr/sockcreate", syscall.Gettid()))
|
return readCon(fmt.Sprintf("/proc/self/task/%d/attr/sockcreate", syscall.Gettid()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PeerLabel retrieves the label of the client on the other side of a socket
|
||||||
|
func PeerLabel(fd uintptr) (string, error) {
|
||||||
|
return unix.GetsockoptString(int(fd), syscall.SOL_SOCKET, syscall.SO_PEERSEC)
|
||||||
|
}
|
||||||
|
|
||||||
// SetKeyLabel takes a process label and tells the kernel to assign the
|
// SetKeyLabel takes a process label and tells the kernel to assign the
|
||||||
// label to the next kernel keyring that gets created
|
// label to the next kernel keyring that gets created
|
||||||
func SetKeyLabel(label string) error {
|
func SetKeyLabel(label string) error {
|
||||||
|
13
vendor/github.com/opencontainers/selinux/go-selinux/selinux_stub.go
generated
vendored
13
vendor/github.com/opencontainers/selinux/go-selinux/selinux_stub.go
generated
vendored
@ -96,6 +96,14 @@ func SetExecLabel(label string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SetTaskLabel sets the SELinux label for the current thread, or an error.
|
||||||
|
This requires the dyntransition permission.
|
||||||
|
*/
|
||||||
|
func SetTaskLabel(label string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SetSocketLabel sets the SELinux label that the kernel will use for any programs
|
SetSocketLabel sets the SELinux label that the kernel will use for any programs
|
||||||
that are executed by the current process thread, or an error.
|
that are executed by the current process thread, or an error.
|
||||||
@ -109,6 +117,11 @@ func SocketLabel() (string, error) {
|
|||||||
return "", nil
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PeerLabel retrieves the label of the client on the other side of a socket
|
||||||
|
func PeerLabel(fd uintptr) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|
||||||
// SetKeyLabel takes a process label and tells the kernel to assign the
|
// SetKeyLabel takes a process label and tells the kernel to assign the
|
||||||
// label to the next kernel keyring that gets created
|
// label to the next kernel keyring that gets created
|
||||||
func SetKeyLabel(label string) error {
|
func SetKeyLabel(label string) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user