v1alpha1

package
v0.8.20 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package,register +groupName=cilium.io

Index

Constants

View Source
const (
	// CustomResourceDefinitionSchemaVersion is semver-conformant version of CRD schema
	// Used to determine if CRD needs to be updated in cluster
	//
	// Developers: Bump patch for each change in the CRD schema.
	CustomResourceDefinitionSchemaVersion = "1.3.4"

	CRDVersion = "v1alpha1"

	// TPCRDName is the full name of the TracingPolicy CRD.
	TPCRDName = TPKindDefinition + "/" + CRDVersion

	// TPNamespacedCRDName is the full name of the TracingPolicy CRD.
	TPNamespacedCRDName = TPNamespacedKindDefinition + "/" + CRDVersion
)
View Source
const (

	// TPPluralName is the plural name of Cilium Tracing Policy
	TPPluralName = "tracingpolicies"

	// TPKindDefinition is the kind name of Cilium Tracing Policy
	TPKindDefinition = "TracingPolicy"

	// TPName is the full name of Cilium Egress NAT Policy
	TPName = TPPluralName + "." + ciliumio.GroupName

	// TPNamespacedPluralName is the plural name of Cilium Tracing Policy
	TPNamespacedPluralName = "tracingpoliciesnamespaced"

	// TPNamespacedName
	TPNamespacedName = TPNamespacedPluralName + "." + ciliumio.GroupName

	// TPKindDefinition is the kind name of Cilium Tracing Policy
	TPNamespacedKindDefinition = "TracingPolicyNamespaced"
)

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	AddToScheme = localSchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: ciliumio.GroupName, Version: CRDVersion}

SchemeGroupVersion is group version used to register these objects

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ActionSelector

type ActionSelector struct {
	// +kubebuilder:validation:Enum=Post;FollowFD;UnfollowFD;Sigkill;CopyFD;Override;GetUrl;DnsLookup
	// Action to execute.
	Action string `json:"action"`
	// +kubebuilder:validation:Optional
	// An arg index for the fd for fdInstall action
	ArgFd uint32 `json:"argFd"`
	// +kubebuilder:validation:Optional
	// An arg index for the filename for fdInstall action
	ArgName uint32 `json:"argName"`
	// +kubebuilder:validation:Optional
	// A URL for the getUrl action
	ArgUrl string `json:"argUrl"`
	// +kubebuilder:validation:Optional
	// A FQDN to lookup for the dnsLookup action
	ArgFqdn string `json:"argFqdn"`
	// +kubebuilder:validation:Optional
	// error value for override action
	ArgError int32 `json:"argError"`
}

func (*ActionSelector) DeepCopy

func (in *ActionSelector) DeepCopy() *ActionSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSelector.

func (*ActionSelector) DeepCopyInto

