framework

package
v0.0.0-...-70feec6 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2024 License: Apache-2.0 Imports: 63 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SECRET = iota
	CONFIGMAP
)
View Source
const (
	ScrapingTLSSecret = "scraping-tls"
	ServerTLSSecret   = "server-tls"
	ServerCASecret    = "server-tls-ca"

	CAKey      = "ca.pem"
	CertKey    = "cert.pem"
	PrivateKey = "key.pem"
)

Variables

View Source
var (
	CRDCreateRule = rbacv1.PolicyRule{
		APIGroups: []string{"apiextensions.k8s.io"},
		Resources: []string{"customresourcedefinitions"},
		Verbs:     []string{"create"},
	}

	CRDMonitoringRule = rbacv1.PolicyRule{
		APIGroups: []string{"apiextensions.k8s.io"},
		Resources: []string{"customresourcedefinitions"},
		ResourceNames: []string{
			"alertmanagers.monitoring.coreos.com",
			"podmonitors.monitoring.coreos.com",
			"probes.monitoring.coreos.com",
			"prometheuses.monitoring.coreos.com",
			"prometheusrules.monitoring.coreos.com",
			"servicemonitors.monitoring.coreos.com",
			"thanosrulers.monitoring.coreos.com",
		},
		Verbs: []string{"get", "update"},
	}
)
View Source
var ValidAlertmanagerConfig = `` /* 229-byte string literal not displayed */

Functions

func MakeBasicIngress

func MakeBasicIngress(serviceName string, servicePort int) *networkv1.Ingress

func MakeConfigMapWithCert

func MakeConfigMapWithCert(ns, name, keyKey, certKey, caKey string,
	keyBytes, certBytes, caBytes []byte) *v1.ConfigMap

func MakeDeployment

func MakeDeployment(source string) (*appsv1.Deployment, error)

func MakeSecretWithCert

func MakeSecretWithCert(ns, name string, keyList []string,
	dataList [][]byte) *corev1.Secret

func MakeService

func MakeService(source string) (*v1.Service, error)

func PathToOSFile

func PathToOSFile(relativePath string) (*os.File, error)

func SourceToIOReader

func SourceToIOReader(source string) (io.Reader, error)

func StartPortForward

func StartPortForward(ctx context.Context, config *rest.Config, scheme string, name string, ns string, port string) (func(), error)

StartPortForward initiates a port forwarding connection to a pod on the localhost interface. It returns a closer function that should be invoked to stop the proxy server. The function blocks until the port forwarding proxy server is ready to receive connections or the context is canceled.

func URLToIOReader

func URLToIOReader(url string) (io.Reader, error)

func WaitForCRDReady

func WaitForCRDReady(listFunc func(opts metav1.ListOptions) (runtime.Object, error)) error

WaitForCRDReady waits for a Custom Resource Definition to be available for use.

func WaitForHTTPSuccessStatusCode

func WaitForHTTPSuccessStatusCode(timeout time.Duration, url string) error

Types

type Cert

type Cert struct {
	Filename     string
	ResourceName string
	ResourceType int
}

type ExecOptions

type ExecOptions struct {
	Command       []string
	Namespace     string
	PodName       string
	ContainerName string
	Stdin         io.Reader
	CaptureStdout bool
	CaptureStderr bool
	// If false, whitespace in std{err,out} will be removed.
	PreserveWhitespace bool
}

ExecOptions passed to ExecWithOptions.

type FinalizerFn

type FinalizerFn func() error

type Framework

type Framework struct {
	KubeClient        kubernetes.Interface
	MonClientV1       v1monitoringclient.MonitoringV1Interface
	MonClientV1alpha1 v1alpha1monitoringclient.MonitoringV1alpha1Interface
	MonClientV1beta1  v1beta1monitoringclient.MonitoringV1beta1Interface
	APIServerClient   apiclient.Interface
	HTTPClient        *http.Client
	MasterHost        string
	DefaultTimeout    time.Duration
	RestConfig        *rest.Config
	// contains filtered or unexported fields
}

func New

func New(kubeconfig, opImage, exampleDir, resourcesDir string, operatorVersion semver.Version) (*Framework, error)

New setups a test framework and returns it.

func (*Framework) AddAlertingToPrometheus

func (f *Framework) AddAlertingToPrometheus(p *monitoringv1.Prometheus, ns, name string)

func (*Framework) AddLabelsToNamespace

