mirror of https://github.com/docker/cli.git
info: skip client-side warning about seccomp profile on API >= 1.42
This warning will be moved to the daemon-side, similar to how it returns other warnings. There's work in progress to change the name of the default profile, so we may need to backport this change to prevent existing clients from printing an incorrect warning if they're connecting to a newer daemon. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
7cf5cd6dec
commit
8964595692
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/docker/cli/templates"
|
"github.com/docker/cli/templates"
|
||||||
"github.com/docker/docker/api/types"
|
"github.com/docker/docker/api/types"
|
||||||
"github.com/docker/docker/api/types/swarm"
|
"github.com/docker/docker/api/types/swarm"
|
||||||
|
"github.com/docker/docker/api/types/versions"
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
@ -254,9 +255,6 @@ func prettyPrintServerInfo(dockerCli command.Cli, info types.Info) []error {
|
||||||
for _, o := range so.Options {
|
for _, o := range so.Options {
|
||||||
switch o.Key {
|
switch o.Key {
|
||||||
case "profile":
|
case "profile":
|
||||||
if o.Value != "default" {
|
|
||||||
fmt.Fprintln(dockerCli.Err(), " WARNING: You're not using the default seccomp profile")
|
|
||||||
}
|
|
||||||
fmt.Fprintln(dockerCli.Out(), " Profile:", o.Value)
|
fmt.Fprintln(dockerCli.Out(), " Profile:", o.Value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -421,6 +419,9 @@ func printSwarmInfo(dockerCli command.Cli, info types.Info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func printServerWarnings(dockerCli command.Cli, info types.Info) {
|
func printServerWarnings(dockerCli command.Cli, info types.Info) {
|
||||||
|
if versions.LessThan(dockerCli.Client().ClientVersion(), "1.42") {
|
||||||
|
printSecurityOptionsWarnings(dockerCli, info)
|
||||||
|
}
|
||||||
if len(info.Warnings) > 0 {
|
if len(info.Warnings) > 0 {
|
||||||
fmt.Fprintln(dockerCli.Err(), strings.Join(info.Warnings, "\n"))
|
fmt.Fprintln(dockerCli.Err(), strings.Join(info.Warnings, "\n"))
|
||||||
return
|
return
|
||||||
|
@ -430,6 +431,29 @@ func printServerWarnings(dockerCli command.Cli, info types.Info) {
|
||||||
printServerWarningsLegacy(dockerCli, info)
|
printServerWarningsLegacy(dockerCli, info)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// printSecurityOptionsWarnings prints warnings based on the security options
|
||||||
|
// returned by the daemon.
|
||||||
|
// DEPRECATED: warnings are now generated by the daemon, and returned in
|
||||||
|
// info.Warnings. This function is used to provide backward compatibility with
|
||||||
|
// daemons that do not provide these warnings. No new warnings should be added
|
||||||
|
// here.
|
||||||
|
func printSecurityOptionsWarnings(dockerCli command.Cli, info types.Info) {
|
||||||
|
if info.OSType == "windows" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
kvs, _ := types.DecodeSecurityOptions(info.SecurityOptions)
|
||||||
|
for _, so := range kvs {
|
||||||
|
if so.Name != "seccomp" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for _, o := range so.Options {
|
||||||
|
if o.Key == "profile" && o.Value != "default" && o.Value != "builtin" {
|
||||||
|
_, _ = fmt.Fprintln(dockerCli.Err(), "WARNING: You're not using the default seccomp profile")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// printServerWarningsLegacy generates warnings based on information returned by the daemon.
|
// printServerWarningsLegacy generates warnings based on information returned by the daemon.
|
||||||
// DEPRECATED: warnings are now generated by the daemon, and returned in
|
// DEPRECATED: warnings are now generated by the daemon, and returned in
|
||||||
// info.Warnings. This function is used to provide backward compatibility with
|
// info.Warnings. This function is used to provide backward compatibility with
|
||||||
|
|
Loading…
Reference in New Issue