Documentation ¶
Index ¶
- Variables
- func GetAgentFeatures() (featuregate.FeatureGate, error)
- func GetControllerFeatures() (featuregate.FeatureGate, error)
- func GetTransportInterface(data *TestData) (string, error)
- func IsDirEmpty(name string) (bool, error)
- type ClusterInfo
- type ClusterNode
- type Connectivity
- type ConnectivityTable
- func (ct *ConnectivityTable) Compare(other *ConnectivityTable) *TruthTable
- func (ct *ConnectivityTable) Get(from string, to string) PodConnectivityMark
- func (ct *ConnectivityTable) PrettyPrint(indent string) string
- func (ct *ConnectivityTable) Set(from string, to string, value PodConnectivityMark)
- func (ct *ConnectivityTable) SetAllFrom(from string, value PodConnectivityMark)
- func (ct *ConnectivityTable) SetAllTo(to string, value PodConnectivityMark)
- type CustomPod
- type CustomProbe
- type KubernetesUtils
- func (k *KubernetesUtils) Bootstrap(namespaces map[string]string, pods []string) (*map[string][]string, error)
- func (k *KubernetesUtils) CleanGroups(namespace string) error
- func (k *KubernetesUtils) Cleanup(namespaces map[string]string)
- func (k *KubernetesUtils) CreateGroup(namespace, name string, pSelector, nSelector *metav1.LabelSelector, ...) (*crdv1alpha3.Group, error)
- func (k *KubernetesUtils) CreateOrUpdateV1Alpha3Group(g *crdv1alpha3.Group) (*crdv1alpha3.Group, error)
- func (k *KubernetesUtils) DeleteV1Alpha3Group(namespace, name string) error
- func (k *KubernetesUtils) GetCG(name string) (*crdv1alpha2.ClusterGroup, error)
- func (k *KubernetesUtils) GetGroup(namespace, name string) (*crdv1alpha3.Group, error)
- func (k *KubernetesUtils) GetPodByLabel(ns string, name string) (*v1.Pod, error)
- func (k *KubernetesUtils) GetPodsByLabel(ns string, key string, val string) ([]v1.Pod, error)
- func (k *KubernetesUtils) LabelPod(ns, name, key, value string) (*v1.Pod, error)
- func (k *KubernetesUtils) Probe(ns1, pod1, ns2, pod2 string, port int32, protocol utils.AntreaPolicyProtocol) (PodConnectivityMark, error)
- func (k *KubernetesUtils) ProbeAddr(ns, podLabelKey, podLabelValue, dstAddr string, port int32, ...) (PodConnectivityMark, error)
- func (k *KubernetesUtils) Validate(allPods []Pod, reachability *Reachability, ports []int32, ...)
- type Pod
- type PodBuilder
- func (b *PodBuilder) Create(data *TestData) error
- func (b *PodBuilder) InHostNetwork() *PodBuilder
- func (b *PodBuilder) OnNode(nodeName string) *PodBuilder
- func (b *PodBuilder) Privileged() *PodBuilder
- func (b *PodBuilder) WithAnnotations(annotations map[string]string) *PodBuilder
- func (b *PodBuilder) WithArgs(args []string) *PodBuilder
- func (b *PodBuilder) WithCommand(command []string) *PodBuilder
- func (b *PodBuilder) WithContainerName(ctrName string) *PodBuilder
- func (b *PodBuilder) WithEnv(env []corev1.EnvVar) *PodBuilder
- func (b *PodBuilder) WithHostNetwork(v bool) *PodBuilder
- func (b *PodBuilder) WithLabels(labels map[string]string) *PodBuilder
- func (b *PodBuilder) WithMutateFunc(f func(*corev1.Pod)) *PodBuilder
- func (b *PodBuilder) WithPorts(ports []corev1.ContainerPort) *PodBuilder
- func (b *PodBuilder) WithResources(ResourceRequests, ResourceLimits corev1.ResourceList) *PodBuilder
- func (b *PodBuilder) WithServiceAccountName(name string) *PodBuilder
- type PodCondition
- type PodConnectivityMark
- type PodIPs
- type Reachability
- func (r *Reachability) Expect(pod1 Pod, pod2 Pod, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectAllEgress(pod Pod, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectAllIngress(pod Pod, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectAllSelfNamespace(connectivity PodConnectivityMark)
- func (r *Reachability) ExpectConn(spec *Connectivity)
- func (r *Reachability) ExpectEgressToNamespace(pod Pod, namespace string, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectIngressFromNamespace(pod Pod, namespace string, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectSelf(allPods []Pod, connectivity PodConnectivityMark)
- func (r *Reachability) ExpectSelfNamespace(namespace string, connectivity PodConnectivityMark)
- func (r *Reachability) Observe(pod1 Pod, pod2 Pod, connectivity PodConnectivityMark)
- func (r *Reachability) PrintSummary(printExpected bool, printObserved bool, printComparison bool)
- func (r *Reachability) Summary() (trueObs int, falseObs int, comparison *TruthTable)
- type TestCase
- type TestData
- func (data *TestData) BuildService(svcName, svcNS string, port, targetPort int, selector map[string]string, ...) *v1.Service
- func (data *TestData) BuildServiceAccount(name, ns string, labels map[string]string) *v1.ServiceAccount
- func (data *TestData) CleanACNPs() error
- func (data *TestData) CleanANPs(namespaces []string) error
- func (data *TestData) CleanCGs() error
- func (data *TestData) CleanNetworkPolicies(namespaces map[string]string) error
- func (data *TestData) CleanServices(namespaces map[string]string) error
- func (data *TestData) CreateCG(name string, pSelector, nSelector *metav1.LabelSelector, ...) (*crdv1alpha3.ClusterGroup, error)
- func (data *TestData) CreateClient(kubeconfigPath string) error
- func (data *TestData) CreateNamespace(namespace string, mutateFunc func(*corev1.Namespace)) error
- func (data *TestData) CreateNewTier(name string, tierPriority int32) (*crdv1alpha1.Tier, error)
- func (data *TestData) CreateOrUpdateACNP(cnp *crdv1alpha1.ClusterNetworkPolicy) (*crdv1alpha1.ClusterNetworkPolicy, error)
- func (data *TestData) CreateOrUpdateANP(anp *crdv1alpha1.NetworkPolicy) (*crdv1alpha1.NetworkPolicy, error)
- func (data *TestData) CreateOrUpdateDeployment(ns, deploymentName string, replicas int32, labels map[string]string) (*appsv1.Deployment, error)
- func (data *TestData) CreateOrUpdateNamespace(n string, labels map[string]string) (*v1.Namespace, error)
- func (data *TestData) CreateOrUpdateNetworkPolicy(netpol *v1net.NetworkPolicy) (*v1net.NetworkPolicy, error)
- func (data *TestData) CreateOrUpdateService(svc *v1.Service) (*v1.Service, error)
- func (data *TestData) CreateOrUpdateServiceAccount(sa *v1.ServiceAccount) (*v1.ServiceAccount, error)
- func (data *TestData) CreateOrUpdateV1Alpha2CG(cg *crdv1alpha2.ClusterGroup) (*crdv1alpha2.ClusterGroup, error)
- func (data *TestData) CreateOrUpdateV1Alpha3CG(cg *crdv1alpha3.ClusterGroup) (*crdv1alpha3.ClusterGroup, error)
- func (data *TestData) CreateService(serviceName, namespace string, port, targetPort int32, ...) (*corev1.Service, error)
- func (data *TestData) CreateServiceWithAnnotations(serviceName, namespace string, port, targetPort int32, ...) (*corev1.Service, error)
- func (data *TestData) DeleteACNP(name string) error
- func (data *TestData) DeleteANP(ns, name string) error
- func (data *TestData) DeleteNamespace(namespace string, timeout time.Duration) error
- func (data *TestData) DeleteNetworkPolicy(ns, name string) error
- func (data *TestData) DeletePod(namespace, name string) error
- func (data *TestData) DeleteService(ns, name string) error
- func (data *TestData) DeleteServiceAccount(ns, name string) error
- func (data *TestData) DeleteTier(name string) error
- func (data *TestData) DeleteV1Alpha2CG(name string) error
- func (data *TestData) DeleteV1Alpha3CG(name string) error
- func (data *TestData) GetACNP(name string) (*crdv1alpha1.ClusterNetworkPolicy, error)
- func (data *TestData) GetANP(namespace, name string) (*crdv1alpha1.NetworkPolicy, error)
- func (data *TestData) GetAntreaAgentConf() (*agentconfig.AgentConfig, error)
- func (data *TestData) GetAntreaConfigMap(antreaNamespace string) (*corev1.ConfigMap, error)
- func (data *TestData) GetAntreaWindowsConfigMap(antreaNamespace string) (*corev1.ConfigMap, error)
- func (data *TestData) GetEncapMode() (config.TrafficEncapModeType, error)
- func (data *TestData) GetFlowAggregatorConfigMap() (*corev1.ConfigMap, error)
- func (data *TestData) GetGatewayInterfaceName(antreaNamespace string) (string, error)
- func (data *TestData) GetMulticastInterfaces(antreaNamespace string) ([]string, error)
- func (data *TestData) GetNetworkPolicy(namespace, name string) (*v1net.NetworkPolicy, error)
- func (data *TestData) GetService(namespace, name string) (*v1.Service, error)
- func (data *TestData) GetTier(name string) (*crdv1alpha1.Tier, error)
- func (data *TestData) GetV1Alpha2CG(cgName string) (*crdv1alpha2.ClusterGroup, error)
- func (data *TestData) GetV1Alpha3CG(cgName string) (*crdv1alpha3.ClusterGroup, error)
- func (data *TestData) InitProvider(providerName, providerConfigPath string) error
- func (data *TestData) PodWaitFor(timeout time.Duration, name, namespace string, condition PodCondition) (*corev1.Pod, error)
- func (data *TestData) RunCommandFromPod(podNamespace string, podName string, containerName string, cmd []string) (stdout string, stderr string, err error)
- func (data *TestData) RunCommandOnNode(nodeName string, cmd string) (code int, stdout string, stderr string, err error)
- func (data *TestData) RunCommandOnNodeExt(nodeName, cmd string, envs map[string]string, stdin string, sudo bool) (code int, stdout, stderr string, err error)
- func (data *TestData) UpdateNamespace(namespace string, mutateFunc func(*corev1.Namespace)) error
- func (data *TestData) UpdateTier(tier *crdv1alpha1.Tier) (*crdv1alpha1.Tier, error)
- type TestOptions
- type TestStep
- type TruthTable
Constants ¶
This section is empty.
Variables ¶
var AntreaConfigMap *corev1.ConfigMap
Functions ¶
func GetAgentFeatures ¶ added in v1.3.0
func GetAgentFeatures() (featuregate.FeatureGate, error)
func GetControllerFeatures ¶ added in v1.3.0
func GetControllerFeatures() (featuregate.FeatureGate, error)
func GetTransportInterface ¶ added in v1.5.0
func IsDirEmpty ¶
IsDirEmpty checks whether a directory is empty or not.
Types ¶
type ClusterInfo ¶
type ClusterInfo struct {
// contains filtered or unexported fields
}
type ClusterNode ¶
type ClusterNode struct {
// contains filtered or unexported fields
}
type Connectivity ¶
type Connectivity struct { From Pod To Pod Connectivity PodConnectivityMark }
type ConnectivityTable ¶
type ConnectivityTable struct { Items []string Values map[string]map[string]PodConnectivityMark // contains filtered or unexported fields }
func NewConnectivityTable ¶
func NewConnectivityTable(items []string, defaultValue *PodConnectivityMark) *ConnectivityTable
func (*ConnectivityTable) Compare ¶
func (ct *ConnectivityTable) Compare(other *ConnectivityTable) *TruthTable
func (*ConnectivityTable) Get ¶
func (ct *ConnectivityTable) Get(from string, to string) PodConnectivityMark
func (*ConnectivityTable) PrettyPrint ¶
func (ct *ConnectivityTable) PrettyPrint(indent string) string
func (*ConnectivityTable) Set ¶
func (ct *ConnectivityTable) Set(from string, to string, value PodConnectivityMark)
func (*ConnectivityTable) SetAllFrom ¶
func (ct *ConnectivityTable) SetAllFrom(from string, value PodConnectivityMark)
func (*ConnectivityTable) SetAllTo ¶
func (ct *ConnectivityTable) SetAllTo(to string, value PodConnectivityMark)
type CustomProbe ¶ added in v1.6.0
type CustomProbe struct { // Create or update a source Pod. SourcePod CustomPod // Create or update a destination Pod. DestPod CustomPod // Port on which the probe will be made. Port int32 // Set the expected connectivity. ExpectConnectivity PodConnectivityMark }
CustomProbe will spin up (or update) SourcePod and DestPod such that Add event of Pods can be tested against expected connectivity among those Pods.
type KubernetesUtils ¶
type KubernetesUtils struct { *TestData // contains filtered or unexported fields }
func NewKubernetesUtils ¶
func NewKubernetesUtils(data *TestData) (*KubernetesUtils, error)
func (*KubernetesUtils) CleanGroups ¶ added in v1.8.0
func (k *KubernetesUtils) CleanGroups(namespace string) error
CleanGroups is a convenience function for deleting all Groups in the namespace.
func (*KubernetesUtils) Cleanup ¶
func (k *KubernetesUtils) Cleanup(namespaces map[string]string)
func (*KubernetesUtils) CreateGroup ¶ added in v1.8.0
func (k *KubernetesUtils) CreateGroup(namespace, name string, pSelector, nSelector *metav1.LabelSelector, ipBlocks []crdv1alpha1.IPBlock) (*crdv1alpha3.Group, error)
CreateGroup is a convenience function for creating an Antrea Group by namespace, name and selector.
func (*KubernetesUtils) CreateOrUpdateV1Alpha3Group ¶ added in v1.8.0
func (k *KubernetesUtils) CreateOrUpdateV1Alpha3Group(g *crdv1alpha3.Group) (*crdv1alpha3.Group, error)
CreateOrUpdateV1Alpha3Group is a convenience function for idempotent setup of crd/v1alpha3 Groups
func (*KubernetesUtils) DeleteV1Alpha3Group ¶ added in v1.8.0
func (k *KubernetesUtils) DeleteV1Alpha3Group(namespace, name string) error
DeleteV1Alpha3Group is a convenience function for deleting core/v1alpha3 Group by namespace and name.
func (*KubernetesUtils) GetCG ¶
func (k *KubernetesUtils) GetCG(name string) (*crdv1alpha2.ClusterGroup, error)
GetCG is a convenience function for getting ClusterGroups
func (*KubernetesUtils) GetGroup ¶ added in v1.8.0
func (k *KubernetesUtils) GetGroup(namespace, name string) (*crdv1alpha3.Group, error)
GetGroup is a convenience function for getting Groups
func (*KubernetesUtils) GetPodByLabel ¶
GetPodByLabel returns a Pod with the matching Namespace and "pod" label.
func (*KubernetesUtils) GetPodsByLabel ¶
GetPodsByLabel returns an array of all Pods in the given Namespace having a k/v label pair.
func (*KubernetesUtils) LabelPod ¶ added in v1.7.0
func (k *KubernetesUtils) LabelPod(ns, name, key, value string) (*v1.Pod, error)
func (*KubernetesUtils) Probe ¶
func (k *KubernetesUtils) Probe(ns1, pod1, ns2, pod2 string, port int32, protocol utils.AntreaPolicyProtocol) (PodConnectivityMark, error)
Probe execs into a Pod and checks its connectivity to another Pod. Of course it assumes that the target Pod is serving on the input port, and also that agnhost is installed. The connectivity from source Pod to all IPs of the target Pod should be consistent. Otherwise, Error PodConnectivityMark will be returned.
func (*KubernetesUtils) ProbeAddr ¶ added in v1.4.0
func (k *KubernetesUtils) ProbeAddr(ns, podLabelKey, podLabelValue, dstAddr string, port int32, protocol utils.AntreaPolicyProtocol) (PodConnectivityMark, error)
ProbeAddr execs into a Pod and checks its connectivity to an arbitrary destination address.
func (*KubernetesUtils) Validate ¶
func (k *KubernetesUtils) Validate(allPods []Pod, reachability *Reachability, ports []int32, protocol utils.AntreaPolicyProtocol)
Validate checks the connectivity between all Pods in both directions with a list of ports and a protocol. The connectivity from a Pod to another Pod should be consistent across all provided ports. Otherwise, this connectivity will be treated as Error.
type PodBuilder ¶ added in v1.8.0
type PodBuilder struct { Name string Namespace string Image string ContainerName string Command []string Args []string Env []corev1.EnvVar Ports []corev1.ContainerPort HostNetwork bool IsPrivileged bool ServiceAccountName string Annotations map[string]string Labels map[string]string NodeName string MutateFunc func(*corev1.Pod) ResourceRequests corev1.ResourceList ResourceLimits corev1.ResourceList }
func NewPodBuilder ¶ added in v1.8.0
func NewPodBuilder(name, ns, image string) *PodBuilder
func (*PodBuilder) Create ¶ added in v1.8.0
func (b *PodBuilder) Create(data *TestData) error
func (*PodBuilder) InHostNetwork ¶ added in v1.8.0
func (b *PodBuilder) InHostNetwork() *PodBuilder
func (*PodBuilder) OnNode ¶ added in v1.8.0
func (b *PodBuilder) OnNode(nodeName string) *PodBuilder
func (*PodBuilder) Privileged ¶ added in v1.8.0
func (b *PodBuilder) Privileged() *PodBuilder
func (*PodBuilder) WithAnnotations ¶ added in v1.8.0
func (b *PodBuilder) WithAnnotations(annotations map[string]string) *PodBuilder
func (*PodBuilder) WithArgs ¶ added in v1.8.0
func (b *PodBuilder) WithArgs(args []string) *PodBuilder
func (*PodBuilder) WithCommand ¶ added in v1.8.0
func (b *PodBuilder) WithCommand(command []string) *PodBuilder
func (*PodBuilder) WithContainerName ¶ added in v1.8.0
func (b *PodBuilder) WithContainerName(ctrName string) *PodBuilder
func (*PodBuilder) WithEnv ¶ added in v1.8.0
func (b *PodBuilder) WithEnv(env []corev1.EnvVar) *PodBuilder
func (*PodBuilder) WithHostNetwork ¶ added in v1.8.0
func (b *PodBuilder) WithHostNetwork(v bool) *PodBuilder
func (*PodBuilder) WithLabels ¶ added in v1.8.0
func (b *PodBuilder) WithLabels(labels map[string]string) *PodBuilder
func (*PodBuilder) WithMutateFunc ¶ added in v1.8.0
func (b *PodBuilder) WithMutateFunc(f func(*corev1.Pod)) *PodBuilder
func (*PodBuilder) WithPorts ¶ added in v1.8.0
func (b *PodBuilder) WithPorts(ports []corev1.ContainerPort) *PodBuilder
func (*PodBuilder) WithResources ¶ added in v1.9.0
func (b *PodBuilder) WithResources(ResourceRequests, ResourceLimits corev1.ResourceList) *PodBuilder
func (*PodBuilder) WithServiceAccountName ¶ added in v1.8.0
func (b *PodBuilder) WithServiceAccountName(name string) *PodBuilder
type PodConnectivityMark ¶
type PodConnectivityMark string
const ( Connected PodConnectivityMark = "Con" Unknown PodConnectivityMark = "Unk" Error PodConnectivityMark = "Err" Dropped PodConnectivityMark = "Drp" Rejected PodConnectivityMark = "Rej" )
func DecidePingProbeResult ¶ added in v1.7.0
func DecidePingProbeResult(stdout string, probeNum int) PodConnectivityMark
DecidePingProbeResult uses the pingProbe stdout to decide the connectivity.
func DecideProbeResult ¶ added in v1.6.0
func DecideProbeResult(stderr string, probeNum int) PodConnectivityMark
DecideProbeResult uses the probe stderr to decide the connectivity.
type Reachability ¶
type Reachability struct { Expected *ConnectivityTable Observed *ConnectivityTable Pods []Pod PodsByNamespace map[string][]Pod }
func NewReachability ¶
func NewReachability(pods []Pod, defaultExpectation PodConnectivityMark) *Reachability
func (*Reachability) Expect ¶
func (r *Reachability) Expect(pod1 Pod, pod2 Pod, connectivity PodConnectivityMark)
func (*Reachability) ExpectAllEgress ¶
func (r *Reachability) ExpectAllEgress(pod Pod, connectivity PodConnectivityMark)
ExpectAllEgress defines that any traffic going out of the pod will be allowed/dropped/rejected
func (*Reachability) ExpectAllIngress ¶
func (r *Reachability) ExpectAllIngress(pod Pod, connectivity PodConnectivityMark)
ExpectAllIngress defines that any traffic going into the pod will be allowed/dropped/rejected
func (*Reachability) ExpectAllSelfNamespace ¶
func (r *Reachability) ExpectAllSelfNamespace(connectivity PodConnectivityMark)
func (*Reachability) ExpectConn ¶
func (r *Reachability) ExpectConn(spec *Connectivity)
ExpectConn is an experimental way to describe connectivity with named fields
func (*Reachability) ExpectEgressToNamespace ¶
func (r *Reachability) ExpectEgressToNamespace(pod Pod, namespace string, connectivity PodConnectivityMark)
func (*Reachability) ExpectIngressFromNamespace ¶
func (r *Reachability) ExpectIngressFromNamespace(pod Pod, namespace string, connectivity PodConnectivityMark)
func (*Reachability) ExpectSelf ¶
func (r *Reachability) ExpectSelf(allPods []Pod, connectivity PodConnectivityMark)
func (*Reachability) ExpectSelfNamespace ¶
func (r *Reachability) ExpectSelfNamespace(namespace string, connectivity PodConnectivityMark)
func (*Reachability) Observe ¶
func (r *Reachability) Observe(pod1 Pod, pod2 Pod, connectivity PodConnectivityMark)
func (*Reachability) PrintSummary ¶
func (r *Reachability) PrintSummary(printExpected bool, printObserved bool, printComparison bool)
func (*Reachability) Summary ¶
func (r *Reachability) Summary() (trueObs int, falseObs int, comparison *TruthTable)
type TestData ¶
type TestData struct {
// contains filtered or unexported fields
}
TestData stores the state required for each test case.
func (*TestData) BuildService ¶ added in v1.6.0
func (data *TestData) BuildService(svcName, svcNS string, port, targetPort int, selector map[string]string, serviceType *v1.ServiceType) *v1.Service
BuildService is a convenience function for building a corev1.Service spec.
func (*TestData) BuildServiceAccount ¶ added in v1.6.0
func (data *TestData) BuildServiceAccount(name, ns string, labels map[string]string) *v1.ServiceAccount
BuildServiceAccount is a convenience function for building a corev1.SerivceAccount spec.
func (*TestData) CleanACNPs ¶ added in v1.6.0
CleanACNPs is a convenience function for deleting all Antrea ClusterNetworkPolicies in the cluster.
func (*TestData) CleanANPs ¶ added in v1.6.0
CleanANPs is a convenience function for deleting all Antrea NetworkPolicies in provided namespaces.
func (*TestData) CleanCGs ¶ added in v1.6.0
CleanCGs is a convenience function for deleting all ClusterGroups in the cluster.
func (*TestData) CleanNetworkPolicies ¶ added in v1.6.0
CleanNetworkPolicies is a convenience function for deleting NetworkPolicies in the provided namespaces.
func (*TestData) CleanServices ¶ added in v1.6.0
CleanServices is a convenience function for deleting Services in the cluster.
func (*TestData) CreateCG ¶ added in v1.6.0
func (data *TestData) CreateCG(name string, pSelector, nSelector *metav1.LabelSelector, ipBlocks []crdv1alpha1.IPBlock) (*crdv1alpha3.ClusterGroup, error)
CreateCG is a convenience function for creating an Antrea ClusterGroup by name and selector.
func (*TestData) CreateClient ¶ added in v1.6.0
CreateClient initializes the K8s clientset in the TestData structure.
func (*TestData) CreateNamespace ¶ added in v1.6.0
CreateNamespace creates the provided namespace.
func (*TestData) CreateNewTier ¶ added in v1.6.0
CreateTier is a convenience function for creating an Antrea Policy Tier by name and priority.
func (*TestData) CreateOrUpdateACNP ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateACNP(cnp *crdv1alpha1.ClusterNetworkPolicy) (*crdv1alpha1.ClusterNetworkPolicy, error)
CreateOrUpdateACNP is a convenience function for updating/creating AntreaClusterNetworkPolicies.
func (*TestData) CreateOrUpdateANP ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateANP(anp *crdv1alpha1.NetworkPolicy) (*crdv1alpha1.NetworkPolicy, error)
CreateOrUpdateANP is a convenience function for updating/creating Antrea NetworkPolicies.
func (*TestData) CreateOrUpdateDeployment ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateDeployment(ns, deploymentName string, replicas int32, labels map[string]string) (*appsv1.Deployment, error)
CreateOrUpdateDeployment is a convenience function for idempotent setup of deployments
func (*TestData) CreateOrUpdateNamespace ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateNamespace(n string, labels map[string]string) (*v1.Namespace, error)
CreateOrUpdateNamespace is a convenience function for idempotent setup of Namespaces
func (*TestData) CreateOrUpdateNetworkPolicy ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateNetworkPolicy(netpol *v1net.NetworkPolicy) (*v1net.NetworkPolicy, error)
CreateOrUpdateNetworkPolicy is a convenience function for updating/creating netpols. Updating is important since some tests update a network policy to confirm that mutation works with a CNI.
func (*TestData) CreateOrUpdateService ¶ added in v1.6.0
CreateOrUpdateService is a convenience function for updating/creating Services.
func (*TestData) CreateOrUpdateServiceAccount ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateServiceAccount(sa *v1.ServiceAccount) (*v1.ServiceAccount, error)
CreateOrUpdateServiceAccount is a convenience function for updating/creating ServiceAccount.
func (*TestData) CreateOrUpdateV1Alpha2CG ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateV1Alpha2CG(cg *crdv1alpha2.ClusterGroup) (*crdv1alpha2.ClusterGroup, error)
CreateOrUpdateV1Alpha2CG is a convenience function for idempotent setup of crd/v1alpha2 ClusterGroups
func (*TestData) CreateOrUpdateV1Alpha3CG ¶ added in v1.6.0
func (data *TestData) CreateOrUpdateV1Alpha3CG(cg *crdv1alpha3.ClusterGroup) (*crdv1alpha3.ClusterGroup, error)
CreateOrUpdateV1Alpha3CG is a convenience function for idempotent setup of crd/v1alpha3 ClusterGroups
func (*TestData) CreateService ¶ added in v1.6.0
func (data *TestData) CreateService(serviceName, namespace string, port, targetPort int32, selector map[string]string, affinity, nodeLocalExternal bool, serviceType corev1.ServiceType, ipFamily *corev1.IPFamily) (*corev1.Service, error)
CreateService creates a service with port and targetPort.
func (*TestData) CreateServiceWithAnnotations ¶ added in v1.6.0
func (data *TestData) CreateServiceWithAnnotations(serviceName, namespace string, port, targetPort int32, protocol corev1.Protocol, selector map[string]string, affinity, nodeLocalExternal bool, serviceType corev1.ServiceType, ipFamily *corev1.IPFamily, annotations map[string]string) (*corev1.Service, error)
CreateServiceWithAnnotations creates a service with Annotation
func (*TestData) DeleteACNP ¶ added in v1.6.0
DeleteACNP is a convenience function for deleting ACNP by name.
func (*TestData) DeleteANP ¶ added in v1.6.0
DeleteANP is a convenience function for deleting ANP by name and Namespace.
func (*TestData) DeleteNamespace ¶ added in v1.6.0
DeleteNamespace deletes the provided Namespace, and waits for deletion to actually complete if timeout>=0
func (*TestData) DeleteNetworkPolicy ¶ added in v1.6.0
DeleteNetworkPolicy is a convenience function for deleting NetworkPolicy by name and Namespace.
func (*TestData) DeleteService ¶ added in v1.6.0
DeleteService is a convenience function for deleting a Service by Namespace and name.
func (*TestData) DeleteServiceAccount ¶ added in v1.6.0
DeleteServiceAccount is a convenience function for deleting a ServiceAccount by Namespace and name.
func (*TestData) DeleteTier ¶ added in v1.6.0
DeleteTier is a convenience function for deleting an Antrea Policy Tier with specific name.
func (*TestData) DeleteV1Alpha2CG ¶ added in v1.6.0
DeleteV1Alpha2CG is a convenience function for deleting crd/v1alpha2 ClusterGroup by name.
func (*TestData) DeleteV1Alpha3CG ¶ added in v1.6.0
DeleteV1Alpha3CG is a convenience function for deleting core/v1alpha3 ClusterGroup by name.
func (*TestData) GetACNP ¶ added in v1.6.0
func (data *TestData) GetACNP(name string) (*crdv1alpha1.ClusterNetworkPolicy, error)
GetACNP is a convenience function for getting AntreaClusterNetworkPolicies.
func (*TestData) GetANP ¶ added in v1.6.0
func (data *TestData) GetANP(namespace, name string) (*crdv1alpha1.NetworkPolicy, error)
GetANP is a convenience function for getting AntreaNetworkPolicies.
func (*TestData) GetAntreaAgentConf ¶ added in v1.7.0
func (data *TestData) GetAntreaAgentConf() (*agentconfig.AgentConfig, error)
func (*TestData) GetAntreaConfigMap ¶
func (*TestData) GetAntreaWindowsConfigMap ¶ added in v1.7.0
func (*TestData) GetEncapMode ¶
func (data *TestData) GetEncapMode() (config.TrafficEncapModeType, error)
func (*TestData) GetFlowAggregatorConfigMap ¶
func (*TestData) GetGatewayInterfaceName ¶
func (*TestData) GetMulticastInterfaces ¶ added in v1.5.0
func (*TestData) GetNetworkPolicy ¶ added in v1.6.0
func (data *TestData) GetNetworkPolicy(namespace, name string) (*v1net.NetworkPolicy, error)
GetNetworkPolicy is a convenience function for getting k8s NetworkPolicies.
func (*TestData) GetService ¶ added in v1.6.0
GetService is a convenience function for getting Service
func (*TestData) GetTier ¶ added in v1.6.0
func (data *TestData) GetTier(name string) (*crdv1alpha1.Tier, error)
GetTier is a convenience function for getting Tier.
func (*TestData) GetV1Alpha2CG ¶ added in v1.6.0
func (data *TestData) GetV1Alpha2CG(cgName string) (*crdv1alpha2.ClusterGroup, error)
func (*TestData) GetV1Alpha3CG ¶ added in v1.6.0
func (data *TestData) GetV1Alpha3CG(cgName string) (*crdv1alpha3.ClusterGroup, error)
func (*TestData) InitProvider ¶ added in v1.6.0
func (*TestData) PodWaitFor ¶ added in v1.6.0
func (data *TestData) PodWaitFor(timeout time.Duration, name, namespace string, condition PodCondition) (*corev1.Pod, error)
PodWaitFor polls the K8s apiserver until the specified Pod is found (in the test Namespace) and the condition predicate is met (or until the provided timeout expires).
func (*TestData) RunCommandFromPod ¶ added in v1.6.0
func (data *TestData) RunCommandFromPod(podNamespace string, podName string, containerName string, cmd []string) (stdout string, stderr string, err error)
Run the provided command in the specified Container for the give Pod and returns the contents of stdout and stderr as strings. An error either indicates that the command couldn't be run or that the command returned a non-zero error code.
func (*TestData) RunCommandOnNode ¶ added in v1.6.0
func (data *TestData) RunCommandOnNode(nodeName string, cmd string) (code int, stdout string, stderr string, err error)
RunCommandOnNode is a convenience wrapper around the Provider interface RunCommandOnNode method.
func (*TestData) RunCommandOnNodeExt ¶ added in v1.7.0
func (*TestData) UpdateNamespace ¶ added in v1.8.0
func (*TestData) UpdateTier ¶ added in v1.6.0
func (data *TestData) UpdateTier(tier *crdv1alpha1.Tier) (*crdv1alpha1.Tier, error)
UpdateTier is a convenience function for updating an Antrea Policy Tier.
type TestOptions ¶
type TestOptions struct {
// contains filtered or unexported fields
}
type TestStep ¶ added in v1.6.0
type TestStep struct { Name string Reachability *Reachability TestResources []metav1.Object Ports []int32 Protocol utils.AntreaPolicyProtocol Duration time.Duration CustomProbes []*CustomProbe }
TestStep is a single unit of testing spec. It includes the policy specs that need to be applied for this test, the port to test traffic on and the expected Reachability matrix.
type TruthTable ¶
type TruthTable struct { Items []string Values map[string]map[string]bool // contains filtered or unexported fields }
func (*TruthTable) IsComplete ¶
func (tt *TruthTable) IsComplete() bool
IsComplete returns true if there's a value set for every single pair of items, otherwise it returns false.
func (*TruthTable) PrettyPrint ¶
func (tt *TruthTable) PrettyPrint(indent string) string