spiegel_podman/pkg/domain/entities/engine.go
Jhon Honce cbca625328 V2 Add support for ssh authentication methods
* podman --remote ssh://<user>:<password>@<host>:<port><path>
* podman --remote ssh://<user>:<password>@<host>:<port><path> \
  --identity <path> --passphrase <phrase>
* ssh-add <key>
  podman --remote ssh://<user>@<host><path>
* Fix `podman help` to run even if podman missing components
* Prompt for passphrase on stdin IFF key is protected and passphrase
  not given via any other configuration

* cobra flags do not support optional value flags therefore refactored
  --remote to be a boolean and --url will now contain the URI to Podman
  service

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-03 09:54:39 -07:00

60 lines
2.1 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
PassPhrase string // ssh passphrase for identity for connecting to server
RegistriesConf string // allows for specifying a custom registries.conf
Remote bool // Connection to Podman API Service will use RESTful API
RuntimePath string // --runtime flag will set Engine.RuntimePath
Span opentracing.Span // tracing object
SpanCloser io.Closer // Close() for tracing object
SpanCtx context.Context // context to use when tracing
Syslog bool // write to StdOut and Syslog, not supported when tunneling
Trace bool // Hidden: Trace execution
Uri string // URI to RESTful API Service
Runroot string
StorageDriver string
StorageOpts []string
}