Documentation ¶
Index ¶
- func AgentsAreCompatible(agents []*rpc.AgentInfo) bool
- func GetAgentImage(ctx context.Context) string
- func GetSessionID(ctx context.Context) string
- func LoadEnv(ctx context.Context, lookupFunc func(string) (string, bool)) (context.Context, error)
- func LoadEnvInto(env any, lookupFunc func(string) (string, bool)) (any, error)
- func LogAgentImageInfo(ctx context.Context, img string)
- func WithAgentImageRetriever(ctx context.Context, onChange func(context.Context, string) error) (context.Context, error)
- func WithEnv(ctx context.Context, env *Env) context.Context
- func WithResolvedAgentImageRetriever(ctx context.Context, ir ImageRetriever) context.Context
- func WithSessionID(ctx context.Context, sessionID string) context.Context
- func WithSessionInfo(ctx context.Context, si *manager.SessionInfo) context.Context
- type Env
- type ImageFromEnv
- type ImageRetriever
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 GetSessionID ¶ added in v2.3.2
func LoadEnvInto ¶ added in v2.14.1
func LogAgentImageInfo ¶ added in v2.14.1
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. An error is returned if the environment variable is empty.
func WithResolvedAgentImageRetriever ¶ added in v2.14.1
func WithResolvedAgentImageRetriever(ctx context.Context, ir ImageRetriever) context.Context
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 { Registry string `env:"REGISTRY, parser=nonempty-string"` 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"` 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"` AgentArrivalTimeout time.Duration `env:"AGENT_ARRIVAL_TIMEOUT, parser=time.ParseDuration"` 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=string, default="` AgentImageName string `env:"AGENT_IMAGE_NAME, parser=string, default="` AgentImageTag string `env:"AGENT_IMAGE_TAG, parser=string, default="` AgentImagePullPolicy string `env:"AGENT_IMAGE_PULL_POLICY, parser=string, default="` AgentImagePullSecrets []core.LocalObjectReference `env:"AGENT_IMAGE_PULL_SECRETS, parser=json-local-refs,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="` AgentInjectorName string `env:"AGENT_INJECTOR_NAME, parser=string"` AgentInjectorSecret string `env:"AGENT_INJECTOR_SECRET, parser=nonempty-string"` 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="` ClientRoutingAllowConflictingSubnets []*net.IPNet `env:"CLIENT_ROUTING_ALLOW_CONFLICTING_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 ImageFromEnv ¶ added in v2.14.1
type ImageFromEnv string
func (ImageFromEnv) GetImage ¶ added in v2.14.1
func (p ImageFromEnv) GetImage() string
type ImageRetriever ¶ added in v2.14.1
type ImageRetriever interface {
GetImage() string
}
func GetAgentImageRetriever ¶ added in v2.18.0
func GetAgentImageRetriever(ctx context.Context) ImageRetriever