func (in *ActionSelector) DeepCopyInto(out *ActionSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArgSelector

type ArgSelector struct {
	// +kubebuilder:validation:Minimum=0
	// Position of the argument to apply fhe filter to.
	Index uint32 `json:"index"`
	// +kubebuilder:validation:Enum=Equal;NotEqual;Prefix;Postfix
	// Filter operation.
	Operator string `json:"operator"`
	// Value to compare the argument against.
	Values []string `json:"values"`
}

func (*ArgSelector) DeepCopy

func (in *ArgSelector) DeepCopy() *ArgSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgSelector.

func (*ArgSelector) DeepCopyInto

func (in *ArgSelector) DeepCopyInto(out *ArgSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BinarySelector

type BinarySelector struct {
	// +kubebuilder:validation:Enum=In;NotIn
	// Filter operation.
	Operator string `json:"operator"`
	// Value to compare the argument against.
	Values []string `json:"values"`
}

func (*BinarySelector) DeepCopy

func (in *BinarySelector) DeepCopy() *BinarySelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BinarySelector.

func (*BinarySelector) DeepCopyInto

func (in *BinarySelector) DeepCopyInto(out *BinarySelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CapabilitiesSelector

type CapabilitiesSelector struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=Effective;Inheritable;Permitted
	// +kubebuilder:default=Effective
	// Type of capabilities
	Type string `json:"type"`
	// +kubebuilder:validation:Enum=In;NotIn
	// Namespace selector operator.
	Operator string `json:"operator"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Indicates whether these caps are namespace caps.
	IsNamespaceCapability bool `json:"isNamespaceCapability"`
	// Capabilities to match.
	Values []string `json:"values"`
}

func (*CapabilitiesSelector) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CapabilitiesSelector.

func (*CapabilitiesSelector) DeepCopyInto

func (in *CapabilitiesSelector) DeepCopyInto(out *CapabilitiesSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KProbeArg

type KProbeArg struct {
	// +kubebuilder:validation:Minimum=0
	// Position of the argument.
	Index uint32 `json:"index"`
	// +kubebuilder:validation:Enum=int;uint32;int32;uint64;int64;char_buf;char_iovec;size_t;skb;sock;string;fd;file;filename;path;nop;bpf_attr;perf_event;bpf_map;user_namespace;capability;
	// Argument type.
	Type string `json:"type"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// Specifies the position of the corresponding size argument for this argument.
	// This field is used only for char_buf and char_iovec types.
	SizeArgIndex uint32 `json:"sizeArgIndex"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// This field is used only for char_buf and char_iovec types.
	ReturnCopy bool `json:"returnCopy"`
}

func (*KProbeArg) DeepCopy

func (in *KProbeArg) DeepCopy() *KProbeArg

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KProbeArg.

func (*KProbeArg) DeepCopyInto

func (in *KProbeArg) DeepCopyInto(out *KProbeArg)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KProbeSelector

type KProbeSelector struct {
	// +kubebuilder:validation:Optional
	// A list of process ID filters. MatchPIDs are ANDed.
	MatchPIDs []PIDSelector `json:"matchPIDs"`
	// +kubebuilder:validation:Optional
	// A list of argument filters. MatchArgs are ANDed.
	MatchArgs []ArgSelector `json:"matchArgs"`
	// +kubebuilder:validation:Optional
	// A list of actions to execute when this selector matches
	MatchActions []ActionSelector `json:"matchActions"`
	// +kubebuilder:validation:Optional
	// A list of argument filters. MatchArgs are ANDed.
	MatchReturnArgs []ArgSelector `json:"matchReturnArgs"`
	// +kubebuilder:validation:Optional
	// A list of binary exec name filters.
	MatchBinaries []BinarySelector `json:"matchBinaries"`
	// +kubebuilder:validation:Optional
	// A list of namespaces and IDs
	MatchNamespaces []NamespaceSelector `json:"matchNamespaces"`
	// +kubebuilder:validation:Optional
	// IDs for namespace changes
	MatchNamespaceChanges []NamespaceChangesSelector `json:"matchNamespaceChanges"`
	// +kubebuilder:validation:Optional
	// A list of capabilities and IDs
	MatchCapabilities []CapabilitiesSelector `json:"matchCapabilities"`
	// +kubebuilder:validation:Optional
	// IDs for capabilities changes
	MatchCapabilityChanges []CapabilitiesSelector `json:"matchCapabilityChanges"`
}

KProbeSelector selects function calls for kprobe based on PIDs and function arguments. The results of MatchPIDs and MatchArgs are ANDed.

func (*KProbeSelector) DeepCopy

func (in *KProbeSelector) DeepCopy() *KProbeSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KProbeSelector.

func (*KProbeSelector) DeepCopyInto

func (in *KProbeSelector) DeepCopyInto(out *KProbeSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KProbeSpec

type KProbeSpec struct {
	// Name of the function to apply the kprobe spec to.
	Call string `json:"call"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Indicates whether to collect return value of the traced function.
	Return bool `json:"return"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// Indicates whether the traced function is a syscall.
	Syscall bool `json:"syscall"`
	// +kubebuilder:validation:Optional
	// A list of function arguments to include in the trace output.
	Args []KProbeArg `json:"args"`
	// +kubebuilder:validation:Optional
	// A return argument to include in the trace output.
	ReturnArg KProbeArg `json:"returnArg"`
	// +kubebuilder:validation:Optional
	// Selectors to apply before producing trace output. Selectors are ORed.
	Selectors []KProbeSelector `json:"selectors"`
}

func (*KProbeSpec) DeepCopy

func (in *KProbeSpec) DeepCopy() *KProbeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KProbeSpec.

func (*KProbeSpec) DeepCopyInto

func (in *KProbeSpec) DeepCopyInto(out *KProbeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceChangesSelector

type NamespaceChangesSelector struct {
	// +kubebuilder:validation:Enum=In;NotIn
	// Namespace selector operator.
	Operator string `json:"operator"`
	// Namespace types (e.g., Mnt, Pid) to match.
	Values []string `json:"values"`
}

func (*NamespaceChangesSelector) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceChangesSelector.

func (*NamespaceChangesSelector) DeepCopyInto

func (in *NamespaceChangesSelector) DeepCopyInto(out *NamespaceChangesSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceSelector

type NamespaceSelector struct {
	// +kubebuilder:validation:Enum=Uts;Ipc;Mnt;Pid;PidForChildren;Net;Time;TimeForChildren;Cgroup;User
	// Namespace selector name.
	Namespace string `json:"namespace"`
	// +kubebuilder:validation:Enum=In;NotIn
	// Namespace selector operator.
	Operator string `json:"operator"`
	// Namespace IDs (or host_ns for host namespace) of namespaces to match.
	Values []string `json:"values"`
}

func (*NamespaceSelector) DeepCopy

func (in *NamespaceSelector) DeepCopy() *NamespaceSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSelector.

func (*NamespaceSelector) DeepCopyInto

func (in *NamespaceSelector) DeepCopyInto(out *NamespaceSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PIDSelector

type PIDSelector struct {
	// +kubebuilder:validation:Enum=In;NotIn
	// PID selector operator.
	Operator string `json:"operator"`
	// Process IDs to match.
	Values []uint32 `json:"values"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Indicates whether PIDs are namespace PIDs.
	IsNamespacePID bool `json:"isNamespacePID"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Matches any descendant processes of the matching PIDs.
	FollowForks bool `json:"followForks"`
}

func (*PIDSelector) DeepCopy

func (in *PIDSelector) DeepCopy() *PIDSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PIDSelector.

func (*PIDSelector) DeepCopyInto

func (in *PIDSelector) DeepCopyInto(out *PIDSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TracepointSpec

type TracepointSpec struct {
	// Tracepoint subsystem
	Subsystem string `json:"subsystem"`
	// Tracepoint event
	Event string `json:"event"`
	// +kubebuilder:validation:Optional
	// A list of function arguments to include in the trace output.
	Args []KProbeArg `json:"args"`
	// +kubebuilder:validation:Optional
	// Selectors to apply before producing trace output. Selectors are ORed.
	Selectors []KProbeSelector `json:"selectors"`
}

func (*TracepointSpec) DeepCopy

func (in *TracepointSpec) DeepCopy() *TracepointSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointSpec.

func (*TracepointSpec) DeepCopyInto

func (in *TracepointSpec) DeepCopyInto(out *TracepointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TracingPolicy

type TracingPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Tracing policy specification.
	Spec TracingPolicySpec `json:"spec"`
}

+genclient +genclient:noStatus +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:singular="tracingpolicy",path="tracingpolicies",scope="Cluster",shortName={}

func (*TracingPolicy) DeepCopy

func (in *TracingPolicy) DeepCopy() *TracingPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingPolicy.

func (*TracingPolicy) DeepCopyInto

func (in *TracingPolicy) DeepCopyInto(out *TracingPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TracingPolicy) DeepCopyObject

func (in *TracingPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TracingPolicy) TpInfo

func (tp *TracingPolicy) TpInfo() string

func (*TracingPolicy) TpName added in v0.8.18

func (tp *TracingPolicy) TpName() string

func (*TracingPolicy) TpSpec

func (tp *TracingPolicy) TpSpec() *TracingPolicySpec

type TracingPolicyList

type TracingPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []TracingPolicy `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*TracingPolicyList) DeepCopy

func (in *TracingPolicyList) DeepCopy() *TracingPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingPolicyList.

func (*TracingPolicyList) DeepCopyInto

func (in *TracingPolicyList) DeepCopyInto(out *TracingPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TracingPolicyList) DeepCopyObject

func (in *TracingPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TracingPolicyNamespaced added in v0.8.20

type TracingPolicyNamespaced struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Tracing policy specification.
	Spec TracingPolicySpec `json:"spec"`
}

+genclient +genclient:noStatus +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:singular="tracingpolicynamespaced",path="tracingpoliciesnamespaced",scope="Namespaced",shortName={}

func (*TracingPolicyNamespaced) DeepCopy added in v0.8.20

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingPolicyNamespaced.

func (*TracingPolicyNamespaced) DeepCopyInto added in v0.8.20

func (in *TracingPolicyNamespaced) DeepCopyInto(out *TracingPolicyNamespaced)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TracingPolicyNamespaced) DeepCopyObject added in v0.8.20

func (in *TracingPolicyNamespaced) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TracingPolicyNamespaced) TpInfo added in v0.8.20

