Documentation ¶
Index ¶
- Variables
- func GetAgentFeatures() (featuregate.FeatureGate, error)
- func GetControllerFeatures() (featuregate.FeatureGate, error)
- func IPFamily(ip string) string
- func IsDirEmpty(name string) (bool, error)
- func ProbeCommand(url, protocol, executor string) []string
- 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, createNamespaces bool) (map[string][]string, error)
- func (k *KubernetesUtils) CleanGroups(namespace string) error
- func (k *KubernetesUtils) Cleanup(namespaces map[string]string)
- func (k *KubernetesUtils) CreateOrUpdateGroup(g *crdv1beta1.Group) (*crdv1beta1.Group, error)
- func (k *KubernetesUtils) DeleteGroup(namespace, name string) error
- func (k *KubernetesUtils) GetCG(name string) (*crdv1beta1.ClusterGroup, error)
- func (k *KubernetesUtils) GetGroup(namespace, name string) (*crdv1beta1.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, ...)
- func (k *KubernetesUtils) ValidateRemoteCluster(remoteCluster *KubernetesUtils, allPods []Pod, reachability *Reachability, ...)
- type Pod
- type PodBuilder
- func (b *PodBuilder) AddVolume(volume []corev1.Volume) *PodBuilder
- func (b *PodBuilder) AddVolumeMount(volumeMount []corev1.VolumeMount) *PodBuilder
- func (b *PodBuilder) Create(data *TestData) error
- func (b *PodBuilder) InHostNetwork() *PodBuilder
- func (b *PodBuilder) MountConfigMap(configMapName string, mountPath string, volumeName string) *PodBuilder
- func (b *PodBuilder) MountHostPath(hostPath string, hostPathType corev1.HostPathType, mountPath string, ...) *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) WithReadinessProbe(probe *corev1.Probe) *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) NewReachabilityWithSameExpectations() *Reachability
- 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) CleanANNPs(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) CreateClient(kubeconfigPath string) error
- func (data *TestData) CreateNamespace(namespace string, mutateFunc func(*corev1.Namespace)) error
- func (data *TestData) CreateNewTier(name string, tierPriority int32) (*crdv1beta1.Tier, error)
- func (data *TestData) CreateOrUpdateACNP(cnp *crdv1beta1.ClusterNetworkPolicy) (*crdv1beta1.ClusterNetworkPolicy, error)
- func (data *TestData) CreateOrUpdateANNP(annp *crdv1beta1.NetworkPolicy) (*crdv1beta1.NetworkPolicy, error)
- func (data *TestData) CreateOrUpdateCG(cg *crdv1beta1.ClusterGroup) (*crdv1beta1.ClusterGroup, 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) 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) DeleteANNP(ns, name string) error
- func (data *TestData) DeleteCG(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) DeletePodAndWait(timeout time.Duration, name string, ns 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) GetACNP(name string) (*crdv1beta1.ClusterNetworkPolicy, error)
- func (data *TestData) GetANNP(namespace, name string) (*crdv1beta1.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) GetConfigMap(namespace, name string) (*v1.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) GetNodeMACAddress(node, device string) (string, error)
- func (data *TestData) GetPodInterfaceMTU(namespace string, podName string, containerName string) (int, error)
- func (data *TestData) GetPodLogs(ctx context.Context, namespace, name, container string) (string, error)
- func (data *TestData) GetService(namespace, name string) (*v1.Service, error)
- func (data *TestData) GetTier(name string) (*crdv1beta1.Tier, error)
- func (data *TestData) GetTransportInterface() (string, error)
- func (data *TestData) InitProvider(providerName, providerConfigPath string) error
- func (data *TestData) PatchPod(namespace, name string, patch []byte) error
- func (data *TestData) PodWaitFor(timeout time.Duration, name, namespace string, condition PodCondition) (*corev1.Pod, error)
- func (data *TestData) RestartAntreaAgentPods(timeout time.Duration) error
- func (data *TestData) RunCommandFromAntreaPodOnNode(nodeName string, cmd []string) (string, string, 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) UpdateConfigMap(configMap *v1.ConfigMap) error
- func (data *TestData) UpdateNamespace(namespace string, mutateFunc func(*corev1.Namespace)) error
- func (data *TestData) UpdatePod(namespace, name string, mutateFunc func(*corev1.Pod)) error
- func (data *TestData) UpdateTier(tier *crdv1beta1.Tier) (*crdv1beta1.Tier, error)
- func (data *TestData) WaitForACNPCreationAndRealization(t *testing.T, name string, timeout time.Duration) error
- func (data *TestData) WaitForANNPCreationAndRealization(t *testing.T, namespace string, name string, timeout time.Duration) error
- type TestOptions
- type TestStep
- type TruthTable
Constants ¶
This section is empty.
Variables ¶
var AntreaConfigMap *corev1.ConfigMap
var ErrPodNotFound = errors.New("Pod not found")
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 IsDirEmpty ¶
IsDirEmpty checks whether a directory is empty or not.
func ProbeCommand ¶ added in v1.13.0
ProbeCommand generates a command to probe the provider url. The executor parameter can be used to change where the prober will run. For example, it could be "ip netns exec NAME" to run the prober in another namespace. We try to connect 3 times. This dates back to when we were using the OVS netdev datapath for Kind clusters, as the first packet sent on a tunnel was always dropped (https://github.com/antrea-io/antrea/issues/467). We may be able to revisit this now that we use the OVS kernel datapath for Kind. "agnhost connect" outputs nothing when it succeeds. We output "CONNECTED" in such case and prepend a sequence number for each attempt, to make the result more informative. Example output: 1: CONNECTED 2: TIMEOUT 3: TIMEOUT
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) CreateOrUpdateGroup ¶ added in v1.13.0
func (k *KubernetesUtils) CreateOrUpdateGroup(g *crdv1beta1.Group) (*crdv1beta1.Group, error)
CreateOrUpdateGroup is a convenience function for idempotent setup of crd/v1beta1 Groups
func (*KubernetesUtils) DeleteGroup ¶ added in v1.13.0
func (k *KubernetesUtils) DeleteGroup(namespace, name string) error
DeleteGroup is a convenience function for deleting core/v1beta1 Group by namespace and name.
func (*KubernetesUtils) GetCG ¶
func (k *KubernetesUtils) GetCG(name string) (*crdv1beta1.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) (*crdv1beta1.Group, error)
GetGroup is a convenience function for getting Groups
func (*KubernetesUtils) GetPodByLabel ¶
GetPodByLabel returns a Pod with the matching Namespace and "pod" label if it's found. If the pod is not found, GetPodByLabel returns "ErrPodNotFound".
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, remoteCluster *KubernetesUtils, expectedResult *PodConnectivityMark) (PodConnectivityMark, error)
Probe execs into a Pod and checks its connectivity to another Pod. 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, expectedResult *PodConnectivityMark) (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.
func (*KubernetesUtils) ValidateRemoteCluster ¶ added in v1.11.0
func (k *KubernetesUtils) ValidateRemoteCluster(remoteCluster *KubernetesUtils, allPods []Pod, reachability *Reachability, port int32, protocol utils.AntreaPolicyProtocol)
type PodBuilder ¶ added in v1.8.0
type PodBuilder struct { Name string Namespace string VolumeMounts []corev1.VolumeMount Volumes []corev1.Volume 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 ReadinessProbe *corev1.Probe }
func NewPodBuilder ¶ added in v1.8.0
func NewPodBuilder(name, ns, image string) *PodBuilder
func (*PodBuilder) AddVolume ¶ added in v1.11.0
func (b *PodBuilder) AddVolume(volume []corev1.Volume) *PodBuilder
func (*PodBuilder) AddVolumeMount ¶ added in v1.11.0
func (b *PodBuilder) AddVolumeMount(volumeMount []corev1.VolumeMount) *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) MountConfigMap ¶ added in v1.11.0
func (b *PodBuilder) MountConfigMap(configMapName string, mountPath string, volumeName string) *PodBuilder
func (*PodBuilder) MountHostPath ¶ added in v1.14.0
func (b *PodBuilder) MountHostPath(hostPath string, hostPathType corev1.HostPathType, mountPath string, volumeName string) *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) WithReadinessProbe ¶ added in v1.14.0
func (b *PodBuilder) WithReadinessProbe(probe *corev1.Probe) *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 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) NewReachabilityWithSameExpectations ¶ added in v1.11.0
func (r *Reachability) NewReachabilityWithSameExpectations() *Reachability
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 { ClusterName string // 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) CleanANNPs ¶ added in v1.13.0
CleanANNPs 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) 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 *crdv1beta1.ClusterNetworkPolicy) (*crdv1beta1.ClusterNetworkPolicy, error)
CreateOrUpdateACNP is a convenience function for updating/creating AntreaClusterNetworkPolicies.
func (*TestData) CreateOrUpdateANNP ¶ added in v1.13.0
func (data *TestData) CreateOrUpdateANNP(annp *crdv1beta1.NetworkPolicy) (*crdv1beta1.NetworkPolicy, error)
CreateOrUpdateANNP is a convenience function for updating/creating Antrea NetworkPolicies.
func (*TestData) CreateOrUpdateCG ¶ added in v1.13.0
func (data *TestData) CreateOrUpdateCG(cg *crdv1beta1.ClusterGroup) (*crdv1beta1.ClusterGroup, error)
CreateOrUpdateCG is a convenience function for idempotent setup of crd/v1beta1 ClusterGroups
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) 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) DeleteANNP ¶ added in v1.13.0
DeleteANNP is a convenience function for deleting ANNP by name and Namespace.
func (*TestData) DeleteCG ¶ added in v1.13.0
DeleteCG is a convenience function for deleting core/v1beta1 ClusterGroup by name.
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) DeletePodAndWait ¶ added in v1.10.1
Deletes a Pod in the test namespace then waits us to timeout for the Pod not to be visible to the client anymore.
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) GetACNP ¶ added in v1.6.0
func (data *TestData) GetACNP(name string) (*crdv1beta1.ClusterNetworkPolicy, error)
GetACNP is a convenience function for getting AntreaClusterNetworkPolicies.
func (*TestData) GetANNP ¶ added in v1.13.0
func (data *TestData) GetANNP(namespace, name string) (*crdv1beta1.NetworkPolicy, error)
GetANNP 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) GetConfigMap ¶ added in v1.12.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) GetNodeMACAddress ¶ added in v1.11.3
func (*TestData) GetPodInterfaceMTU ¶ added in v1.13.4
func (*TestData) GetPodLogs ¶ added in v1.14.0
func (data *TestData) GetPodLogs(ctx context.Context, namespace, name, container string) (string, error)
GetPodLogs returns the current logs for the specified Pod container. If container is empty, it defaults to only container when there is one container in the Pod.
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) (*crdv1beta1.Tier, error)
GetTier is a convenience function for getting Tier.
func (*TestData) GetTransportInterface ¶ added in v1.11.3
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) RestartAntreaAgentPods ¶ added in v1.12.0
RestartAntreaAgentPods deletes all the antrea-agent Pods to force them to be re-scheduled. It then waits for the new Pods to become available.
func (*TestData) RunCommandFromAntreaPodOnNode ¶ added in v1.13.0
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) UpdateConfigMap ¶ added in v1.12.0
func (*TestData) UpdateNamespace ¶ added in v1.8.0
func (*TestData) UpdateTier ¶ added in v1.6.0
func (data *TestData) UpdateTier(tier *crdv1beta1.Tier) (*crdv1beta1.Tier, error)
UpdateTier is a convenience function for updating an Antrea Policy Tier.
func (*TestData) WaitForACNPCreationAndRealization ¶ added in v1.11.0
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