adapter_template_kubernetes

package
v0.0.0-...-4638b96 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

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

View Source
const TemplateName = "kubernetes"

Fully qualified name of the template

Variables

View Source
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) MarshalTo

func (m *InstanceMsg) MarshalTo(dAtA []byte) (int, 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) MarshalTo

func (m *InstanceParam) MarshalTo(dAtA []byte) (int, 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 NewOutput

func NewOutput() *Output

func (*Output) SetDestinationContainerName

func (o *Output) SetDestinationContainerName(val string)

func (*Output) SetDestinationHostIp

func (o *Output) SetDestinationHostIp(val net.IP)

func (*Output) SetDestinationLabels

func (o *Output) SetDestinationLabels(val map[string]string)

func (*Output) SetDestinationNamespace

func (o *Output) SetDestinationNamespace(val string)

func (*Output) SetDestinationOwner

func (o *Output) SetDestinationOwner(val string)

func (*Output) SetDestinationPodIp

func (o *Output) SetDestinationPodIp(val net.IP)

func (*Output) SetDestinationPodName

func (o *Output) SetDestinationPodName(val string)

func (*Output) SetDestinationPodUid

func (o *Output) SetDestinationPodUid(val string)

func (*Output) SetDestinationServiceAccountName

func (o *Output) SetDestinationServiceAccountName(val string)

func (*Output) SetDestinationWorkloadName

func (o *Output) SetDestinationWorkloadName(val string)

func (*Output) SetDestinationWorkloadNamespace

func (o *Output) SetDestinationWorkloadNamespace(val string)

func (*Output) SetDestinationWorkloadUid

func (o *Output) SetDestinationWorkloadUid(val string)

func (*Output) SetSourceHostIp

func (o *Output) SetSourceHostIp(val net.IP)

func (*Output) SetSourceLabels

func (o *Output) SetSourceLabels(val map[string]string)

func (*Output) SetSourceNamespace

func (o *Output) SetSourceNamespace(val string)

func (*Output) SetSourceOwner

func (o *Output) SetSourceOwner(val string)

func (*Output) SetSourcePodIp

func (o *Output) SetSourcePodIp(val net.IP)

func (*Output) SetSourcePodName

func (o *Output) SetSourcePodName(val string)

func (*Output) SetSourcePodUid

func (o *Output) SetSourcePodUid(val string)

func (*Output) SetSourceServiceAccountName

func (o *Output) SetSourceServiceAccountName(val string)

func (*Output) SetSourceWorkloadName

func (o *Output) SetSourceWorkloadName(val string)

func (*Output) SetSourceWorkloadNamespace

func (o *Output) SetSourceWorkloadNamespace(val string)

func (*Output) SetSourceWorkloadUid

func (o *Output) SetSourceWorkloadUid(val string)

func (*Output) WasSet

func (o *Output) WasSet(field string) bool

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) Descriptor() ([]byte, []int)

func (*OutputMsg) Marshal

func (m *OutputMsg) Marshal() (dAtA []byte, err error)

func (*OutputMsg) MarshalTo

func (m *OutputMsg) MarshalTo(dAtA []byte) (int, error)

func (*OutputMsg) ProtoMessage

func (*OutputMsg) ProtoMessage()

func (*OutputMsg) Reset

func (m *OutputMsg) Reset()

func (*OutputMsg) Size

func (m *OutputMsg) Size() (n int)

func (*OutputMsg) String

func (this *OutputMsg) String() string

func (*OutputMsg) Unmarshal

func (m *OutputMsg) Unmarshal(dAtA []byte) error

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) Descriptor() ([]byte, []int)

func (*Type) Marshal

func (m *Type) Marshal() (dAtA []byte, err error)

func (*Type) MarshalTo

func (m *Type) MarshalTo(dAtA []byte) (int, error)

func (*Type) ProtoMessage

func (*Type) ProtoMessage()

func (*Type) Reset

func (m *Type) Reset()

func (*Type) Size

func (m *Type) Size() (n int)

func (*Type) String

func (this *Type) String() string

func (*Type) Unmarshal

func (m *Type) Unmarshal(dAtA []byte) error

Jump to

Keyboard shortcuts

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