diff --git a/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go b/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go new file mode 100644 index 00000000000..b22742886c3 --- /dev/null +++ b/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Tetragon + +package v1alpha1 + +import ( + "fmt" + + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + ciliumio "github.com/cilium/tetragon/pkg/k8s/apis/cilium.io" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ( + // Tracing Policy (TP) + + // 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" +) + +// +genclient +// +genclient:noStatus +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:singular="tracingpolicy",path="tracingpolicies",scope="Cluster",shortName={} +type TracingPolicy 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={} +type TracingPolicyNamespaced struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` + // Tracing policy specification. + Spec TracingPolicySpec `json:"spec"` +} + +func (tp *TracingPolicyNamespaced) TpSpec() *TracingPolicySpec { + return &tp.Spec +} + +func (tp *TracingPolicyNamespaced) TpInfo() string { + return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) +} + +func (tp *TracingPolicyNamespaced) TpName() string { + return tp.ObjectMeta.Name +} + +func (tp *TracingPolicyNamespaced) TpNamespace() string { + return tp.ObjectMeta.Namespace +} + +type TracingPolicySpec struct { + // +kubebuilder:validation:Optional + // A list of kprobe specs. + KProbes []KProbeSpec `json:"kprobes,omitempty"` + // +kubebuilder:validation:Optional + // A list of tracepoint specs. + Tracepoints []TracepointSpec `json:"tracepoints,omitempty"` + // +kubebuilder:validation:Optional + // Enable loader events + Loader bool `json:"loader,omitempty"` + // +kubebuilder:validation:Optional + // A list of uprobe specs. + UProbes []UProbeSpec `json:"uprobes,omitempty"` + + // +kubebuilder:validation:Optional + // PodSelector selects pods that this policy applies to + PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"` + + // +kubebuilder:validation:Optional + // A list of list specs. + Lists []ListSpec `json:"lists,omitempty"` +} + +func (tp *TracingPolicy) TpName() string { + return tp.ObjectMeta.Name +} + +func (tp *TracingPolicy) TpSpec() *TracingPolicySpec { + return &tp.Spec +} + +func (tp *TracingPolicy) TpInfo() string { + return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +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 +type TracingPolicyNamespacedList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []TracingPolicyNamespaced `json:"items"` +} diff --git a/pkg/k8s/apis/cilium.io/v1alpha1/types.go b/pkg/k8s/apis/cilium.io/v1alpha1/types.go index 0fd7f7bb389..3c424f0e4f5 100644 --- a/pkg/k8s/apis/cilium.io/v1alpha1/types.go +++ b/pkg/k8s/apis/cilium.io/v1alpha1/types.go @@ -3,110 +3,6 @@ package v1alpha1 -import ( - "fmt" - - slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" - ciliumio "github.com/cilium/tetragon/pkg/k8s/apis/cilium.io" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -const ( - // Tracing Policy (TP) - - // 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" -) - -// +genclient -// +genclient:noStatus -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:resource:singular="tracingpolicy",path="tracingpolicies",scope="Cluster",shortName={} -type TracingPolicy 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={} -type TracingPolicyNamespaced struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - // Tracing policy specification. - Spec TracingPolicySpec `json:"spec"` -} - -func (tp *TracingPolicyNamespaced) TpSpec() *TracingPolicySpec { - return &tp.Spec -} - -func (tp *TracingPolicyNamespaced) TpInfo() string { - return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) -} - -func (tp *TracingPolicyNamespaced) TpName() string { - return tp.ObjectMeta.Name -} - -func (tp *TracingPolicyNamespaced) TpNamespace() string { - return tp.ObjectMeta.Namespace -} - -type TracingPolicySpec struct { - // +kubebuilder:validation:Optional - // A list of kprobe specs. - KProbes []KProbeSpec `json:"kprobes,omitempty"` - // +kubebuilder:validation:Optional - // A list of tracepoint specs. - Tracepoints []TracepointSpec `json:"tracepoints,omitempty"` - // +kubebuilder:validation:Optional - // Enable loader events - Loader bool `json:"loader,omitempty"` - // +kubebuilder:validation:Optional - // A list of uprobe specs. - UProbes []UProbeSpec `json:"uprobes,omitempty"` - - // +kubebuilder:validation:Optional - // PodSelector selects pods that this policy applies to - PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"` - - // +kubebuilder:validation:Optional - // A list of list specs. - Lists []ListSpec `json:"lists,omitempty"` -} - -func (tp *TracingPolicy) TpName() string { - return tp.ObjectMeta.Name -} - -func (tp *TracingPolicy) TpSpec() *TracingPolicySpec { - return &tp.Spec -} - -func (tp *TracingPolicy) TpInfo() string { - return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) -} - type KProbeSpec struct { // Name of the function to apply the kprobe spec to. Call string `json:"call"` @@ -312,20 +208,6 @@ type TracepointSpec struct { Selectors []KProbeSelector `json:"selectors"` } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -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 -type TracingPolicyNamespacedList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []TracingPolicyNamespaced `json:"items"` -} - type UProbeSpec struct { // Name of the traced binary Path string `json:"path"` diff --git a/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go b/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go new file mode 100644 index 00000000000..b22742886c3 --- /dev/null +++ b/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/tracing_policy_types.go @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Tetragon + +package v1alpha1 + +import ( + "fmt" + + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + ciliumio "github.com/cilium/tetragon/pkg/k8s/apis/cilium.io" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ( + // Tracing Policy (TP) + + // 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" +) + +// +genclient +// +genclient:noStatus +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:singular="tracingpolicy",path="tracingpolicies",scope="Cluster",shortName={} +type TracingPolicy 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={} +type TracingPolicyNamespaced struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` + // Tracing policy specification. + Spec TracingPolicySpec `json:"spec"` +} + +func (tp *TracingPolicyNamespaced) TpSpec() *TracingPolicySpec { + return &tp.Spec +} + +func (tp *TracingPolicyNamespaced) TpInfo() string { + return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) +} + +func (tp *TracingPolicyNamespaced) TpName() string { + return tp.ObjectMeta.Name +} + +func (tp *TracingPolicyNamespaced) TpNamespace() string { + return tp.ObjectMeta.Namespace +} + +type TracingPolicySpec struct { + // +kubebuilder:validation:Optional + // A list of kprobe specs. + KProbes []KProbeSpec `json:"kprobes,omitempty"` + // +kubebuilder:validation:Optional + // A list of tracepoint specs. + Tracepoints []TracepointSpec `json:"tracepoints,omitempty"` + // +kubebuilder:validation:Optional + // Enable loader events + Loader bool `json:"loader,omitempty"` + // +kubebuilder:validation:Optional + // A list of uprobe specs. + UProbes []UProbeSpec `json:"uprobes,omitempty"` + + // +kubebuilder:validation:Optional + // PodSelector selects pods that this policy applies to + PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"` + + // +kubebuilder:validation:Optional + // A list of list specs. + Lists []ListSpec `json:"lists,omitempty"` +} + +func (tp *TracingPolicy) TpName() string { + return tp.ObjectMeta.Name +} + +func (tp *TracingPolicy) TpSpec() *TracingPolicySpec { + return &tp.Spec +} + +func (tp *TracingPolicy) TpInfo() string { + return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +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 +type TracingPolicyNamespacedList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []TracingPolicyNamespaced `json:"items"` +} diff --git a/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/types.go b/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/types.go index 0fd7f7bb389..3c424f0e4f5 100644 --- a/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/types.go +++ b/vendor/github.com/cilium/tetragon/pkg/k8s/apis/cilium.io/v1alpha1/types.go @@ -3,110 +3,6 @@ package v1alpha1 -import ( - "fmt" - - slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" - ciliumio "github.com/cilium/tetragon/pkg/k8s/apis/cilium.io" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -const ( - // Tracing Policy (TP) - - // 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" -) - -// +genclient -// +genclient:noStatus -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:resource:singular="tracingpolicy",path="tracingpolicies",scope="Cluster",shortName={} -type TracingPolicy 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={} -type TracingPolicyNamespaced struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - // Tracing policy specification. - Spec TracingPolicySpec `json:"spec"` -} - -func (tp *TracingPolicyNamespaced) TpSpec() *TracingPolicySpec { - return &tp.Spec -} - -func (tp *TracingPolicyNamespaced) TpInfo() string { - return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) -} - -func (tp *TracingPolicyNamespaced) TpName() string { - return tp.ObjectMeta.Name -} - -func (tp *TracingPolicyNamespaced) TpNamespace() string { - return tp.ObjectMeta.Namespace -} - -type TracingPolicySpec struct { - // +kubebuilder:validation:Optional - // A list of kprobe specs. - KProbes []KProbeSpec `json:"kprobes,omitempty"` - // +kubebuilder:validation:Optional - // A list of tracepoint specs. - Tracepoints []TracepointSpec `json:"tracepoints,omitempty"` - // +kubebuilder:validation:Optional - // Enable loader events - Loader bool `json:"loader,omitempty"` - // +kubebuilder:validation:Optional - // A list of uprobe specs. - UProbes []UProbeSpec `json:"uprobes,omitempty"` - - // +kubebuilder:validation:Optional - // PodSelector selects pods that this policy applies to - PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"` - - // +kubebuilder:validation:Optional - // A list of list specs. - Lists []ListSpec `json:"lists,omitempty"` -} - -func (tp *TracingPolicy) TpName() string { - return tp.ObjectMeta.Name -} - -func (tp *TracingPolicy) TpSpec() *TracingPolicySpec { - return &tp.Spec -} - -func (tp *TracingPolicy) TpInfo() string { - return fmt.Sprintf("%s (object:%d/%s) (type:%s/%s)", tp.ObjectMeta.Name, tp.ObjectMeta.Generation, tp.ObjectMeta.UID, tp.TypeMeta.Kind, tp.TypeMeta.APIVersion) -} - type KProbeSpec struct { // Name of the function to apply the kprobe spec to. Call string `json:"call"` @@ -312,20 +208,6 @@ type TracepointSpec struct { Selectors []KProbeSelector `json:"selectors"` } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -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 -type TracingPolicyNamespacedList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []TracingPolicyNamespaced `json:"items"` -} - type UProbeSpec struct { // Name of the traced binary Path string `json:"path"`