func (f *Framework) AddLabelsToNamespace(ctx context.Context, name string, additionalLabels map[string]string) error

func (*Framework) AlertmanagerConfigSecret

func (f *Framework) AlertmanagerConfigSecret(ns, name string) (*v1.Secret, error)

func (*Framework) AlertmangerSVCGetRequest

func (f *Framework) AlertmangerSVCGetRequest(ctx context.Context, ns, svcName, endpoint string, query map[string]string) ([]byte, error)

func (*Framework) AssertCondition

func (f *Framework) AssertCondition(conds []monitoringv1.Condition, expectedType monitoringv1.ConditionType, expectedStatus monitoringv1.ConditionStatus) error

func (*Framework) CheckPrometheusFiringAlert

func (f *Framework) CheckPrometheusFiringAlert(ctx context.Context, ns, svcName, alertName string) (bool, error)

func (*Framework) CheckThanosFiringAlert

func (f *Framework) CheckThanosFiringAlert(ctx context.Context, ns, svcName, alertName string) (bool, error)

func (*Framework) CreateAlertmanagerAndWaitUntilReady

func (f *Framework) CreateAlertmanagerAndWaitUntilReady(ctx context.Context, a *monitoringv1.Alertmanager) (*monitoringv1.Alertmanager, error)

func (*Framework) CreateAlertmanagerConfig

func (f *Framework) CreateAlertmanagerConfig(ctx context.Context, ns, name string) (*monitoringv1alpha1.AlertmanagerConfig, error)

func (*Framework) CreateBlackBoxExporterAndWaitUntilReady

func (f *Framework) CreateBlackBoxExporterAndWaitUntilReady(ctx context.Context, ns, name string) error

func (*Framework) CreateCertificateResources

func (f *Framework) CreateCertificateResources(namespace, certsDir string, prwtc PromRemoteWriteTestConfig) error

func (*Framework) CreateDeployment

func (f *Framework) CreateDeployment(ctx context.Context, namespace string, d *appsv1.Deployment) error

func (*Framework) CreateIngress

func (f *Framework) CreateIngress(ctx context.Context, namespace string, i *networkv1.Ingress) error

func (*Framework) CreateNamespace

func (f *Framework) CreateNamespace(ctx context.Context, t *testing.T, testCtx *TestCtx) string

func (*Framework) CreateOrUpdateAdmissionWebhookServer

func (f *Framework) CreateOrUpdateAdmissionWebhookServer(
	ctx context.Context,
	namespace string,
	image string,
) (*v1.Service, []byte, error)

CreateOrUpdateAdmissionWebhookServer deploys an HTTPS server which acts as a validating and mutating webhook server for PrometheusRule and AlertManagerConfig. It is also able to convert AlertmanagerConfig objects from v1alpha1 to v1beta1. Returns the service and the certificate authority which can be used to trust the TLS certificate of the server.

func (*Framework) CreateOrUpdateCRD

func (f *Framework) CreateOrUpdateCRD(ctx context.Context, crd *v1.CustomResourceDefinition) error

CreateOrUpdateCRD creates a custom resource definition on the apiserver.

func (*Framework) CreateOrUpdateCRDAndWaitUntilReady

func (f *Framework) CreateOrUpdateCRDAndWaitUntilReady(ctx context.Context, crdName string, listFunc func(opts metav1.ListOptions) (runtime.Object, error)) error

CreateCRDAndWaitUntilReady creates a Custom Resource Definition from yaml manifest on the apiserver and wait until it is available for use.

func (*Framework) CreateOrUpdateClusterRole

func (f *Framework) CreateOrUpdateClusterRole(ctx context.Context, source string) (*rbacv1.ClusterRole, error)

func (*Framework) CreateOrUpdateDeploymentAndWaitUntilReady

func (f *Framework) CreateOrUpdateDeploymentAndWaitUntilReady(ctx context.Context, namespace string, deployment *appsv1.Deployment) error

func (*Framework) CreateOrUpdatePrometheusOperator

func (f *Framework) CreateOrUpdatePrometheusOperator(
	ctx context.Context,
	namespace string,
	namespaceAllowlist,
	namespaceDenylist,
	prometheusInstanceNamespaces,
	alertmanagerInstanceNamespaces []string,
	createResourceAdmissionHooks,
	createClusterRoleBindings,
	createScrapeConfigCrd bool,
	enabledFeatureGates ...string,
) ([]FinalizerFn, error)

