Documentation
¶
Index ¶
- Constants
- func CheckForNodeWithE2ELabel(ctx context.Context, k8s kubernetes.Interface, nodeName string) (*corev1.Node, error)
- func CordonNode(ctx context.Context, k8s kubernetes.Interface, node *corev1.Node, ...) error
- func CreateNginxPodInNode(ctx context.Context, k8s kubernetes.Interface, ...) error
- func CreatePod(ctx context.Context, k8s kubernetes.Interface, pod *corev1.Pod, ...) error
- func DeleteManifestsWithRetries(ctx context.Context, k8s dynamic.Interface, ...) error
- func DeleteNode(ctx context.Context, k8s kubernetes.Interface, name string) error
- func DeletePod(ctx context.Context, k8s kubernetes.Interface, name, namespace string) error
- func DeploymentWaitForReplicas(ctx context.Context, timeout time.Duration, k8s kubernetes.Interface, ...) error
- func DrainNode(ctx context.Context, k8s kubernetes.Interface, node *corev1.Node) error
- func EnsureNodeWithE2ELabelIsDeleted(ctx context.Context, k8s kubernetes.Interface, nodeName string) error
- func ExecPodWithRetries(ctx context.Context, config *restclient.Config, k8s kubernetes.Interface, ...) (stdout, stderr string, err error)
- func FetchLogs(ctx context.Context, k8s kubernetes.Interface, name, namespace string, ...) (string, error)
- func GetDaemonSet(ctx context.Context, logger logr.Logger, k8s kubernetes.Interface, ...) (*appsv1.DaemonSet, error)
- func GetNginxPodName(name string) string
- func GetNodeInternalIP(node *corev1.Node) string
- func GetPodLogsWithRetries(ctx context.Context, k8s kubernetes.Interface, name, namespace string) (logs string, err error)
- func IsPreviousVersionSupported(kubernetesVersion string) (bool, error)
- func NetworkUnavailableCondition(node *corev1.Node) *corev1.NodeCondition
- func NewServiceAccount(ctx context.Context, logger logr.Logger, k8s kubernetes.Interface, ...) error
- func NodeNetworkAvailable(node *corev1.Node) bool
- func PreviousVersion(kubernetesVersion string) (string, error)
- func UncordonNode(ctx context.Context, k8s kubernetes.Interface, node *corev1.Node) error
- func UpsertManifestsWithRetries(ctx context.Context, k8s dynamic.Interface, ...) error
- func WaitForDaemonSetPodToBeRunning(ctx context.Context, k8s kubernetes.Interface, ...) error
- func WaitForHybridNodeToBeNotReady(ctx context.Context, k8s kubernetes.Interface, nodeName string, ...) error
- func WaitForHybridNodeToBeReady(ctx context.Context, k8s kubernetes.Interface, nodeName string, ...) (*corev1.Node, error)
- func WaitForNamespaceToBeDeleted(ctx context.Context, k8s kubernetes.Interface, name string) error
- func WaitForNode(ctx context.Context, k8s kubernetes.Interface, nodeName string, ...) (*corev1.Node, error)
- func WaitForNodeToHaveVersion(ctx context.Context, k8s kubernetes.Interface, nodeName, targetVersion string, ...) (*corev1.Node, error)
- func WaitForPodsToBeRunning(ctx context.Context, k8s kubernetes.Interface, listOptions metav1.ListOptions, ...) error
- func YamlToUnstructured(rawyaml []byte) ([]unstructured.Unstructured, error)
- type ConformanceOption
- type ConformanceTest
- type VerifyNode
Constants ¶
const (
MinimumVersion = "1.26"
)
Variables ¶
This section is empty.
Functions ¶
func CheckForNodeWithE2ELabel ¶ added in v1.0.4
func CordonNode ¶
func CreateNginxPodInNode ¶
func DeleteManifestsWithRetries ¶ added in v1.0.7
func DeleteManifestsWithRetries(ctx context.Context, k8s dynamic.Interface, manifests []unstructured.Unstructured) error
func DeleteNode ¶
func DeploymentWaitForReplicas ¶ added in v1.0.7
func EnsureNodeWithE2ELabelIsDeleted ¶ added in v1.0.4
func ExecPodWithRetries ¶ added in v1.0.2
func ExecPodWithRetries(ctx context.Context, config *restclient.Config, k8s kubernetes.Interface, name, namespace string, cmd ...string) (stdout, stderr string, err error)
Retries up to 5 times to avoid connection errors
func FetchLogs ¶ added in v1.0.6
func FetchLogs(ctx context.Context, k8s kubernetes.Interface, name, namespace string, options ...ik8s.ListOption) (string, error)
FetchLogs retrieves logs for all pods with the specified selectors and returns it in a single string.
func GetDaemonSet ¶ added in v1.0.2
func GetDaemonSet(ctx context.Context, logger logr.Logger, k8s kubernetes.Interface, namespace, name string) (*appsv1.DaemonSet, error)
GetDaemonSet returns a daemonset by name in a specific namespace It will wait for the daemonset to exist up to 3 minutes
func GetNginxPodName ¶
func GetNodeInternalIP ¶ added in v1.0.4
func GetPodLogsWithRetries ¶ added in v1.0.2
func GetPodLogsWithRetries(ctx context.Context, k8s kubernetes.Interface, name, namespace string) (logs string, err error)
Retries up to 5 times to avoid connection errors
func NetworkUnavailableCondition ¶ added in v1.0.5
func NetworkUnavailableCondition(node *corev1.Node) *corev1.NodeCondition
func NewServiceAccount ¶ added in v1.0.3
func NewServiceAccount(ctx context.Context, logger logr.Logger, k8s kubernetes.Interface, namespace, name string) error
NewServiceAccount creates a new service account in the given namespace, if it does not already exist.
func NodeNetworkAvailable ¶ added in v1.0.5
NodeNetworkAvailable returns true if the node has a network available condition with status false. If the condition is not present, although technically this mean it might have the a network available, it returns false. Most CNI will set this condition to true whenever they finish their setup. In particular, Cilium and Calico do it.
func PreviousVersion ¶
func UncordonNode ¶
func UpsertManifestsWithRetries ¶ added in v1.0.7
func UpsertManifestsWithRetries(ctx context.Context, k8s dynamic.Interface, manifests []unstructured.Unstructured) error
Creates, or Updates existing CR, foreach manifest Retries each up to 5 times
func WaitForDaemonSetPodToBeRunning ¶ added in v1.0.4
func WaitForHybridNodeToBeReady ¶
func WaitForHybridNodeToBeReady(ctx context.Context, k8s kubernetes.Interface, nodeName string, logger logr.Logger) (*corev1.Node, error)
WaitForHybridNodeToBeReady will continue to poll until the node is: - marked ready - cilium-agent taint is removed (agent is ready on this node) - nodeNetworkAvailable is true - internal IP address is set
func WaitForNamespaceToBeDeleted ¶ added in v1.0.5
WaitForNamespaceToBeDeleted waits for a namespace to be deleted up to 3 minutes
func WaitForNode ¶
func WaitForNode(ctx context.Context, k8s kubernetes.Interface, nodeName string, logger logr.Logger) (*corev1.Node, error)
WaitForNode wait for the node to join the cluster and fetches the node info which has the nodeName label
func WaitForPodsToBeRunning ¶ added in v1.0.6
func WaitForPodsToBeRunning(ctx context.Context, k8s kubernetes.Interface, listOptions metav1.ListOptions, namespace string, logger logr.Logger) error
WaitForPodsToBeRunning waits until a pod is in running phase and all containers are ready. It will return an error if any of the pods have already exited.
func YamlToUnstructured ¶ added in v1.0.7
func YamlToUnstructured(rawyaml []byte) ([]unstructured.Unstructured, error)
YamlToUnstructured takes a YAML and converts it to a list of Unstructured objects.
Types ¶
type ConformanceOption ¶ added in v1.0.5
type ConformanceOption func(*types.Configuration)
func WithOutputDir ¶ added in v1.0.5
func WithOutputDir(outputDir string) ConformanceOption
type ConformanceTest ¶ added in v1.0.5
type ConformanceTest struct {
Namespace string
// contains filtered or unexported fields
}
func NewConformanceTest ¶ added in v1.0.5
func NewConformanceTest(clientConfig *rest.Config, k8s *kubernetes.Clientset, logger logr.Logger, opts ...ConformanceOption) ConformanceTest
func (ConformanceTest) Cleanup ¶ added in v1.0.5
func (c ConformanceTest) Cleanup(ctx context.Context) error
func (ConformanceTest) CollectLogs ¶ added in v1.0.5
func (c ConformanceTest) CollectLogs(ctx context.Context) error
func (ConformanceTest) FetchExitCode ¶ added in v1.0.5
func (c ConformanceTest) FetchExitCode(ctx context.Context) (int, error)
type VerifyNode ¶
type VerifyNode struct {
ClientConfig *rest.Config
K8s clientgo.Interface
Logger logr.Logger
Region string
NodeName string
NodeIP string
}
VerifyNode checks that a node is healthy, can run pods, extract logs and run commands on them.