Documentation ¶
Index ¶
- Constants
- func NoopDataLoader(_ *Config) error
- type Config
- func (c *Config) GetBundleArchiveLogs() (string, error)
- func (c *Config) GetBundlesCache() (string, error)
- func (c *Config) GetFeatureFlags() experimental.FeatureFlags
- func (c *Config) GetHomeDir() (string, error)
- func (c *Config) GetPluginPath(plugin string) (string, error)
- func (c *Config) GetPluginsDir() (string, error)
- func (c *Config) GetPorterPath() (string, error)
- func (c *Config) GetSecretsPlugin(name string) (SecretsPlugin, error)
- func (c *Config) GetStorage(name string) (StoragePlugin, error)
- func (c *Config) IsFeatureEnabled(flag experimental.FeatureFlags) bool
- func (c *Config) LoadData() error
- func (c *Config) SetExperimentalFlags(flags experimental.FeatureFlags)
- func (c *Config) SetHomeDir(home string)
- func (c *Config) SetPorterPath(path string)
- type Data
- type DataStoreLoaderFunc
- type PluginConfig
- type SecretsPlugin
- type StoragePlugin
- type TestConfig
Constants ¶
const ( // Name is the file name of the porter configuration file. Name = "porter.yaml" // EnvHOME is the name of the environment variable containing the porter home directory path. EnvHOME = "PORTER_HOME" // EnvBundleName is the name of the environment variable containing the name of the bundle. EnvBundleName = "CNAB_BUNDLE_NAME" // EnvInstallationName is the name of the environment variable containing the name of the installation. EnvInstallationName = "CNAB_INSTALLATION_NAME" // EnvACTION is the requested action to be executed EnvACTION = "CNAB_ACTION" // EnvDEBUG is a custom porter parameter that signals that --debug flag has been passed through from the client to the runtime. EnvDEBUG = "PORTER_DEBUG" // CustomPorterKey is the key in the bundle.json custom section that contains the Porter stamp // It holds all the metadata that Porter includes that is specific to Porter about the bundle. CustomPorterKey = "sh.porter" // BundleOutputsDir is the directory where outputs are expected to be placed // during the execution of a bundle action. BundleOutputsDir = "/cnab/app/outputs" // ClaimFilepath is the filepath to the claim.json inside of an invocation image ClaimFilepath = "/cnab/claim.json" )
const ( BuildDriverDocker = "docker" BuildDriverBuildkit = "buildkit" )
Variables ¶
This section is empty.
Functions ¶
func NoopDataLoader ¶
NoopDataLoader skips loading the datastore.
Types ¶
type Config ¶
type Config struct { *context.Context Data Data DataLoader DataStoreLoaderFunc // ConfigFilePath is the path to the loaded configuration file ConfigFilePath string // contains filtered or unexported fields }
func (*Config) GetBundleArchiveLogs ¶
GetArchiveLogs locates the output for Bundle Archive Operations.
func (*Config) GetBundlesCache ¶
GetBundlesDir locates the bundle cache from the porter home directory.
func (*Config) GetFeatureFlags ¶ added in v1.0.1
func (c *Config) GetFeatureFlags() experimental.FeatureFlags
FeatureFlags indicates which experimental feature flags are enabled
func (*Config) GetHomeDir ¶
GetHomeDir determines the absolute path to the porter home directory. Hierarchy of checks: - PORTER_HOME - HOME/.porter or USERPROFILE/.porter
func (*Config) GetPluginsDir ¶
func (*Config) GetPorterPath ¶
func (*Config) GetSecretsPlugin ¶ added in v1.0.1
func (c *Config) GetSecretsPlugin(name string) (SecretsPlugin, error)
func (*Config) GetStorage ¶ added in v1.0.1
func (c *Config) GetStorage(name string) (StoragePlugin, error)
func (*Config) IsFeatureEnabled ¶ added in v1.0.1
func (c *Config) IsFeatureEnabled(flag experimental.FeatureFlags) bool
IsFeatureEnabled returns true if the specified experimental flag is enabled.
func (*Config) LoadData ¶
LoadData from the datastore in PORTER_HOME. This defaults to reading the configuration file and environment variables.
func (*Config) SetExperimentalFlags ¶ added in v1.0.1
func (c *Config) SetExperimentalFlags(flags experimental.FeatureFlags)
SetExperimentalFlags programmatically, overriding Config.Data.ExperimentalFlags. Example: Config.SetExperimentalFlags(experimental.FlagBuildDrivers | ...)
func (*Config) SetHomeDir ¶
SetHomeDir is a test function that allows tests to use an alternate Porter home directory.
func (*Config) SetPorterPath ¶ added in v0.30.1
SetPorterPath is a test function that allows tests to use an alternate Porter binary location.
type Data ¶
type Data struct { // BuildDriver is the driver to use when building bundles. // Available values are: docker, buildkit. BuildDriver string `mapstructure:"build-driver"` // RuntimeDriver is the driver to use when executing bundles. // Available values are: docker, kubernetes. RuntimeDriver string `mapstructure:"runtime-driver"` // AllowDockerHostAccess grants bundles access to the underlying docker host // upon which it is running so that it can do things like build and run containers. // It's a security risk. AllowDockerHostAccess bool `mapstructure:"allow-docker-host-access"` // DefaultStoragePlugin is the storage plugin to use when no named storage is specified. DefaultStoragePlugin string `mapstructure:"default-storage-plugin"` // DefaultStorage to use when a named storage is not specified by a flag. DefaultStorage string `mapstructure:"default-storage"` // ExperimentalFlags is a list of enabled experimental.FeatureFlags. // Use Config.IsFeatureEnabled instead of parsing directly. ExperimentalFlags []string `mapstructure:"experimental"` // StoragePlugins defined in the configuration file. StoragePlugins []StoragePlugin `mapstructure:"storage"` // DefaultSecretsPlugin is the plugin to use when no plugin is specified. DefaultSecretsPlugin string `mapstructure:"default-secrets-plugin"` // DefaultSecrets to use when one is not specified by a flag. DefaultSecrets string `mapstructure:"default-secrets"` // Namespace is the default namespace for commands that do not override it with a flag. Namespace string `mapstructure:"namespace"` // SecretsPlugin defined in the configuration file. SecretsPlugin []SecretsPlugin `mapstructure:"secrets"` }
Data is the data stored in PORTER_HOME/porter.toml|yaml|json. Use the accessor functions to ensure default values are handled properly.
func DefaultDataStore ¶ added in v1.0.1
func DefaultDataStore() Data
DefaultDataStore used when no config file is found.
type DataStoreLoaderFunc ¶
func LoadFromEnvironment ¶ added in v1.0.1
func LoadFromEnvironment() DataStoreLoaderFunc
LoadHierarchicalConfig loads data with the following precedence: * User set flag Flags (highest) * Environment variables where --flag is assumed to be PORTER_FLAG * Config file * Flag default (lowest)
func LoadFromViper ¶ added in v1.0.1
func LoadFromViper(viperCfg func(v *viper.Viper)) DataStoreLoaderFunc
LoadFromViper loads data from a configurable viper instance.
type PluginConfig ¶
type PluginConfig struct { Name string `mapstructure:"name"` PluginSubKey string `mapstructure:"plugin"` Config map[string]interface{} `mapstructure:"config"` }
PluginConfig is a standardized config stanza that defines which plugin to use and its custom configuration.
func (PluginConfig) GetConfig ¶
func (p PluginConfig) GetConfig() interface{}
func (PluginConfig) GetName ¶
func (p PluginConfig) GetName() string
func (PluginConfig) GetPluginSubKey ¶
func (p PluginConfig) GetPluginSubKey() string
type SecretsPlugin ¶ added in v1.0.1
type SecretsPlugin struct {
PluginConfig `mapstructure:",squash"`
}
SecretsPlugin is the plugin stanza for secrets.
type StoragePlugin ¶ added in v1.0.1
type StoragePlugin struct {
PluginConfig `mapstructure:",squash"`
}
StoragePlugin is the plugin stanza for storage.
type TestConfig ¶
type TestConfig struct { *Config TestContext *context.TestContext }
func NewTestConfig ¶
func NewTestConfig(t *testing.T) *TestConfig
NewTestConfig initializes a configuration suitable for testing: * buffered output, * in-memory file system, * does not automatically load config from ambient environment.
func (*TestConfig) SetupIntegrationTest ¶
func (c *TestConfig) SetupIntegrationTest() (testDir string, homeDir string)
SetupIntegrationTest initializes the filesystem with the supporting files in a temp PORTER_HOME directory.
func (*TestConfig) SetupUnitTest ¶ added in v0.31.0
func (c *TestConfig) SetupUnitTest()
SetupUnitTest initializes the unit test filesystem with the supporting files in the PORTER_HOME directory.