func (*Framework) CreateOrUpdatePrometheusOperatorWithOpts

func (f *Framework) CreateOrUpdatePrometheusOperatorWithOpts(
	ctx context.Context,
	opts PrometheusOperatorOpts,
) ([]FinalizerFn, error)

CreateOrUpdatePrometheusOperatorWithOpts creates or updates a Prometheus Operator Kubernetes Deployment inside the specified namespace using the specified operator image. Semver is used to control the installation for different versions of Prometheus Operator. In addition one can specify the namespaces to watch, which defaults to all namespaces. It returns a slice of functions to tear down the deployment.

func (*Framework) CreateOrUpdateRoleBinding

func (f *Framework) CreateOrUpdateRoleBinding(ctx context.Context, ns string, relativePath string) (FinalizerFn, error)

func (*Framework) CreateOrUpdateRoleBindingForSubjectNamespace

func (f *Framework) CreateOrUpdateRoleBindingForSubjectNamespace(ctx context.Context, ns, subjectNs string, source string) (FinalizerFn, error)

func (*Framework) CreateOrUpdateSecretWithCert

func (f *Framework) CreateOrUpdateSecretWithCert(ctx context.Context, certBytes, keyBytes []byte, ns, name string) error

func (*Framework) CreateOrUpdateServiceAndWaitUntilReady

func (f *Framework) CreateOrUpdateServiceAndWaitUntilReady(ctx context.Context, namespace string, service *v1.Service) (FinalizerFn, error)

func (*Framework) CreatePrometheusAgentAndWaitUntilReady

func (f *Framework) CreatePrometheusAgentAndWaitUntilReady(ctx context.Context, ns string, p *monitoringv1alpha1.PrometheusAgent) (*monitoringv1alpha1.PrometheusAgent, error)

func (*Framework) CreatePrometheusAndWaitUntilReady

func (f *Framework) CreatePrometheusAndWaitUntilReady(ctx context.Context, ns string, p *monitoringv1.Prometheus) (*monitoringv1.Prometheus, error)

func (*Framework) CreateRule

func (*Framework) CreateScrapeConfig

func (*Framework) CreateSilence

func (f *Framework) CreateSilence(ctx context.Context, ns, n string) (string, error)

func (*Framework) CreateThanosRulerAndWaitUntilReady

func (f *Framework) CreateThanosRulerAndWaitUntilReady(ctx context.Context, ns string, tr *monitoringv1.ThanosRuler) (*monitoringv1.ThanosRuler, error)

func (*Framework) DeleteAlertmanagerAndWaitUntilGone

func (f *Framework) DeleteAlertmanagerAndWaitUntilGone(ctx context.Context, ns, name string) error

func (*Framework) DeleteCRD

func (f *Framework) DeleteCRD(ctx context.Context, name string) error

func (*Framework) DeleteClusterRole

func (f *Framework) DeleteClusterRole(ctx context.Context, source string) error

func (*Framework) DeleteClusterRoleBinding

func (f *Framework) DeleteClusterRoleBinding(ctx context.Context, ns string, source string) error

func (*Framework) DeleteDeployment

func (f *Framework) DeleteDeployment(ctx context.Context, namespace, name string) error

func (*Framework) DeleteNamespace

func (f *Framework) DeleteNamespace(ctx context.Context, name string) error

func (*Framework) DeleteNginxIngressControllerIncDefaultBackend

func (f *Framework) DeleteNginxIngressControllerIncDefaultBackend(ctx context.Context, namespace string) error

func (*Framework) DeletePrometheusAgentAndWaitUntilGone

func (f *Framework) DeletePrometheusAgentAndWaitUntilGone(ctx context.Context, ns, name string) error

func (*Framework) DeletePrometheusAgentDSAndWaitUntilGone

func (f *Framework) DeletePrometheusAgentDSAndWaitUntilGone(ctx context.Context, p *monitoringv1alpha1.PrometheusAgent, ns, name string) error

func (*Framework) DeletePrometheusAndWaitUntilGone

func (f *Framework) DeletePrometheusAndWaitUntilGone(ctx context.Context, ns, name string) error

func (*Framework) DeletePrometheusOperatorClusterResource

func (f *Framework) DeletePrometheusOperatorClusterResource(ctx context.Context) error

DeletePrometheusOperatorClusterResource delete Prometheus Operator cluster wide resources if the resource is found.

func (*Framework) DeleteRoleBinding