func (tp *TracingPolicyNamespaced) TpInfo() string

func (*TracingPolicyNamespaced) TpName added in v0.8.20

func (tp *TracingPolicyNamespaced) TpName() string

func (*TracingPolicyNamespaced) TpNamespace added in v0.8.20

func (tp *TracingPolicyNamespaced) TpNamespace() string

func (*TracingPolicyNamespaced) TpSpec added in v0.8.20

type TracingPolicyNamespacedList added in v0.8.20

type TracingPolicyNamespacedList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []TracingPolicyNamespaced `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*TracingPolicyNamespacedList) DeepCopy added in v0.8.20

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingPolicyNamespacedList.

func (*TracingPolicyNamespacedList) DeepCopyInto added in v0.8.20

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TracingPolicyNamespacedList) DeepCopyObject added in v0.8.20

func (in *TracingPolicyNamespacedList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TracingPolicySpec

type TracingPolicySpec struct {
	// +kubebuilder:validation:Optional
	// A list of kprobe specs.
	KProbes []KProbeSpec `json:"kprobes"`
	// +kubebuilder:validation:Optional
	// A list of tracepoint specs.
	Tracepoints []TracepointSpec `json:"tracepoints"`
	// +kubebuilder:validation:Optional
	// Enable loader events
	Loader bool `json:"loader"`
}

func (*TracingPolicySpec) DeepCopy

func (in *TracingPolicySpec) DeepCopy() *TracingPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingPolicySpec.

func (*TracingPolicySpec) DeepCopyInto

func (in *TracingPolicySpec) DeepCopyInto(out *TracingPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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