Documentation
¶
Index ¶
- Variables
- func BuildPort(p networkingv1.NetworkPolicyPort) (*ProtocolMatcher, *PortMatcher)
- func BuildPortsFromSlice(npPorts []networkingv1.NetworkPolicyPort) ([]*PortMatcher, []*ProtocolMatcher)
- func BuildTrafficPeersFromEgress(netpol *networkingv1.NetworkPolicy) ([]*TrafficEdge, Directive)
- func BuildTrafficPeersFromIngress(netpol *networkingv1.NetworkPolicy) ([]*TrafficEdge, Directive)
- func Reduce(np *Policy) []*networkingv1.NetworkPolicy
- func ReduceAll(np []*Policy) []*networkingv1.NetworkPolicy
- func ReducePeerMatcher(peer *PeerMatcher) []networkingv1.NetworkPolicyPeer
- func ReducePortProtocol(portMatcher *PortMatcher, protocolMatcher *ProtocolMatcher) []networkingv1.NetworkPolicyPort
- func ReduceRules(isIngress bool, edge *TrafficEdge) ([]networkingv1.NetworkPolicyIngressRule, ...)
- type Blackduck
- type Directive
- type IPMatcher
- type InternalPeer
- type InternalPeerMatcher
- type NetpolServer
- type Peer
- type PeerLocation
- type PeerMatcher
- type Policies
- type Policy
- type PolicySpec
- type PortMatcher
- type ProtocolMatcher
- type StringMatcher
- type Traffic
- type TrafficEdge
- type TrafficMatchType
Constants ¶
This section is empty.
Variables ¶
View Source
var AllSourcesAllDests = &Policy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-all-sources-all-dests", }, Spec: PolicySpec{ Compatibility: []networkingv1.PolicyType{networkingv1.PolicyTypeIngress, networkingv1.PolicyTypeEgress}, TrafficMatcher: EverythingMatcher, Directive: DirectiveAllow, }, }
All/All
View Source
var AllSourcesExternalDests = &Policy{ ObjectMeta: metav1.ObjectMeta{ Name: "all-sources-external-dests", }, Spec: PolicySpec{ Compatibility: []networkingv1.PolicyType{networkingv1.PolicyTypeEgress}, TrafficMatcher: &TrafficEdge{ Type: TrafficMatchTypeAll, Dest: &PeerMatcher{ RelativeLocation: &PeerLocationExternal, }, }, Directive: DirectiveAllow, }, }
All/External
View Source
var AllSourcesInternalDests = &Policy{ ObjectMeta: metav1.ObjectMeta{ Name: "all-sources-internal-dests", }, Spec: PolicySpec{ Compatibility: []networkingv1.PolicyType{networkingv1.PolicyTypeIngress}, TrafficMatcher: &TrafficEdge{ Type: TrafficMatchTypeAll, Dest: &PeerMatcher{ RelativeLocation: &PeerLocationInternal, }, }, Directive: DirectiveAllow, }, }
All/Internal
View Source
var AnthosAllowKubeDNSEgressNetworkPolicy = &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-kube-dns-egress", Namespace: "kube-system", }, Spec: networkingv1.NetworkPolicySpec{ PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "k8s-app": "kube-dns", }, }, Egress: []networkingv1.NetworkPolicyEgressRule{ { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port53}, {Protocol: &udp, Port: &port53}, }, To: []networkingv1.NetworkPolicyPeer{ { IPBlock: &networkingv1.IPBlock{ CIDR: "169.254.169.254/32", }, }, }, }, { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port443}, }, To: []networkingv1.NetworkPolicyPeer{ { IPBlock: &networkingv1.IPBlock{ CIDR: "${APISERVER_IP}/32", }, }, }, }, { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port443}, }, To: []networkingv1.NetworkPolicyPeer{ { IPBlock: &networkingv1.IPBlock{ CIDR: "${GOOGLEAPIS_CIDR}/32", }, }, }, }, { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port80}, }, To: []networkingv1.NetworkPolicyPeer{ { IPBlock: &networkingv1.IPBlock{ CIDR: "169.254.169.254/32", }, }, }, }, { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port988}, }, To: []networkingv1.NetworkPolicyPeer{ { IPBlock: &networkingv1.IPBlock{ CIDR: "127.0.0.1/32", }, }, }, }, }, PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyTypeEgress}, }, }
View Source
var AnthosAllowKubeDNSIngressNetworkPolicy = &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-kube-dns-egress", Namespace: "kube-system", }, Spec: networkingv1.NetworkPolicySpec{ PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "k8s-app": "kube-dns", }, }, Ingress: []networkingv1.NetworkPolicyIngressRule{ { Ports: []networkingv1.NetworkPolicyPort{ {Protocol: &tcp, Port: &port53}, {Protocol: &udp, Port: &port53}, }, From: []networkingv1.NetworkPolicyPeer{ { PodSelector: &metav1.LabelSelector{}, NamespaceSelector: &metav1.LabelSelector{}, }, }, }, }, PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyTypeIngress}, }, }
View Source
var DenyAll = &Policy{ ObjectMeta: metav1.ObjectMeta{ Name: "deny-all", }, Spec: PolicySpec{ Compatibility: []networkingv1.PolicyType{networkingv1.PolicyTypeEgress, networkingv1.PolicyTypeIngress}, TrafficMatcher: EverythingMatcher, Directive: DirectiveDeny, }, }
View Source
var EverythingMatcher = &TrafficEdge{Type: TrafficMatchTypeAll}
EverythingMatcher matches everything
View Source
var NothingMatcher = &TrafficEdge{Type: TrafficMatchTypeAny}
NothingMatcher matches nothing
Functions ¶
func BuildPort ¶
func BuildPort(p networkingv1.NetworkPolicyPort) (*ProtocolMatcher, *PortMatcher)
func BuildPortsFromSlice ¶
func BuildPortsFromSlice(npPorts []networkingv1.NetworkPolicyPort) ([]*PortMatcher, []*ProtocolMatcher)
func BuildTrafficPeersFromEgress ¶
func BuildTrafficPeersFromEgress(netpol *networkingv1.NetworkPolicy) ([]*TrafficEdge, Directive)
func BuildTrafficPeersFromIngress ¶
func BuildTrafficPeersFromIngress(netpol *networkingv1.NetworkPolicy) ([]*TrafficEdge, Directive)
func Reduce ¶
func Reduce(np *Policy) []*networkingv1.NetworkPolicy
func ReduceAll ¶
func ReduceAll(np []*Policy) []*networkingv1.NetworkPolicy
func ReducePeerMatcher ¶
func ReducePeerMatcher(peer *PeerMatcher) []networkingv1.NetworkPolicyPeer
func ReducePortProtocol ¶
func ReducePortProtocol(portMatcher *PortMatcher, protocolMatcher *ProtocolMatcher) []networkingv1.NetworkPolicyPort
func ReduceRules ¶
func ReduceRules(isIngress bool, edge *TrafficEdge) ([]networkingv1.NetworkPolicyIngressRule, []networkingv1.NetworkPolicyEgressRule)
Types ¶
type Blackduck ¶
func (*Blackduck) AllowBDNamespaceCommunication ¶
func (*Blackduck) AllowDNSOnTCP ¶
func (*Blackduck) AllowEgressToKB ¶
type IPMatcher ¶
type IPMatcher struct { Value *string Block *networkingv1.IPBlock }
IPMatcher matches an IP address using a cidr
type InternalPeer ¶
type InternalPeerMatcher ¶
type InternalPeerMatcher struct { Namespace *StringMatcher NamespaceLabels *metav1.LabelSelector Node *StringMatcher NodeLabels *metav1.LabelSelector Pod *StringMatcher PodLabels *metav1.LabelSelector }
func (*InternalPeerMatcher) Matches ¶
func (ipm *InternalPeerMatcher) Matches(i *InternalPeer) bool
type NetpolServer ¶
type NetpolServer struct {
Name string
}
func (*NetpolServer) SimpleDaemonSet ¶
func (ns *NetpolServer) SimpleDaemonSet() *appsv1.DaemonSet
func (*NetpolServer) SimpleService ¶
func (ns *NetpolServer) SimpleService() *v1.Service
type PeerLocation ¶
type PeerLocation string
var ( PeerLocationInternal PeerLocation = "internal" PeerLocationExternal PeerLocation = "external" )
type PeerMatcher ¶
type PeerMatcher struct { IP *IPMatcher RelativeLocation *PeerLocation Internal *InternalPeerMatcher }
func BuildSourceDest ¶
func BuildSourceDest(policyNamespace string, peer networkingv1.NetworkPolicyPeer) *PeerMatcher
func BuildSourceDestsFromSlice ¶
func BuildSourceDestsFromSlice(policyNamespace string, peers []networkingv1.NetworkPolicyPeer) []*PeerMatcher
func (*PeerMatcher) Matches ¶
func (pm *PeerMatcher) Matches(p *Peer) bool
type Policies ¶
type Policies struct {
Policies []*Policy
}
func BuildNetworkPolicy ¶
func BuildNetworkPolicy(policy *networkingv1.NetworkPolicy) *Policies
func BuildPolicies ¶
func BuildPolicies(netpols []*networkingv1.NetworkPolicy) *Policies
type Policy ¶
type Policy struct { metav1.ObjectMeta Spec PolicySpec }
func AllowIngressToNamespace ¶
func BuildTarget ¶
func BuildTarget(netpol *networkingv1.NetworkPolicy) []*Policy
func DenyEgressFromNamespace ¶
type PolicySpec ¶
type PolicySpec struct { Compatibility []networkingv1.PolicyType Priority int TrafficMatcher *TrafficEdge Directive Directive }
type PortMatcher ¶
type PortMatcher struct { Range *struct { Low int High int } Value *intstr.IntOrString }
func NamedPortMatcher ¶
func NamedPortMatcher(port string) *PortMatcher
func NumberedPortMatcher ¶
func NumberedPortMatcher(port int) *PortMatcher
func (*PortMatcher) Matches ¶
func (pm *PortMatcher) Matches(port intstr.IntOrString) bool
type ProtocolMatcher ¶
type StringMatcher ¶
type StringMatcher struct {
Value string
}
func (*StringMatcher) Matches ¶
func (sm *StringMatcher) Matches(v string) bool
type TrafficEdge ¶
type TrafficEdge struct { Type TrafficMatchType Source *PeerMatcher Dest *PeerMatcher Port *PortMatcher Protocol *ProtocolMatcher }
func BuildSourceDestAndPorts ¶
func BuildSourceDestAndPorts(isIngress bool, targetPodSelector metav1.LabelSelector, policyNamespace string, npPorts []networkingv1.NetworkPolicyPort, peers []networkingv1.NetworkPolicyPeer) []*TrafficEdge
func (*TrafficEdge) Matches ¶
func (m *TrafficEdge) Matches(t *Traffic) bool
type TrafficMatchType ¶
type TrafficMatchType string
const ( TrafficMatchTypeAll TrafficMatchType = "all" TrafficMatchTypeAny TrafficMatchType = "any" )
Click to show internal directories.
Click to hide internal directories.