func (f *Framework) DeleteRoleBinding(ctx context.Context, ns string, source string) error

func (*Framework) DeleteRule

func (f *Framework) DeleteRule(ctx context.Context, ns string, r string) error

func (*Framework) DeleteScrapeConfig

func (f *Framework) DeleteScrapeConfig(ctx context.Context, ns string, r string) error

func (*Framework) DeleteServiceAccount

func (f *Framework) DeleteServiceAccount(ctx context.Context, namespace string, source string) error

func (*Framework) DeleteServiceAndWaitUntilGone

func (f *Framework) DeleteServiceAndWaitUntilGone(ctx context.Context, namespace string, serviceName string) error

func (*Framework) DeleteThanosRulerAndWaitUntilGone

func (f *Framework) DeleteThanosRulerAndWaitUntilGone(ctx context.Context, ns, name string) error

func (*Framework) EnableRemoteWriteReceiverWithTLS

func (f *Framework) EnableRemoteWriteReceiverWithTLS(p *monitoringv1.Prometheus)

func (*Framework) ExecWithOptions

func (f *Framework) ExecWithOptions(ctx context.Context, options ExecOptions) (string, string, error)

ExecWithOptions executes a command in the specified container, returning stdout, stderr and error. `options` allowed for additional parameters to be passed. Inspired by https://github.com/kubernetes/kubernetes/blob/dde6e8e7465468c32642659cb708a5cc922add64/test/e2e/framework/exec_util.go#L36-L51

func (*Framework) GetActiveTargets

func (f *Framework) GetActiveTargets(ctx context.Context, ns, svcName string) ([]*Target, error)

func (*Framework) GetAlertmanagerPodStatus

func (f *Framework) GetAlertmanagerPodStatus(ctx context.Context, ns, n string, https bool) (models.AlertmanagerStatus, error)

func (*Framework) GetCRD

func (f *Framework) GetCRD(ctx context.Context, name string) (*v1.CustomResourceDefinition, error)

GetCRD gets a custom resource definition from the apiserver.

func (*Framework) GetDeployment

func (f *Framework) GetDeployment(ctx context.Context, ns, name string) (*appsv1.Deployment, error)

func (*Framework) GetHealthyTargets

func (f *Framework) GetHealthyTargets(ctx context.Context, ns, svcName string) ([]*Target, error)

func (*Framework) GetIngressIP

func (f *Framework) GetIngressIP(ctx context.Context, namespace string, ingressName string) (*string, error)

func (*Framework) GetMetricVal

func (f *Framework) GetMetricVal(ctx context.Context, protocol, ns, podName, portNumberOrName, metricName string) (float64, error)

GetMetricVal get a particular metric value from a pod. When portNumberOfName is "", default port will be used to access metrics endpoint.

func (*Framework) GetPodRestartCount

func (f *Framework) GetPodRestartCount(ctx context.Context, ns, podName string) (map[string]int32, error)

GetPodRestartCount returns a map of container names and their restart counts for a given pod.

func (*Framework) GetRule

func (f *Framework) GetRule(ctx context.Context, ns, name string) (*monitoringv1.PrometheusRule, error)

func (*Framework) GetScrapeConfig

func (f *Framework) GetScrapeConfig(ctx context.Context, ns, name string) (*monitoringv1alpha1.ScrapeConfig, error)

func (*Framework) GetSilences

func (f *Framework) GetSilences(ctx context.Context, ns, n string) (models.GettableSilences, error)

func (*Framework) ListCRDs

ListCRDs gets a list of custom resource definitions from the apiserver.

func (*Framework) MakeAlertmanagerService

func (f *Framework) MakeAlertmanagerService(name, group string, serviceType v1.ServiceType) *v1.Service

func (*Framework) MakeAndCreateFiringRule

func (f *Framework) MakeAndCreateFiringRule(ctx context.Context, ns, name, alertName string) (*monitoringv1.PrometheusRule, error)

func (*Framework) MakeAndCreateInvalidRule

func (f *Framework) MakeAndCreateInvalidRule(ctx context.Context, ns, name, alertName string) (*monitoringv1.PrometheusRule, error)

func (*Framework) MakeBasicAlertmanager

func (f *Framework) MakeBasicAlertmanager(ns, name string, replicas int32) *monitoringv1.Alertmanager

func (*Framework) MakeBasicPodMonitor

func (f *Framework) MakeBasicPodMonitor(name string) *monitoringv1.PodMonitor

