mirror of
https://github.com/containers/podman.git
synced 2026-06-07 15:25:45 -04:00
* Support the `X-Registry-Auth` http-request header. * The content of the header is a base64 encoded JSON payload which can either be a single auth config or a map of auth configs (user+pw or token) with the corresponding registries being the keys. Vanilla Docker, projectatomic Docker and the bindings are transparantly supported. * Add a hidden `--registries-conf` flag. Buildah exposes the same flag, mostly for testing purposes. * Do all credential parsing in the client (i.e., `cmd/podman`) pass the username and password in the backend instead of unparsed credentials. * Add a `pkg/auth` which handles most of the heavy lifting. * Go through the authentication-handling code of most commands, bindings and endpoints. Migrate them to the new code and fix issues as seen. A final evaluation and more tests is still required *after* this change. * The manifest-push endpoint is missing certain parameters and should use the ABI function instead. Adding auth-support isn't really possible without these parts working. * The container commands and endpoints (i.e., create and run) have not been changed yet. The APIs don't yet account for the authfile. * Add authentication tests to `pkg/bindings`. Fixes: #6384 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
59 lines
1.9 KiB
Go
59 lines
1.9 KiB
Go
package entities
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
|
|
"github.com/containers/common/pkg/config"
|
|
"github.com/opentracing/opentracing-go"
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
// EngineMode is the connection type podman is using to access libpod
|
|
type EngineMode string
|
|
|
|
// EngineSetup calls out whether a "normal" or specialized engine should be created
|
|
type EngineSetup string
|
|
|
|
const (
|
|
ABIMode = EngineMode("abi")
|
|
TunnelMode = EngineMode("tunnel")
|
|
|
|
MigrateMode = EngineSetup("migrate")
|
|
NoFDsMode = EngineSetup("disablefds")
|
|
NormalMode = EngineSetup("normal")
|
|
RenumberMode = EngineSetup("renumber")
|
|
ResetMode = EngineSetup("reset")
|
|
)
|
|
|
|
// Convert EngineMode to String
|
|
func (m EngineMode) String() string {
|
|
return string(m)
|
|
}
|
|
|
|
// PodmanConfig combines the defaults and settings from the file system with the
|
|
// flags given in os.Args. Some runtime state is also stored here.
|
|
type PodmanConfig struct {
|
|
*config.Config
|
|
*pflag.FlagSet
|
|
|
|
CGroupUsage string // rootless code determines Usage message
|
|
ConmonPath string // --conmon flag will set Engine.ConmonPath
|
|
CpuProfile string // Hidden: Should CPU profile be taken
|
|
EngineMode EngineMode // ABI or Tunneling mode
|
|
Identities []string // ssh identities for connecting to server
|
|
MaxWorks int // maximum number of parallel threads
|
|
RegistriesConf string // allows for specifying a custom registries.conf
|
|
RuntimePath string // --runtime flag will set Engine.RuntimePath
|
|
SpanCloser io.Closer // Close() for tracing object
|
|
SpanCtx context.Context // context to use when tracing
|
|
Span opentracing.Span // tracing object
|
|
Syslog bool // write to StdOut and Syslog, not supported when tunneling
|
|
Trace bool // Hidden: Trace execution
|
|
Uri string // URI to API Service
|
|
|
|
Runroot string
|
|
StorageDriver string
|
|
StorageOpts []string
|
|
}
|