Documentation
¶
Index ¶
- func AgentImageFromSystemA(ctx context.Context) (string, error)
- func AgentImageFromSystemAWithRetry(ctx context.Context) (string, error)
- func AgentsAreCompatible(agents []*rpc.AgentInfo) bool
- func GetAgentImage(ctx context.Context) string
- func GetExtendedAgentImage(ctx context.Context) (string, error)
- func GetSessionID(ctx context.Context) string
- func LoadEnv(ctx context.Context, lookupFunc func(string) (string, bool)) (context.Context, error)
- func WithAgentImageRetriever(ctx context.Context, onChange func(context.Context, string) error) (context.Context, error)
- func WithEnv(ctx context.Context, env *Env) context.Context
- func WithSessionID(ctx context.Context, sessionID string) context.Context
- func WithSessionInfo(ctx context.Context, si *manager.SessionInfo) context.Context
- type Env
- type SystemaCRUDClient
- type UnauthdConnProvider
- func (p *UnauthdConnProvider) BuildClient(ctx context.Context, conn *grpc.ClientConn) (SystemaCRUDClient, error)
- func (p *UnauthdConnProvider) GetAPIKey(ctx context.Context) (string, error)
- func (p *UnauthdConnProvider) GetCloudConfig(ctx context.Context) (*manager.AmbassadorCloudConfig, error)
- func (p *UnauthdConnProvider) GetExtraHeaders(ctx context.Context) (map[string]string, error)
- func (p *UnauthdConnProvider) GetInstallID(ctx context.Context) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AgentImageFromSystemA ¶ added in v2.6.0
func AgentImageFromSystemAWithRetry ¶ added in v2.8.3
func AgentsAreCompatible ¶
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
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
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 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 WithSessionID ¶ added in v2.3.2
func WithSessionInfo ¶ added in v2.3.2
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 (*Env) GeneratorConfig ¶ added in v2.6.0
func (e *Env) GeneratorConfig(qualifiedAgentImage string) (*agentmap.GeneratorConfig, error)
func (*Env) QualifiedAgentImage ¶ added in v2.6.0
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 (p *UnauthdConnProvider) BuildClient(ctx context.Context, conn *grpc.ClientConn) (SystemaCRUDClient, error)
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 (p *UnauthdConnProvider) GetCloudConfig(ctx context.Context) (*manager.AmbassadorCloudConfig, error)
func (*UnauthdConnProvider) GetExtraHeaders ¶ added in v2.6.5
func (*UnauthdConnProvider) GetInstallID ¶ added in v2.6.5
func (p *UnauthdConnProvider) GetInstallID(ctx context.Context) (string, error)