func (*Framework) MakeBasicPrometheus

func (f *Framework) MakeBasicPrometheus(ns, name, group string, replicas int32) *monitoringv1.Prometheus

func (*Framework) MakeBasicPrometheusAgent

func (f *Framework) MakeBasicPrometheusAgent(ns, name, group string, replicas int32) *monitoringv1alpha1.PrometheusAgent

func (*Framework) MakeBasicPrometheusAgentDaemonSet

func (f *Framework) MakeBasicPrometheusAgentDaemonSet(ns, name string) *monitoringv1alpha1.PrometheusAgent

func (*Framework) MakeBasicRule

func (f *Framework) MakeBasicRule(ns, name string, groups []monitoringv1.RuleGroup) *monitoringv1.PrometheusRule

func (*Framework) MakeBasicScrapeConfig

func (f *Framework) MakeBasicScrapeConfig(ns, name string) *monitoringv1alpha1.ScrapeConfig

func (*Framework) MakeBasicServiceMonitor

func (f *Framework) MakeBasicServiceMonitor(name string) *monitoringv1.ServiceMonitor

func (*Framework) MakeBasicStaticProbe

func (f *Framework) MakeBasicStaticProbe(name, url string, targets []string) *monitoringv1.Probe

func (*Framework) MakeBasicThanosRuler

func (f *Framework) MakeBasicThanosRuler(name string, replicas int32, queryEndpoint string) *monitoringv1.ThanosRuler

func (*Framework) MakeBlackBoxExporterService

func (f *Framework) MakeBlackBoxExporterService(ns, name string) *v1.Service

func (*Framework) MakeCRD

func (f *Framework) MakeCRD(source string) (*v1.CustomResourceDefinition, error)

MakeCRD creates a CustomResourceDefinition object from yaml manifest.

func (*Framework) MakeEchoDeployment

func (f *Framework) MakeEchoDeployment(group string) *appsv1.Deployment

func (*Framework) MakeEchoService

func (f *Framework) MakeEchoService(name, group string, serviceType v1.ServiceType) *v1.Service

func (*Framework) MakePrometheusService

func (f *Framework) MakePrometheusService(name, group string, serviceType v1.ServiceType) *v1.Service

func (*Framework) MakeThanosQuerierService

func (f *Framework) MakeThanosQuerierService(name string) *v1.Service

func (*Framework) MakeThanosRulerService

func (f *Framework) MakeThanosRulerService(name, group string, serviceType v1.ServiceType) *v1.Service

func (*Framework) NewTestCtx

func (f *Framework) NewTestCtx(t *testing.T) *TestCtx

func (*Framework) Nodes

func (f *Framework) Nodes(ctx context.Context) ([]v1.Node, error)

Nodes returns the list of nodes in the cluster.

func (*Framework) PatchAlertmanager

func (f *Framework) PatchAlertmanager(ctx context.Context, name, ns string, spec monitoringv1.AlertmanagerSpec) (*monitoringv1.Alertmanager, error)

func (*Framework) PatchAlertmanagerAndWaitUntilReady

func (f *Framework) PatchAlertmanagerAndWaitUntilReady(ctx context.Context, name, ns string, spec monitoringv1.AlertmanagerSpec) (*monitoringv1.Alertmanager, error)

func (*Framework) PatchPrometheus

func (f *Framework) PatchPrometheus(ctx context.Context, name, ns string, spec monitoringv1.PrometheusSpec) (*monitoringv1.Prometheus, error)

func (*Framework) PatchPrometheusAgent

func (*Framework) PatchPrometheusAgentAndWaitUntilReady

func (f *Framework) PatchPrometheusAgentAndWaitUntilReady(ctx context.Context, name, ns string, spec monitoringv1alpha1.PrometheusAgentSpec) (*monitoringv1alpha1.PrometheusAgent, error)

func (*Framework) PatchPrometheusAndWaitUntilReady

func (f *Framework) PatchPrometheusAndWaitUntilReady(ctx context.Context, name, ns string, spec monitoringv1.PrometheusSpec) (*monitoringv1.Prometheus, error)

func (*Framework) PatchThanosRuler

func (f *Framework) PatchThanosRuler(ctx context.Context, name, ns string, spec monitoringv1.ThanosRulerSpec) (*monitoringv1.ThanosRuler, error)

func (*Framework) PatchThanosRulerAndWaitUntilReady

