Documentation ¶
Index ¶
- Constants
- Variables
- type IPSet
- type IPSetManager
- func (iMgr *IPSetManager) AddReference(setName, referenceName string, referenceType ReferenceType) error
- func (iMgr *IPSetManager) AddToList(listMetadata *IPSetMetadata, setMetadatas []*IPSetMetadata) error
- func (iMgr *IPSetManager) AddToSet(addToSets []*IPSetMetadata, ip, podKey string) error
- func (iMgr *IPSetManager) ApplyIPSets(networkID string) error
- func (iMgr *IPSetManager) CreateIPSet(setMetadata *IPSetMetadata)
- func (iMgr *IPSetManager) DeleteIPSet(name string)
- func (iMgr *IPSetManager) DeleteReference(setName, referenceName string, referenceType ReferenceType) error
- func (iMgr *IPSetManager) GetIPSet(name string) *IPSet
- func (iMgr *IPSetManager) GetIPsFromSelectorIPSets(setList map[string]struct{}) (map[string]struct{}, error)
- func (iMgr *IPSetManager) GetSelectorReferencesBySet(setName string) (map[string]struct{}, error)
- func (iMgr *IPSetManager) RemoveFromList(listMetadata *IPSetMetadata, setMetadatas []*IPSetMetadata) error
- func (iMgr *IPSetManager) RemoveFromSet(removeFromSets []*IPSetMetadata, ip, podKey string) error
- func (iMgr *IPSetManager) ResetIPSets() error
- type IPSetManagerCfg
- type IPSetMetadata
- type IPSetMode
- type ReferenceType
- type SetKind
- type SetProperties
- type SetType
- type TranslatedIPSet
Constants ¶
const ( // Unknown SetType UnknownType SetType = 0 // NameSpace IPSet is created to hold // ips of pods in a given NameSapce NameSpace SetType = 1 // KeyLabelOfNameSpace IPSet is a list kind ipset // with members as ipsets of namespace with this Label Key KeyLabelOfNameSpace SetType = 2 // KeyValueLabelOfNameSpace IPSet is a list kind ipset // with members as ipsets of namespace with this Label KeyValueLabelOfNameSpace SetType = 3 // KeyLabelOfPod IPSet contains IPs of Pods with this Label Key KeyLabelOfPod SetType = 4 // KeyValueLabelOfPod IPSet contains IPs of Pods with this Label KeyValueLabelOfPod SetType = 5 // NamedPorts IPSets contains a given namedport NamedPorts SetType = 6 // NestedLabelOfPod is derived for multivalue matchexpressions NestedLabelOfPod SetType = 7 // CIDRBlocks holds CIDR blocks CIDRBlocks SetType = 8 // Unknown const for unknown string Unknown string = "unknown" )
Variables ¶
var ( // ErrIPSetInvalidKind is returned when IPSet kind is invalid ErrIPSetInvalidKind = errors.New("invalid IPSet Kind") )
Functions ¶
This section is empty.
Types ¶
type IPSet ¶
type IPSet struct { Name string HashedName string // SetProperties embedding set properties SetProperties // IpPodKey is used for setMaps to store Ips and ports as keys // and podKey as value IPPodKey map[string]string // This is used for listMaps to store child IP Sets MemberIPSets map[string]*IPSet // Using a map to emulate set and value as struct{} for // minimal memory consumption // SelectorReference holds networkpolicy names where this IPSet // is being used in PodSelector and NameSpace SelectorReference map[string]struct{} // NetPolReference holds networkpolicy names where this IPSet // is being referred as part of rules NetPolReference map[string]struct{} // contains filtered or unexported fields }
func NewIPSet ¶
func NewIPSet(setMetadata *IPSetMetadata) *IPSet
func (*IPSet) GetSetContents ¶
func (*IPSet) ShallowCompare ¶
ShallowCompare check if the properties of IPSets are same
type IPSetManager ¶
func NewIPSetManager ¶
func NewIPSetManager(iMgrCfg *IPSetManagerCfg, ioShim *common.IOShim) *IPSetManager
func (*IPSetManager) AddReference ¶
func (iMgr *IPSetManager) AddReference(setName, referenceName string, referenceType ReferenceType) error
AddReference takes in the prefixed setname and adds relevant reference
func (*IPSetManager) AddToList ¶ added in v1.4.13
func (iMgr *IPSetManager) AddToList(listMetadata *IPSetMetadata, setMetadatas []*IPSetMetadata) error
func (*IPSetManager) AddToSet ¶ added in v1.4.13
func (iMgr *IPSetManager) AddToSet(addToSets []*IPSetMetadata, ip, podKey string) error
func (*IPSetManager) ApplyIPSets ¶
func (iMgr *IPSetManager) ApplyIPSets(networkID string) error
func (*IPSetManager) CreateIPSet ¶ added in v1.4.13
func (iMgr *IPSetManager) CreateIPSet(setMetadata *IPSetMetadata)
func (*IPSetManager) DeleteIPSet ¶
func (iMgr *IPSetManager) DeleteIPSet(name string)
DeleteIPSet expects the prefixed ipset name
func (*IPSetManager) DeleteReference ¶
func (iMgr *IPSetManager) DeleteReference(setName, referenceName string, referenceType ReferenceType) error
DeleteReference takes in the prefixed setname and removes relevant reference
func (*IPSetManager) GetIPSet ¶
func (iMgr *IPSetManager) GetIPSet(name string) *IPSet
GetIPSet needs the prefixed ipset name
func (*IPSetManager) GetIPsFromSelectorIPSets ¶ added in v1.4.13
func (iMgr *IPSetManager) GetIPsFromSelectorIPSets(setList map[string]struct{}) (map[string]struct{}, error)
GetIPsFromSelectorIPSets will take in a map of prefixedSetNames and return an intersection of IPs
func (*IPSetManager) GetSelectorReferencesBySet ¶ added in v1.4.13
func (iMgr *IPSetManager) GetSelectorReferencesBySet(setName string) (map[string]struct{}, error)
func (*IPSetManager) RemoveFromList ¶
func (iMgr *IPSetManager) RemoveFromList(listMetadata *IPSetMetadata, setMetadatas []*IPSetMetadata) error
func (*IPSetManager) RemoveFromSet ¶ added in v1.4.13
func (iMgr *IPSetManager) RemoveFromSet(removeFromSets []*IPSetMetadata, ip, podKey string) error
func (*IPSetManager) ResetIPSets ¶
func (iMgr *IPSetManager) ResetIPSets() error
type IPSetManagerCfg ¶
type IPSetMetadata ¶
func NewIPSetMetadata ¶
func NewIPSetMetadata(name string, setType SetType) *IPSetMetadata
NewIPSetMetadata is used for controllers to send in skeleton ipsets to DP
func (*IPSetMetadata) GetPrefixName ¶
func (setMetadata *IPSetMetadata) GetPrefixName() string
type ReferenceType ¶
type ReferenceType string
ReferenceType specifies the kind of reference for an IPSet
const ( SelectorType ReferenceType = "Selector" NetPolType ReferenceType = "NetPol" )
Possible ReferenceTypes
type SetProperties ¶
type TranslatedIPSet ¶
type TranslatedIPSet struct { Metadata *IPSetMetadata // Members holds member ipset names for NestedLabelOfPod and ip address ranges // for CIDRBlocks IPSet Members []string }
TranslatedIPSet is created by translation engine and provides IPSets used in network policy. Only 2 types of IPSets are generated with members: 1. CIDRBlocks IPSet 2. NestedLabelOfPod IPSet from multi value labels Members field holds member ipset names for NestedLabelOfPod and ip address ranges for CIDRBlocks IPSet