Documentation ¶
Overview ¶
Package adapter_template_kubernetes is a generated protocol buffer package.
The `kubernetes` template holds data that controls the production of Kubernetes-specific attributes.
Example config:
```yaml apiVersion: "config.istio.io/v1alpha2" kind: kubernetes metadata:
name: attributes namespace: istio-system
spec:
# Pass the required attribute data to the adapter source_uid: source.uid | "" source_ip: source.ip | ip("0.0.0.0") # default to unspecified ip addr destination_uid: destination.uid | "" destination_ip: destination.ip | ip("0.0.0.0") # default to unspecified ip addr attribute_bindings: # Fill the new attributes from the adapter produced output. # $out refers to an instance of OutputTemplate message source.ip: $out.source_pod_ip source.labels: $out.source_labels source.namespace: $out.source_namespace source.service: $out.source_service source.serviceAccount: $out.source_service_account_name destination.ip: $out.destination_pod_ip destination.labels: $out.destination_labels destination.namespace: $out.destination_mamespace destination.service: $out.destination_service destination.serviceAccount: $out.destination_service_account_name
```
The `kubernetes` template represents data used to generate kubernetes-derived attributes.
The values provided controls the manner in which the kubernetesenv adapter discovers and generates values related to pod information. Next ID: 8
It is generated from these files:
mixer/adapter/kubernetesenv/template/template_handler_service.proto
It has these top-level messages:
HandleKubernetesRequest OutputMsg InstanceMsg Type InstanceParam
Index ¶
- Constants
- Variables
- func RegisterHandleKubernetesServiceServer(s *grpc.Server, srv HandleKubernetesServiceServer)
- type HandleKubernetesRequest
- func (*HandleKubernetesRequest) Descriptor() ([]byte, []int)
- func (m *HandleKubernetesRequest) Marshal() (dAtA []byte, err error)
- func (m *HandleKubernetesRequest) MarshalTo(dAtA []byte) (int, error)
- func (*HandleKubernetesRequest) ProtoMessage()
- func (m *HandleKubernetesRequest) Reset()
- func (m *HandleKubernetesRequest) Size() (n int)
- func (this *HandleKubernetesRequest) String() string
- func (m *HandleKubernetesRequest) Unmarshal(dAtA []byte) error
- type HandleKubernetesServiceClient
- type HandleKubernetesServiceServer
- type Handler
- type HandlerBuilder
- type Instance
- type InstanceMsg
- func (*InstanceMsg) Descriptor() ([]byte, []int)
- func (m *InstanceMsg) Marshal() (dAtA []byte, err error)
- func (m *InstanceMsg) MarshalTo(dAtA []byte) (int, error)
- func (*InstanceMsg) ProtoMessage()
- func (m *InstanceMsg) Reset()
- func (m *InstanceMsg) Size() (n int)
- func (this *InstanceMsg) String() string
- func (m *InstanceMsg) Unmarshal(dAtA []byte) error
- type InstanceParam
- func (*InstanceParam) Descriptor() ([]byte, []int)
- func (m *InstanceParam) Marshal() (dAtA []byte, err error)
- func (m *InstanceParam) MarshalTo(dAtA []byte) (int, error)
- func (*InstanceParam) ProtoMessage()
- func (m *InstanceParam) Reset()
- func (m *InstanceParam) Size() (n int)
- func (this *InstanceParam) String() string
- func (m *InstanceParam) Unmarshal(dAtA []byte) error
- type Output
- func (o *Output) SetDestinationContainerName(val string)
- func (o *Output) SetDestinationHostIp(val net.IP)
- func (o *Output) SetDestinationLabels(val map[string]string)
- func (o *Output) SetDestinationNamespace(val string)
- func (o *Output) SetDestinationOwner(val string)
- func (o *Output) SetDestinationPodIp(val net.IP)
- func (o *Output) SetDestinationPodName(val string)
- func (o *Output) SetDestinationPodUid(val string)
- func (o *Output) SetDestinationServiceAccountName(val string)
- func (o *Output) SetDestinationWorkloadName(val string)
- func (o *Output) SetDestinationWorkloadNamespace(val string)
- func (o *Output) SetDestinationWorkloadUid(val string)
- func (o *Output) SetSourceHostIp(val net.IP)
- func (o *Output) SetSourceLabels(val map[string]string)
- func (o *Output) SetSourceNamespace(val string)
- func (o *Output) SetSourceOwner(val string)
- func (o *Output) SetSourcePodIp(val net.IP)
- func (o *Output) SetSourcePodName(val string)
- func (o *Output) SetSourcePodUid(val string)
- func (o *Output) SetSourceServiceAccountName(val string)
- func (o *Output) SetSourceWorkloadName(val string)
- func (o *Output) SetSourceWorkloadNamespace(val string)
- func (o *Output) SetSourceWorkloadUid(val string)
- func (o *Output) WasSet(field string) bool
- type OutputMsg
- func (*OutputMsg) Descriptor() ([]byte, []int)
- func (m *OutputMsg) Marshal() (dAtA []byte, err error)
- func (m *OutputMsg) MarshalTo(dAtA []byte) (int, error)
- func (*OutputMsg) ProtoMessage()
- func (m *OutputMsg) Reset()
- func (m *OutputMsg) Size() (n int)
- func (this *OutputMsg) String() string
- func (m *OutputMsg) Unmarshal(dAtA []byte) error
- type Type
- func (*Type) Descriptor() ([]byte, []int)
- func (m *Type) Marshal() (dAtA []byte, err error)
- func (m *Type) MarshalTo(dAtA []byte) (int, error)
- func (*Type) ProtoMessage()
- func (m *Type) Reset()
- func (m *Type) Size() (n int)
- func (this *Type) String() string
- func (m *Type) Unmarshal(dAtA []byte) error
Constants ¶
const TemplateName = "kubernetes"
Fully qualified name of the template
Variables ¶
var ( ErrInvalidLengthTemplateHandlerService = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowTemplateHandlerService = fmt.Errorf("proto: integer overflow") )
Functions ¶
func RegisterHandleKubernetesServiceServer ¶
func RegisterHandleKubernetesServiceServer(s *grpc.Server, srv HandleKubernetesServiceServer)
Types ¶
type HandleKubernetesRequest ¶
type HandleKubernetesRequest struct { // 'kubernetes' instance. Instance *InstanceMsg `protobuf:"bytes,1,opt,name=instance" json:"instance,omitempty"` // Adapter specific handler configuration. // // Note: Backends can also implement [InfrastructureBackend][https://istio.io/docs/reference/config/mixer/istio.mixer.adapter.model.v1beta1.html#InfrastructureBackend] // service and therefore opt to receive handler configuration during session creation through [InfrastructureBackend.CreateSession][TODO: Link to this fragment] // call. In that case, adapter_config will have type_url as 'google.protobuf.Any.type_url' and would contain string // value of session_id (returned from InfrastructureBackend.CreateSession). AdapterConfig *google_protobuf1.Any `protobuf:"bytes,2,opt,name=adapter_config,json=adapterConfig" json:"adapter_config,omitempty"` // Id to dedupe identical requests from Mixer. DedupId string `protobuf:"bytes,3,opt,name=dedup_id,json=dedupId,proto3" json:"dedup_id,omitempty"` }
Request message for HandleKubernetes method.
func (*HandleKubernetesRequest) Descriptor ¶
func (*HandleKubernetesRequest) Descriptor() ([]byte, []int)
func (*HandleKubernetesRequest) Marshal ¶
func (m *HandleKubernetesRequest) Marshal() (dAtA []byte, err error)
func (*HandleKubernetesRequest) MarshalTo ¶
func (m *HandleKubernetesRequest) MarshalTo(dAtA []byte) (int, error)
func (*HandleKubernetesRequest) ProtoMessage ¶
func (*HandleKubernetesRequest) ProtoMessage()
func (*HandleKubernetesRequest) Reset ¶
func (m *HandleKubernetesRequest) Reset()
func (*HandleKubernetesRequest) Size ¶
func (m *HandleKubernetesRequest) Size() (n int)
func (*HandleKubernetesRequest) String ¶
func (this *HandleKubernetesRequest) String() string
func (*HandleKubernetesRequest) Unmarshal ¶
func (m *HandleKubernetesRequest) Unmarshal(dAtA []byte) error
type HandleKubernetesServiceClient ¶
type HandleKubernetesServiceClient interface { // HandleKubernetes is called by Mixer at request-time to deliver 'kubernetes' instances to the backend. HandleKubernetes(ctx context.Context, in *HandleKubernetesRequest, opts ...grpc.CallOption) (*OutputMsg, error) }
func NewHandleKubernetesServiceClient ¶
func NewHandleKubernetesServiceClient(cc *grpc.ClientConn) HandleKubernetesServiceClient
type HandleKubernetesServiceServer ¶
type HandleKubernetesServiceServer interface { // HandleKubernetes is called by Mixer at request-time to deliver 'kubernetes' instances to the backend. HandleKubernetes(context.Context, *HandleKubernetesRequest) (*OutputMsg, error) }
type Handler ¶
type Handler interface { adapter.Handler // HandleKubernetes is called by Mixer at request time to deliver instances to // to an adapter. GenerateKubernetesAttributes(context.Context, *Instance) (*Output, error) }
Handler must be implemented by adapter code if it wants to process data associated with the 'kubernetes' template.
Mixer uses this interface to call into the adapter at request time in order to dispatch created instances to the adapter. Adapters take the incoming instances and do what they need to achieve their primary function.
type HandlerBuilder ¶
type HandlerBuilder interface { adapter.HandlerBuilder }
HandlerBuilder must be implemented by adapters if they want to process data associated with the 'kubernetes' template.
Mixer uses this interface to call into the adapter at configuration time to configure it with adapter-specific configuration as well as all template-specific type information.
type Instance ¶
type Instance struct { // Name of the instance as specified in configuration. Name string // Source pod's uid. Must be of the form: "kubernetes://pod.namespace" SourceUid string // Source pod's ip. SourceIp net.IP // Destination pod's uid. Must be of the form: "kubernetes://pod.namespace" DestinationUid string // Destination pod's ip. DestinationIp net.IP // Destination container's port number. DestinationPort int64 }
Instance is constructed by Mixer for the 'kubernetes' template.
The `kubernetes` template represents data used to generate kubernetes-derived attributes.
The values provided controls the manner in which the kubernetesenv adapter discovers and generates values related to pod information. Next ID: 8
type InstanceMsg ¶
type InstanceMsg struct { // Name of the instance as specified in configuration. Name string `protobuf:"bytes,72295727,opt,name=name,proto3" json:"name,omitempty"` // Source pod's uid. Must be of the form: "kubernetes://pod.namespace" SourceUid string `protobuf:"bytes,1,opt,name=source_uid,json=sourceUid,proto3" json:"source_uid,omitempty"` // Source pod's ip. SourceIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,2,opt,name=source_ip,json=sourceIp" json:"source_ip,omitempty"` // Destination pod's uid. Must be of the form: "kubernetes://pod.namespace" DestinationUid string `protobuf:"bytes,3,opt,name=destination_uid,json=destinationUid,proto3" json:"destination_uid,omitempty"` // Destination pod's ip. DestinationIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,4,opt,name=destination_ip,json=destinationIp" json:"destination_ip,omitempty"` // Destination container's port number. DestinationPort int64 `protobuf:"varint,7,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` }
Contains instance payload for 'kubernetes' template. This is passed to infrastructure backends during request-time through HandleKubernetesService.HandleKubernetes.
func (*InstanceMsg) Descriptor ¶
func (*InstanceMsg) Descriptor() ([]byte, []int)
func (*InstanceMsg) Marshal ¶
func (m *InstanceMsg) Marshal() (dAtA []byte, err error)
func (*InstanceMsg) ProtoMessage ¶
func (*InstanceMsg) ProtoMessage()
func (*InstanceMsg) Reset ¶
func (m *InstanceMsg) Reset()
func (*InstanceMsg) Size ¶
func (m *InstanceMsg) Size() (n int)
func (*InstanceMsg) String ¶
func (this *InstanceMsg) String() string
func (*InstanceMsg) Unmarshal ¶
func (m *InstanceMsg) Unmarshal(dAtA []byte) error
type InstanceParam ¶
type InstanceParam struct { // Source pod's uid. Must be of the form: "kubernetes://pod.namespace" SourceUid string `protobuf:"bytes,1,opt,name=source_uid,json=sourceUid,proto3" json:"source_uid,omitempty"` // Source pod's ip. SourceIp string `protobuf:"bytes,2,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"` // Destination pod's uid. Must be of the form: "kubernetes://pod.namespace" DestinationUid string `protobuf:"bytes,3,opt,name=destination_uid,json=destinationUid,proto3" json:"destination_uid,omitempty"` // Destination pod's ip. DestinationIp string `protobuf:"bytes,4,opt,name=destination_ip,json=destinationIp,proto3" json:"destination_ip,omitempty"` // Destination container's port number. DestinationPort string `protobuf:"bytes,7,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` // Attribute names to expression mapping. These expressions can use the fields from the output object // returned by the attribute producing adapters using $out.<fieldName> notation. For example: // source.ip : $out.source_pod_ip // In the above example, source.ip attribute will be added to the existing attribute list and its value will be set to // the value of source_pod_ip field of the output returned by the adapter. AttributeBindings map[string]string `` /* 200-byte string literal not displayed */ }
Represents instance configuration schema for 'kubernetes' template.
func (*InstanceParam) Descriptor ¶
func (*InstanceParam) Descriptor() ([]byte, []int)
func (*InstanceParam) Marshal ¶
func (m *InstanceParam) Marshal() (dAtA []byte, err error)
func (*InstanceParam) ProtoMessage ¶
func (*InstanceParam) ProtoMessage()
func (*InstanceParam) Reset ¶
func (m *InstanceParam) Reset()
func (*InstanceParam) Size ¶
func (m *InstanceParam) Size() (n int)
func (*InstanceParam) String ¶
func (this *InstanceParam) String() string
func (*InstanceParam) Unmarshal ¶
func (m *InstanceParam) Unmarshal(dAtA []byte) error
type Output ¶
type Output struct { // Refers to the source.uid for a pod. This is for TCP use cases where the attribute is not present. // attribute_bindings can refer to this field using $out.source_pod_uid SourcePodUid string // Refers to source pod ip address. attribute_bindings can refer to this field using $out.source_pod_ip SourcePodIp net.IP // Refers to source pod name. attribute_bindings can refer to this field using $out.source_pod_name SourcePodName string // Refers to source pod labels. attribute_bindings can refer to this field using $out.source_labels SourceLabels map[string]string // Refers to source pod namespace. attribute_bindings can refer to this field using $out.source_namespace SourceNamespace string // Refers to source pod service account name. attribute_bindings can refer to this field using $out.source_service_account_name SourceServiceAccountName string // Refers to source pod host ip address. attribute_bindings can refer to this field using $out.source_host_ip SourceHostIp net.IP // Refers to the Istio workload identifier for the source pod. Attribute_bindings can refer to this field using $out.source_workload_uid SourceWorkloadUid string // Refers to the Istio workload name for the source pod. Attribute_bindings can refer to this field using $out.source_workload_name SourceWorkloadName string // Refers to the Istio workload namespace for the source pod. Attribute_bindings can refer to this field using $out.source_workload_namespace SourceWorkloadNamespace string // Refers to the (controlling) owner of the source pod. Attribute_bindings can refer to this field using $out.source_owner SourceOwner string // Refers to the destination.uid for a pod. This is for TCP use cases where the attribute is not present. // attribute_bindings can refer to this field using $out.destination_pod_uid DestinationPodUid string // Refers to destination pod ip address. attribute_bindings can refer to this field using $out.destination_pod_ip DestinationPodIp net.IP // Refers to destination pod name. attribute_bindings can refer to this field using $out.destination_pod_name DestinationPodName string // Refers to destination container name. attribute_bindings can refer to this field using $out.destination_container_name DestinationContainerName string // Refers to destination pod labels. attribute_bindings can refer to this field using $out.destination_labels DestinationLabels map[string]string // Refers to destination pod namespace. attribute_bindings can refer to this field using $out.destination_namespace DestinationNamespace string // Refers to destination pod service account name. attribute_bindings can refer to this field using $out.destination_service_account_name DestinationServiceAccountName string // Refers to destination pod host ip address. attribute_bindings can refer to this field using $out.destination_host_ip DestinationHostIp net.IP // Refers to the (controlling) owner of the destination pod. Attribute_bindings can refer to this field using $out.destination_owner DestinationOwner string // Refers to the Istio workload identifier for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_uid DestinationWorkloadUid string // Refers to the Istio workload name for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_name DestinationWorkloadName string // Refers to the Istio workload name for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_namespace DestinationWorkloadNamespace string // contains filtered or unexported fields }
Output struct is returned by the attribute producing adapters that handle this template.
OutputTemplate refers to the output from the adapter. It is used inside the attribute_binding section of the config to assign values to the generated attributes using the `$out.<field name of the OutputTemplate>` syntax. Next ID: 33
func (*Output) SetDestinationContainerName ¶
func (*Output) SetDestinationHostIp ¶
func (*Output) SetDestinationLabels ¶
func (*Output) SetDestinationNamespace ¶
func (*Output) SetDestinationOwner ¶
func (*Output) SetDestinationPodIp ¶
func (*Output) SetDestinationPodName ¶
func (*Output) SetDestinationPodUid ¶
func (*Output) SetDestinationServiceAccountName ¶
func (*Output) SetDestinationWorkloadName ¶
func (*Output) SetDestinationWorkloadNamespace ¶
func (*Output) SetDestinationWorkloadUid ¶
func (*Output) SetSourceHostIp ¶
func (*Output) SetSourceLabels ¶
func (*Output) SetSourceNamespace ¶
func (*Output) SetSourceOwner ¶
func (*Output) SetSourcePodIp ¶
func (*Output) SetSourcePodName ¶
func (*Output) SetSourcePodUid ¶
func (*Output) SetSourceServiceAccountName ¶
func (*Output) SetSourceWorkloadName ¶
func (*Output) SetSourceWorkloadNamespace ¶
func (*Output) SetSourceWorkloadUid ¶
type OutputMsg ¶
type OutputMsg struct { // Refers to the source.uid for a pod. This is for TCP use cases where the attribute is not present. // attribute_bindings can refer to this field using $out.source_pod_uid SourcePodUid string `protobuf:"bytes,31,opt,name=source_pod_uid,json=sourcePodUid,proto3" json:"source_pod_uid,omitempty"` // Refers to source pod ip address. attribute_bindings can refer to this field using $out.source_pod_ip SourcePodIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,1,opt,name=source_pod_ip,json=sourcePodIp" json:"source_pod_ip,omitempty"` // Refers to source pod name. attribute_bindings can refer to this field using $out.source_pod_name SourcePodName string `protobuf:"bytes,2,opt,name=source_pod_name,json=sourcePodName,proto3" json:"source_pod_name,omitempty"` // Refers to source pod labels. attribute_bindings can refer to this field using $out.source_labels SourceLabels map[string]string `` /* 178-byte string literal not displayed */ // Refers to source pod namespace. attribute_bindings can refer to this field using $out.source_namespace SourceNamespace string `protobuf:"bytes,4,opt,name=source_namespace,json=sourceNamespace,proto3" json:"source_namespace,omitempty"` // Refers to source pod service account name. attribute_bindings can refer to this field using $out.source_service_account_name SourceServiceAccountName string `` /* 137-byte string literal not displayed */ // Refers to source pod host ip address. attribute_bindings can refer to this field using $out.source_host_ip SourceHostIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,7,opt,name=source_host_ip,json=sourceHostIp" json:"source_host_ip,omitempty"` // Refers to the Istio workload identifier for the source pod. Attribute_bindings can refer to this field using $out.source_workload_uid SourceWorkloadUid string `protobuf:"bytes,22,opt,name=source_workload_uid,json=sourceWorkloadUid,proto3" json:"source_workload_uid,omitempty"` // Refers to the Istio workload name for the source pod. Attribute_bindings can refer to this field using $out.source_workload_name SourceWorkloadName string `protobuf:"bytes,23,opt,name=source_workload_name,json=sourceWorkloadName,proto3" json:"source_workload_name,omitempty"` // Refers to the Istio workload namespace for the source pod. Attribute_bindings can refer to this field using $out.source_workload_namespace SourceWorkloadNamespace string `` /* 133-byte string literal not displayed */ // Refers to the (controlling) owner of the source pod. Attribute_bindings can refer to this field using $out.source_owner SourceOwner string `protobuf:"bytes,25,opt,name=source_owner,json=sourceOwner,proto3" json:"source_owner,omitempty"` // Refers to the destination.uid for a pod. This is for TCP use cases where the attribute is not present. // attribute_bindings can refer to this field using $out.destination_pod_uid DestinationPodUid string `protobuf:"bytes,32,opt,name=destination_pod_uid,json=destinationPodUid,proto3" json:"destination_pod_uid,omitempty"` // Refers to destination pod ip address. attribute_bindings can refer to this field using $out.destination_pod_ip DestinationPodIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,8,opt,name=destination_pod_ip,json=destinationPodIp" json:"destination_pod_ip,omitempty"` // Refers to destination pod name. attribute_bindings can refer to this field using $out.destination_pod_name DestinationPodName string `protobuf:"bytes,9,opt,name=destination_pod_name,json=destinationPodName,proto3" json:"destination_pod_name,omitempty"` // Refers to destination container name. attribute_bindings can refer to this field using $out.destination_container_name DestinationContainerName string `` /* 136-byte string literal not displayed */ // Refers to destination pod labels. attribute_bindings can refer to this field using $out.destination_labels DestinationLabels map[string]string `` /* 194-byte string literal not displayed */ // Refers to destination pod namespace. attribute_bindings can refer to this field using $out.destination_namespace DestinationNamespace string `protobuf:"bytes,11,opt,name=destination_namespace,json=destinationNamespace,proto3" json:"destination_namespace,omitempty"` // Refers to destination pod service account name. attribute_bindings can refer to this field using $out.destination_service_account_name DestinationServiceAccountName string `` /* 153-byte string literal not displayed */ // Refers to destination pod host ip address. attribute_bindings can refer to this field using $out.destination_host_ip DestinationHostIp *istio_policy_v1beta1.IPAddress `protobuf:"bytes,14,opt,name=destination_host_ip,json=destinationHostIp" json:"destination_host_ip,omitempty"` // Refers to the (controlling) owner of the destination pod. Attribute_bindings can refer to this field using $out.destination_owner DestinationOwner string `protobuf:"bytes,26,opt,name=destination_owner,json=destinationOwner,proto3" json:"destination_owner,omitempty"` // Refers to the Istio workload identifier for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_uid DestinationWorkloadUid string `` /* 130-byte string literal not displayed */ // Refers to the Istio workload name for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_name DestinationWorkloadName string `` /* 133-byte string literal not displayed */ // Refers to the Istio workload name for the destination pod. Attribute_bindings can refer to this field using $out.destination_workload_namespace DestinationWorkloadNamespace string `` /* 148-byte string literal not displayed */ }
Contains output payload for 'kubernetes' template.
func (*OutputMsg) Descriptor ¶
func (*OutputMsg) ProtoMessage ¶
func (*OutputMsg) ProtoMessage()
type Type ¶
type Type struct { }
Contains inferred type information about specific instance of 'kubernetes' template. This is passed to infrastructure backends during configuration-time through [InfrastructureBackend.CreateSession][TODO: Link to this fragment].
func (*Type) Descriptor ¶
func (*Type) ProtoMessage ¶
func (*Type) ProtoMessage()