func (f *Framework) PatchThanosRulerAndWaitUntilReady(ctx context.Context, name, ns string, spec monitoringv1.ThanosRulerSpec) (*monitoringv1.ThanosRuler, error)

func (*Framework) PollAlertmanagerConfiguration

func (f *Framework) PollAlertmanagerConfiguration(ctx context.Context, ns, amName string, conditions ...func(config string) error) error

PollAlertmanagerConfiguration retrieves the Alertmanager configuration via the Alertmanager's API and checks that all conditions return without error. It will retry every 10 second for 5 minutes before giving up.

func (*Framework) PrometheusQuery

func (f *Framework) PrometheusQuery(ns, svcName, scheme, query string) ([]PrometheusQueryResult, error)

func (*Framework) PrometheusSVCGetRequest

func (f *Framework) PrometheusSVCGetRequest(ctx context.Context, ns, svcName, scheme, endpoint string, query map[string]string) ([]byte, error)

func (*Framework) ProxyGetPod

func (f *Framework) ProxyGetPod(namespace, resourceName, path string) *rest.Request

ProxyGetPod expects resourceName as "[protocol:]podName[:portNameOrNumber]". protocol is optional and the valid values are "http" and "https". Without specifying protocol, "http" will be used. podName is mandatory. portNameOrNumber is optional. Without specifying portNameOrNumber, default port will be used.

func (*Framework) ProxyPostPod

func (f *Framework) ProxyPostPod(namespace, resourceName, path, body string) *rest.Request

ProxyPostPod expects resourceName as "[protocol:]podName[:portNameOrNumber]". protocol is optional and the valid values are "http" and "https". Without specifying protocol, "http" will be used. podName is mandatory. portNameOrNumber is optional. Without specifying portNameOrNumber, default port will be used.

func (*Framework) RemoveLabelsFromNamespace

func (f *Framework) RemoveLabelsFromNamespace(ctx context.Context, name string, labels ...string) error

func (*Framework) ScaleAlertmanagerAndWaitUntilReady

func (f *Framework) ScaleAlertmanagerAndWaitUntilReady(ctx context.Context, name, ns string, replicas int32) (*monitoringv1.Alertmanager, error)

func (*Framework) ScalePrometheusAgentAndWaitUntilReady

func (f *Framework) ScalePrometheusAgentAndWaitUntilReady(ctx context.Context, name, ns string, shards int32) (*monitoringv1alpha1.PrometheusAgent, error)

func (*Framework) ScalePrometheusAndWaitUntilReady

func (f *Framework) ScalePrometheusAndWaitUntilReady(ctx context.Context, name, ns string, shards int32) (*monitoringv1.Prometheus, error)

func (*Framework) SecretFromYaml

func (f *Framework) SecretFromYaml(filepath string) (*v1.Secret, error)

func (*Framework) SendAlertToAlertmanager

func (f *Framework) SendAlertToAlertmanager(ctx context.Context, ns, n string) error

SendAlertToAlertmanager sends an alert to the alertmanager in the given namespace (ns) with the given name (n).

func (*Framework) SetupNginxIngressControllerIncDefaultBackend

func (f *Framework) SetupNginxIngressControllerIncDefaultBackend(ctx context.Context, namespace string) error

func (*Framework) SetupPrometheusRBAC

func (f *Framework) SetupPrometheusRBAC(ctx context.Context, t *testing.T, testCtx *TestCtx, ns string)

func (*Framework) SetupPrometheusRBACGlobal

func (f *Framework) SetupPrometheusRBACGlobal(ctx context.Context, t *testing.T, testCtx *TestCtx, ns string)

func (*Framework) ThanosSVCGetRequest

func (f *Framework) ThanosSVCGetRequest(ctx context.Context, ns, svcName, endpoint string, query map[string]string) ([]byte, error)

func (*Framework) UpdateAlertmanagerReplicasAndWaitUntilReady

func (f *Framework) UpdateAlertmanagerReplicasAndWaitUntilReady(ctx context.Context, name, ns string, replicas int32) (*monitoringv1.Alertmanager, error)

func (*Framework) UpdateClusterRole

func (f *Framework) UpdateClusterRole(ctx context.Context, clusterRole *rbacv1.ClusterRole) error

func (*Framework) UpdateDeployment

func (f *Framework) UpdateDeployment(ctx context.Context, deployment *appsv1.Deployment) (*appsv1.Deployment, error)

