managerutil

package
v2.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2022 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AgentImageFromSystemA added in v2.6.0

func AgentImageFromSystemA(ctx context.Context) (string, error)

func AgentImageFromSystemAWithRetry added in v2.8.3

func AgentImageFromSystemAWithRetry(ctx context.Context) (string, error)

func AgentsAreCompatible

func AgentsAreCompatible(agents []*rpc.AgentInfo) bool

AgentsAreCompatible returns whether all the specified agents have the same product, version, and mechanisms. This might not be true for a number of reasons, such as when a deployment is restarting its Pods for an upgrade. This helper also compares Agent names as a sanity check.

func GetAgentImage added in v2.6.0

func GetAgentImage(ctx context.Context) string

GetAgentImage returns the fully qualified name of the traffic-agent image, i.e. "docker.io/tel2:2.7.4", or an empty string if no agent image has been configured.

func GetExtendedAgentImage added in v2.7.4

func GetExtendedAgentImage(ctx context.Context) (string, error)

GetExtendedAgentImage returns the fully qualified name of the extended traffic-agent image, e.g. "docker.io/datawire/ambassador-telepresence-agent:1.12.8", or error indicating that the image name doesn't match. An empty string will be returned when no image has been configured.

func GetSessionID added in v2.3.2

func GetSessionID(ctx context.Context) string

func LoadEnv added in v2.3.1

func LoadEnv(ctx context.Context, lookupFunc func(string) (string, bool)) (context.Context, error)

func WithAgentImageRetriever added in v2.7.4

func WithAgentImageRetriever(ctx context.Context, onChange func(context.Context, string) error) (context.Context, error)

WithAgentImageRetriever returns a context that is configured with an agent image retriever which will retrieve the agent image from the environment variable AGENT_IMAGE or from the Ambassador Cloud, if that environment variable is empty. An error is returned if the environment variable is empty and access to Ambassador Cloud has not been configured.

The Ambassador Cloud retriever might return an empty string when used, due to inability to contact Ambassador Cloud.

func WithEnv added in v2.3.1

func WithEnv(ctx context.Context, env *Env) context.Context

func WithSessionID added in v2.3.2

func WithSessionID(ctx context.Context, sessionID string) context.Context

func WithSessionInfo added in v2.3.2

func WithSessionInfo(ctx context.Context, si *manager.SessionInfo) context.Context

Types

type Env added in v2.3.1

