-
Notifications
You must be signed in to change notification settings - Fork 366
/
types.go
136 lines (108 loc) · 3.84 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Copyright 2020 Antrea Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package stats
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// AntreaClusterNetworkPolicyStats is the statistics of a Antrea ClusterNetworkPolicy.
type AntreaClusterNetworkPolicyStats struct {
metav1.TypeMeta
metav1.ObjectMeta
// The traffic stats of the Antrea ClusterNetworkPolicy.
TrafficStats TrafficStats
// The traffic stats of the Antrea ClusterNetworkPolicy rules.
RuleTrafficStats []RuleTrafficStats
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// AntreaClusterNetworkPolicyStatsList is a list of AntreaClusterNetworkPolicyStats.
type AntreaClusterNetworkPolicyStatsList struct {
metav1.TypeMeta
metav1.ListMeta
// List of AntreaClusterNetworkPolicyStats.
Items []AntreaClusterNetworkPolicyStats
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// AntreaNetworkPolicyStats is the statistics of a Antrea NetworkPolicy.
type AntreaNetworkPolicyStats struct {
metav1.TypeMeta
metav1.ObjectMeta
// The traffic stats of the Antrea NetworkPolicy.
TrafficStats TrafficStats
// The traffic stats of the Antrea NetworkPolicy, from rule perspective.
RuleTrafficStats []RuleTrafficStats
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// AntreaNetworkPolicyStatsList is a list of AntreaNetworkPolicyStats.
type AntreaNetworkPolicyStatsList struct {
metav1.TypeMeta
metav1.ListMeta
// List of AntreaNetworkPolicyStats.
Items []AntreaNetworkPolicyStats
}
// PodReference represents a Pod Reference.
type PodReference struct {
// The name of this Pod.
Name string
// The namespace of this Pod.
Namespace string
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// MulticastGroup contains the mapping between multicast group and Pods.
type MulticastGroup struct {
metav1.TypeMeta
metav1.ObjectMeta
// Group is the IP of the multicast group.
Group string
// Pods is the list of Pods that have joined the multicast group.
Pods []PodReference
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// MulticastGroupList is a list of MulticastGroup.
type MulticastGroupList struct {
metav1.TypeMeta
metav1.ListMeta
// List of MulticastGroup.
Items []MulticastGroup
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// NetworkPolicyStats is the statistics of a K8s NetworkPolicy.
type NetworkPolicyStats struct {
metav1.TypeMeta
metav1.ObjectMeta
// The traffic stats of the K8s NetworkPolicy.
TrafficStats TrafficStats
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// NetworkPolicyStatsList is a list of NetworkPolicyStats.
type NetworkPolicyStatsList struct {
metav1.TypeMeta
metav1.ListMeta
// List of NetworkPolicyStats.
Items []NetworkPolicyStats
}
// TrafficStats contains the traffic stats of a NetworkPolicy.
type TrafficStats struct {
// Packets is the packets count hit by the NetworkPolicy.
Packets int64
// Bytes is the bytes count hit by the NetworkPolicy.
Bytes int64
// Sessions is the sessions count hit by the NetworkPolicy.
Sessions int64
}
// RuleTrafficStats contains TrafficStats of single rule inside a NetworkPolicy.
type RuleTrafficStats struct {
Name string
TrafficStats TrafficStats
}