func (*Framework) UpdatePrometheusReplicasAndWaitUntilReady

func (f *Framework) UpdatePrometheusReplicasAndWaitUntilReady(ctx context.Context, name, ns string, replicas int32) (*monitoringv1.Prometheus, error)

func (*Framework) UpdateRule

func (*Framework) UpdateScrapeConfig

func (*Framework) WaitForActiveTargets

func (f *Framework) WaitForActiveTargets(ctx context.Context, ns, svcName string, amount int) error

WaitForActiveTargets waits for a number of targets to be configured.

func (*Framework) WaitForAlertmanagerConfigToBeReloaded

func (f *Framework) WaitForAlertmanagerConfigToBeReloaded(ctx context.Context, ns, amName string, previousReloadTimestamp time.Time) error

func (*Framework) WaitForAlertmanagerConfigToContainString

func (f *Framework) WaitForAlertmanagerConfigToContainString(ctx context.Context, ns, amName, expected string) error

func (*Framework) WaitForAlertmanagerFiringAlert

func (f *Framework) WaitForAlertmanagerFiringAlert(ctx context.Context, ns, svcName, alertName string) error

func (*Framework) WaitForAlertmanagerPodInitialized

func (f *Framework) WaitForAlertmanagerPodInitialized(ctx context.Context, ns, name string, amountPeers int, forceEnableClusterMode, https bool) error

func (*Framework) WaitForAlertmanagerReady

func (f *Framework) WaitForAlertmanagerReady(ctx context.Context, a *monitoringv1.Alertmanager) (*monitoringv1.Alertmanager, error)

WaitForAlertmanagerReady waits for each individual pod as well as the cluster as a whole to be ready.

func (*Framework) WaitForConfigMapExist

func (f *Framework) WaitForConfigMapExist(ctx context.Context, ns, name string) (*v1.ConfigMap, error)

func (*Framework) WaitForConfigMapNotExist

func (f *Framework) WaitForConfigMapNotExist(ctx context.Context, ns, name string) error

func (*Framework) WaitForDeploymentReady

func (f *Framework) WaitForDeploymentReady(ctx context.Context, namespace, deploymentName string, expectedGeneration int64) error

func (*Framework) WaitForDiscoveryWorking

func (f *Framework) WaitForDiscoveryWorking(ctx context.Context, ns, svcName, prometheusName string) error

func (*Framework) WaitForHealthyTargets

func (f *Framework) WaitForHealthyTargets(ctx context.Context, ns, svcName string, amount int) error

WaitForHealthyTargets waits for a number of targets to be configured and healthy.

func (*Framework) WaitForPodsReady

func (f *Framework) WaitForPodsReady(ctx context.Context, namespace string, timeout time.Duration, expectedReplicas int, opts metav1.ListOptions) error

WaitForPodsReady waits for a selection of Pods to be running and each container to pass its readiness check.

func (*Framework) WaitForPodsRunImage

func (f *Framework) WaitForPodsRunImage(ctx context.Context, namespace string, expectedReplicas int, image string, opts metav1.ListOptions) error

func (*Framework) WaitForPrometheusAgentDSReady

func (f *Framework) WaitForPrometheusAgentDSReady(ctx context.Context, ns string, p *monitoringv1alpha1.PrometheusAgent) error

func (*Framework) WaitForPrometheusAgentReady

func (f *Framework) WaitForPrometheusAgentReady(ctx context.Context, p *monitoringv1alpha1.PrometheusAgent, timeout time.Duration) (*monitoringv1alpha1.PrometheusAgent, error)

func (*Framework) WaitForPrometheusFiringAlert

func (f *Framework) WaitForPrometheusFiringAlert(ctx context.Context, ns, svcName, alertName string) error

func (*Framework) WaitForPrometheusReady

func (f *Framework) WaitForPrometheusReady(ctx context.Context, p *monitoringv1.Prometheus, timeout time.Duration) (*monitoringv1.Prometheus, error)

func (*Framework) WaitForPrometheusRunImageAndReady

func (f *Framework) WaitForPrometheusRunImageAndReady(ctx context.Context, ns string, p *monitoringv1.Prometheus) error

func (*Framework) WaitForResourceAvailable

func (f *Framework) WaitForResourceAvailable(ctx context.Context, getResourceStatus func(context.Context) (resourceStatus, error), timeout time.Duration) error

WaitForResourceAvailable waits for a monitoring resource to report itself as being reconciled & available. If the resource isn't available within the given timeout, it returns an error.

func (*Framework) WaitForRule

func (f *Framework) WaitForRule(ctx context.Context, ns, name string) error

WaitForRule waits for a rule file with a given name to exist in a given namespace.

func (*Framework) WaitForServiceReady

func (f *Framework) WaitForServiceReady(ctx context.Context, namespace string, serviceName string) error

func (*Framework) WaitForThanosFiringAlert

func (f *Framework) WaitForThanosFiringAlert(ctx context.Context, ns, svcName, alertName string) error

func (*Framework) WaitForThanosRulerReady

func (f *Framework) WaitForThanosRulerReady(ctx context.Context, ns string, tr *monitoringv1.ThanosRuler, timeout time.Duration) error

func (*Framework) WriteEvents

func (f *Framework) WriteEvents(ctx context.Context, w io.Writer, ns string) error

WriteEvents writes the Kubernetes events for the given namespace. If the namespace is empty, all events are written.

func (*Framework) WritePodLogs

func (f *Framework) WritePodLogs(ctx context.Context, w io.Writer, ns, pod string, opts LogOptions) error

WritePodLogs writes the logs of a specified Pod.

type Key

type Key struct {
	Filename   string
	SecretName string
}

type LogOptions

type LogOptions struct {
	Container    string
	TailLines    int64
	SinceSeconds int64
}

type PromRemoteWriteTestConfig

type PromRemoteWriteTestConfig struct {
	ClientKey                 Key
	ClientCert                Cert
	CA                        Cert
	InsecureSkipVerify        bool
	RemoteWriteMessageVersion *monitoringv1.RemoteWriteMessageVersion
}

func (PromRemoteWriteTestConfig) AddRemoteWriteWithTLSToPrometheus

func (prwtc PromRemoteWriteTestConfig) AddRemoteWriteWithTLSToPrometheus(p *monitoringv1.Prometheus, url string)

AddRemoteWriteWithTLSToPrometheus configures Prometheus to send samples to the remote-write endpoint.

type PrometheusOperatorOpts

type PrometheusOperatorOpts struct {
	Namespace              string
	AllowedNamespaces      []string
	DeniedNamespaces       []string
	PrometheusNamespaces   []string
	AlertmanagerNamespaces []string
	EnableAdmissionWebhook bool
	ClusterRoleBindings    bool
	EnableScrapeConfigs    bool
	AdditionalArgs         []string
	EnabledFeatureGates    []string
}

type PrometheusQueryAPIResponse

type PrometheusQueryAPIResponse struct {
	Status string               `json:"status"`
	Data   *PrometheusQueryData `json:"data"`
}

type PrometheusQueryData

type PrometheusQueryData struct {
	ResultType string                  `json:"resultType"`
	Result     []PrometheusQueryResult `json:"result"`
}

type PrometheusQueryResult

type PrometheusQueryResult struct {
	Metric map[string]string `json:"metric"`
	Value  []interface{}     `json:"value"`
}

type Target

type Target struct {
	ScrapeURL string            `json:"scrapeUrl"`
	Labels    map[string]string `json:"labels"`
	LastError string            `json:"lastError"`
	Health    targetHealth      `json:"health"`
}

type TestCtx

type TestCtx struct {
	// contains filtered or unexported fields
}

func (*TestCtx) AddFinalizerFn

func (ctx *TestCtx) AddFinalizerFn(fn FinalizerFn)

func (*TestCtx) Cleanup

func (ctx *TestCtx) Cleanup(t *testing.T)

func (*TestCtx) ID

func (ctx *TestCtx) ID() string

ID returns an ascending ID based on the length of cleanUpFns. It is based on the premise that every new object also appends a new finalizerFn on cleanUpFns. This can e.g. be used to create multiple namespaces in the same test context.

type ThanosAlert

type ThanosAlert struct {
	Labels      map[string]string `json:"labels"`
	Annotations map[string]string `json:"annotations"`
	State       string            `json:"state"`
	ActiveAt    time.Time         `json:"activeAt"`
	Value       string            `json:"value"`
}

type ThanosAlertsAPIResponse

type ThanosAlertsAPIResponse struct {
	Status string            `json:"status"`
	Data   *ThanosAlertsData `json:"data"`
}

type ThanosAlertsData

type ThanosAlertsData struct {
	Alerts []ThanosAlert `json:"alerts"`
}

Jump to

Keyboard shortcuts

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