type Env struct {
	LogLevel               string   `env:"LOG_LEVEL,                parser=logLevel"`
	User                   string   `env:"USER,                     parser=string,      default="`
	ServerHost             string   `env:"SERVER_HOST,              parser=string,      default="`
	ServerPort             uint16   `env:"SERVER_PORT,              parser=port-number"`
	PrometheusPort         uint16   `env:"PROMETHEUS_PORT,          parser=port-number, default=0"`
	MutatorWebhookPort     uint16   `env:"MUTATOR_WEBHOOK_PORT,     parser=port-number, default=0"`
	SystemAHost            string   `env:"SYSTEMA_HOST,             parser=string,      default="`
	SystemAPort            uint16   `env:"SYSTEMA_PORT,             parser=port-number, default=0"`
	ManagerNamespace       string   `env:"MANAGER_NAMESPACE,        parser=string,      default="`
	ManagedNamespaces      []string `env:"MANAGED_NAMESPACES,       parser=split-trim,  default="`
	APIPort                uint16   `env:"AGENT_REST_API_PORT,      parser=port-number, default=0"`
	InterceptDisableGlobal bool     `env:"INTERCEPT_DISABLE_GLOBAL, parser=bool"`

	TracingGrpcPort uint16            `env:"TRACING_GRPC_PORT,     parser=port-number,default=0"`
	MaxReceiveSize  resource.Quantity `env:"GRPC_MAX_RECEIVE_SIZE, parser=quantity"`

	PodCIDRStrategy string       `env:"POD_CIDR_STRATEGY, parser=nonempty-string"`
	PodCIDRs        []*net.IPNet `env:"POD_CIDRS,         parser=split-ipnet, default="`
	PodIP           net.IP       `env:"POD_IP,            parser=ip"`

	AgentRegistry            string                     `env:"AGENT_REGISTRY,           parser=nonempty-string"`
	AgentImage               string                     `env:"AGENT_IMAGE,              parser=string,         default="`
	AgentInjectPolicy        agentconfig.InjectPolicy   `env:"AGENT_INJECT_POLICY,      parser=enable-policy"`
	AgentAppProtocolStrategy k8sapi.AppProtocolStrategy `env:"AGENT_APP_PROTO_STRATEGY, parser=app-proto-strategy"`
	AgentLogLevel            string                     `env:"AGENT_LOG_LEVEL,          parser=logLevel,       defaultFrom=LogLevel"`
	AgentPort                uint16                     `env:"AGENT_PORT,               parser=port-number"`
	AgentResources           *core.ResourceRequirements `env:"AGENT_RESOURCES,          parser=json-resources, default="`
	AgentInitResources       *core.ResourceRequirements `env:"AGENT_INIT_RESOURCES,     parser=json-resources, default="`
	AgentEnvoyLogLevel       string                     `env:"AGENT_ENVOY_LOG_LEVEL,    parser=logLevel,       defaultFrom=AgentLogLevel"`
	AgentEnvoyServerPort     uint16                     `env:"AGENT_ENVOY_SERVER_PORT,  parser=port-number"`
	AgentEnvoyAdminPort      uint16                     `env:"AGENT_ENVOY_ADMIN_PORT,   parser=port-number"`

	ClientRoutingAlsoProxySubnets  []*net.IPNet  `env:"CLIENT_ROUTING_ALSO_PROXY_SUBNETS,  parser=split-ipnet, default="`
	ClientRoutingNeverProxySubnets []*net.IPNet  `env:"CLIENT_ROUTING_NEVER_PROXY_SUBNETS, parser=split-ipnet, default="`
	ClientDnsExcludeSuffixes       []string      `env:"CLIENT_DNS_EXCLUDE_SUFFIXES,        parser=split-trim"`
	ClientDnsIncludeSuffixes       []string      `env:"CLIENT_DNS_INCLUDE_SUFFIXES,        parser=split-trim,  default="`
	ClientConnectionTTL            time.Duration `env:"CLIENT_CONNECTION_TTL,              parser=time.ParseDuration"`
}

Env is the traffic-manager's environment. It does not define any defaults because all defaults are declared in the Helm chart that creates the deployment. The reason for this is that some defaults are needed in other places in the Helm chart. In other words, since the Helm chart needs access to all defaults, and the traffic-manager only needs a subset, it's better to declare defaults in the Helm chart.

The Env is responsible for all parsing of the environment strings. No parsing of such strings should be made elsewhere in the code.

func GetEnv added in v2.3.1

func GetEnv(ctx context.Context) *Env

func (*Env) GeneratorConfig added in v2.6.0

func (e *Env) GeneratorConfig(qualifiedAgentImage string) (*agentmap.GeneratorConfig, error)

func (*Env) QualifiedAgentImage added in v2.6.0

func (e *Env) QualifiedAgentImage() string

type SystemaCRUDClient added in v2.6.0

type SystemaCRUDClient interface {
	systemarpc.SystemACRUDClient
	a8rcloud.Closeable
}

type UnauthdConnProvider added in v2.6.5

type UnauthdConnProvider struct {
	Config *manager.AmbassadorCloudConfig
}

func (*UnauthdConnProvider) BuildClient added in v2.6.5

func (*UnauthdConnProvider) GetAPIKey added in v2.6.5

func (p *UnauthdConnProvider) GetAPIKey(ctx context.Context) (string, error)

func (*UnauthdConnProvider) GetCloudConfig added in v2.6.5

func (*UnauthdConnProvider) GetExtraHeaders added in v2.6.5

func (p *UnauthdConnProvider) GetExtraHeaders(ctx context.Context) (map[string]string, error)

func (*UnauthdConnProvider) GetInstallID added in v2.6.5

func (p *UnauthdConnProvider) GetInstallID(ctx context.Context) (string, error)

Directories

Path Synopsis
Package mockmanagerutil is a generated GoMock package.
Package mockmanagerutil is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL