util

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2020 License: MIT Imports: 8 Imported by: 3

Documentation

Overview

Copyright 2018 Microsoft. All rights reserved. MIT License

Copyright 2018 Microsoft. All rights reserved. MIT License

Index

Constants

View Source
const (
	KubeSystemFlag             string = "kube-system"
	KubePodTemplateHashFlag    string = "pod-template-hash"
	KubeAllPodsFlag            string = "all-pod"
	KubeAllNamespacesFlag      string = "all-namespaces"
	KubeAppFlag                string = "k8s-app"
	KubeProxyFlag              string = "kube-proxy"
	KubePodStatusFailedFlag    string = "Failed"
	KubePodStatusSucceededFlag string = "Succeeded"
	KubePodStatusUnknownFlag   string = "Unknown"
)

kubernetes related constants.

View Source
const (
	Iptables                  string = "iptables"
	Ip6tables                 string = "ip6tables"
	IptablesSave              string = "iptables-save"
	IptablesRestore           string = "iptables-restore"
	IptablesConfigFile        string = "/var/log/iptables.conf"
	IptablesTestConfigFile    string = "/var/log/iptables-test.conf"
	IptablesLockFile          string = "/run/xtables.lock"
	IptablesChainCreationFlag string = "-N"
	IptablesInsertionFlag     string = "-I"
	IptablesAppendFlag        string = "-A"
	IptablesDeletionFlag      string = "-D"
	IptablesFlushFlag         string = "-F"
	IptablesCheckFlag         string = "-C"
	IptablesDestroyFlag       string = "-X"
	IptablesJumpFlag          string = "-j"
	IptablesWaitFlag          string = "-w"
	IptablesAccept            string = "ACCEPT"
	IptablesReject            string = "REJECT"
	IptablesDrop              string = "DROP"
	IptablesSrcFlag           string = "src"
	IptablesDstFlag           string = "dst"
	IptablesNotFlag           string = "!"
	IptablesProtFlag          string = "-p"
	IptablesSFlag             string = "-s"
	IptablesDFlag             string = "-d"
	IptablesDstPortFlag       string = "--dport"
	IptablesModuleFlag        string = "-m"
	IptablesSetModuleFlag     string = "set"
	IptablesMatchSetFlag      string = "--match-set"
	IptablesStateModuleFlag   string = "state"
	IptablesStateFlag         string = "--state"
	IptablesMultiportFlag     string = "multiport"
	IptablesMultiDestportFlag string = "--dports"
	IptablesRelatedState      string = "RELATED"
	IptablesEstablishedState  string = "ESTABLISHED"
	IptablesFilterTable       string = "filter"
	IptablesCommentModuleFlag string = "comment"
	IptablesCommentFlag       string = "--comment"
	IptablesAddCommentFlag
	IptablesAzureChain            string = "AZURE-NPM"
	IptablesAzureKubeSystemChain  string = "AZURE-NPM-KUBE-SYSTEM"
	IptablesAzureIngressPortChain string = "AZURE-NPM-INGRESS-PORT"
	IptablesAzureIngressFromChain string = "AZURE-NPM-INGRESS-FROM"
	IptablesAzureEgressPortChain  string = "AZURE-NPM-EGRESS-PORT"
	IptablesAzureEgressToChain    string = "AZURE-NPM-EGRESS-TO"
	IptablesAzureTargetSetsChain  string = "AZURE-NPM-TARGET-SETS"
	IptablesForwardChain          string = "FORWARD"
	IptablesInputChain            string = "INPUT"
	// Below chains exists only for before Azure-NPM:v1.0.27
	// and should be removed after a baking period.
	IptablesAzureIngressFromNsChain  string = "AZURE-NPM-INGRESS-FROM-NS"
	IptablesAzureIngressFromPodChain string = "AZURE-NPM-INGRESS-FROM-POD"
	IptablesAzureEgressToNsChain     string = "AZURE-NPM-EGRESS-TO-NS"
	IptablesAzureEgressToPodChain    string = "AZURE-NPM-EGRESS-TO-POD"
)

iptables related constants.

View Source
const (
	Ipset               string = "ipset"
	IpsetSaveFlag       string = "save"
	IpsetRestoreFlag    string = "restore"
	IpsetConfigFile     string = "/var/log/ipset.conf"
	IpsetTestConfigFile string = "/var/log/ipset-test.conf"
	IpsetCreationFlag   string = "-N"
	IpsetAppendFlag     string = "-A"
	IpsetDeletionFlag   string = "-D"
	IpsetFlushFlag      string = "-F"
	IpsetDestroyFlag    string = "-X"

	IpsetExistFlag     string = "-exist"
	IpsetFileFlag      string = "-file"
	IPsetCheckListFlag string = "list"
	IpsetTestFlag      string = "test"

	IpsetSetListFlag    string = "setlist"
	IpsetNetHashFlag    string = "nethash"
	IpsetIPPortHashFlag string = "hash:ip,port"

	IpsetUDPFlag  string = "udp:"
	IpsetSCTPFlag string = "sctp:"

	AzureNpmFlag   string = "azure-npm"
	AzureNpmPrefix string = "azure-npm-"

	IpsetMaxelemName string = "maxelem"
	IpsetMaxelemNum  string = "4294967295"

	IpsetNomatch string = "nomatch"

	//Prefixes for ipsets
	NamedPortIPSetPrefix string = "namedport:"
)

ipset related constants.

View Source
const (
	AddNamespaceEvent    string = "Add Namespace"
	UpdateNamespaceEvent string = "Update Namespace"
	DeleteNamespaceEvent string = "Delete Namespace"

	AddPodEvent    string = "Add Pod"
	UpdatePodEvent string = "Update Pod"
	DeletePodEvent string = "Delete Pod"

	AddNetworkPolicyEvent    string = "Add network policy"
	UpdateNetworkPolicyEvent string = "Update network policy"
	DeleteNetworkPolicyEvent string = "Delete network policy"

	ErrorMetric  string = "ErrorMetric"
	PackageName  string = "PackageName"
	FunctionName string = "FunctionName"
	ErrorCode    string = "ErrorCode"

	// Default batch size in AI telemetry
	// Defined here https://docs.microsoft.com/en-us/azure/azure-monitor/app/pricing
	BatchSizeInBytes          int = 32768
	BatchIntervalInSecs       int = 30
	RefreshTimeoutInSecs      int = 15
	GetEnvRetryCount          int = 5
	GetEnvRetryWaitTimeInSecs int = 3
	AiInitializeRetryCount    int = 3
	AiInitializeRetryInMin    int = 1
	// These ID represents where did the error log generate from.
	// It's for better query purpose.
	NpmID  int = 1
	IpsmID int = 2
	IptmID int = 3

	DebugMode bool = true

	ErrorValue float64 = 1
)

NPM telemetry constants.

Variables

View Source
var IsNewNwPolicyVerFlag = false

IsNewNwPolicyVerFlag indicates if the current kubernetes version is newer than 1.11 or not

Functions

func AppendMap

func AppendMap(base, new map[string]string) map[string]string

AppendMap appends new to base.

func CompareK8sVer

func CompareK8sVer(firstVer *version.Info, secondVer *version.Info) int

CompareK8sVer compares two k8s versions. returns -1, 0, 1 if firstVer smaller, equals, bigger than secondVer respectively. returns -2 for error.

func DropEmptyFields

func DropEmptyFields(s []string) []string

DropEmptyFields deletes empty entries from a slice.

func Exists

func Exists(filePath string) bool

Exists reports whether the named file or directory exists.

func GetClusterID

func GetClusterID(nodeName string) string

GetClusterID retrieves cluster ID through node name. (Azure-specific)

func GetHashedName

func GetHashedName(name string) string

GetHashedName returns hashed ipset name.

func GetLabelsWithoutOperators

func GetLabelsWithoutOperators(labels []string) []string

GetLabelsWithoutOperators returns labels without operators.

func GetOperatorAndLabel

func GetOperatorAndLabel(label string) (string, string)

GetOperatorAndLabel returns the operator associated with the label and the label without operator.

func Hash

func Hash(s string) string

Hash hashes a string to another string with length <= 32.

func IsNewNwPolicyVer added in v1.0.18

func IsNewNwPolicyVer(ver *version.Info) (bool, error)

IsNewNwPolicyVer checks if the current k8s version >= 1.11, if so, then the networkPolicy should support 'AND' between namespaceSelector & podSelector.

func SetIsNewNwPolicyVerFlag added in v1.0.18

func SetIsNewNwPolicyVerFlag(ver *version.Info) error

SetIsNewNwPolicyVerFlag sets IsNewNwPolicyVerFlag variable depending on version.

func SortMap

func SortMap(m *map[string]string) ([]string, []string)

SortMap sorts the map by key in alphabetical order. Note: even though the map is sorted, accessing it through range will still result in random order.

func UniqueStrSlice

func UniqueStrSlice(s []string) []string

UniqueStrSlice removes duplicate elements from the input string.

Types

This section is empty.

Jump to

Keyboard shortcuts

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