framework

package
v0.86.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2025 License: Apache-2.0 Imports: 63 Imported by: 1

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 added in v0.42.0

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 added in v0.42.0

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

func MakeService added in v0.42.0

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

func MakeThanosQuerier added in v0.82.1

func MakeThanosQuerier(endpoints ...string) (*appsv1.Deployment, error)

func PathToOSFile

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

func SourceToIOReader added in v0.60.0

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

func StartPortForward added in v0.49.0

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 added in v0.60.0

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

func WaitForCRDReady added in v0.42.0

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 added in v0.42.0

type Cert struct {
	Filename     string
	ResourceName string
	ResourceType int
}

type ExecOptions added in v0.44.0

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 added in v0.47.0

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 added in v0.49.0

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) AlertmanagerSVCGetRequest added in v0.86.0

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

func (*Framework) AssertCondition added in v0.68.0

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

func (*Framework) CheckPrometheusFiringAlert added in v0.24.0

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

func (*Framework) CheckThanosFiringAlert added in v0.48.0

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 added in v0.55.0

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

func (*Framework) CreateBlackBoxExporterAndWaitUntilReady added in v0.42.0

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

func (*Framework) CreateCertificateResources added in v0.72.0

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

func (*Framework) CreateDeployment added in v0.49.0

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

func (*Framework) CreateIngress added in v0.49.0

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

func (*Framework) CreateNamespace added in v0.49.0

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

func (*Framework) CreateOrUpdateAdmissionWebhookServer added in v0.60.0

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 added in v0.60.0

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

CreateOrUpdateCRD creates a custom resource definition on the apiserver.

func (*Framework) CreateOrUpdateCRDAndWaitUntilReady added in v0.60.0

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

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

func (*Framework) CreateOrUpdateClusterRole added in v0.60.0

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

func (*Framework) CreateOrUpdateDeploymentAndWaitUntilReady added in v0.60.0

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

func (*Framework) CreateOrUpdatePrometheusOperator added in v0.60.0

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

func (*Framework) CreateOrUpdatePrometheusOperatorWithOpts added in v0.69.1

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) CreateOrUpdateSecretWithCert added in v0.60.0

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

func (*Framework) CreateOrUpdateServiceAndWaitUntilReady added in v0.60.0

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

func (*Framework) CreatePrometheusAgentAndWaitUntilReady added in v0.66.0

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 added in v0.20.0

func (*Framework) CreateScrapeConfig added in v0.66.0

func (*Framework) CreateSilence added in v0.18.1

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

func (*Framework) CreateThanosRulerAndWaitUntilReady added in v0.42.0

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 added in v0.60.0

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

func (*Framework) DeleteClusterRole added in v0.49.0

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

func (*Framework) DeleteDeployment added in v0.49.0

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

func (*Framework) DeleteNamespace added in v0.49.0

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

func (*Framework) DeleteNginxIngressControllerIncDefaultBackend added in v0.49.0

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

func (*Framework) DeletePrometheusAgentAndWaitUntilGone added in v0.66.0

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

func (*Framework) DeletePrometheusAgentDSAndWaitUntilGone added in v0.77.0

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 added in v0.60.0

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

DeletePrometheusOperatorClusterResource delete Prometheus Operator cluster wide resources.

func (*Framework) DeleteRule added in v0.22.0

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

func (*Framework) DeleteScrapeConfig added in v0.66.0

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

func (*Framework) DeleteServiceAndWaitUntilGone added in v0.49.0

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

func (*Framework) DeleteThanosRulerAndWaitUntilGone added in v0.42.0

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

func (*Framework) EnableRemoteWriteReceiverWithTLS added in v0.72.0

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

func (*Framework) EnsureMetricsFromService added in v0.81.0

func (f *Framework) EnsureMetricsFromService(ctx context.Context, protocol, ns, service, portNumberOrName string, metrics ...string) error

EnsureMetricsFromService sends an HTTP(S) request to the /metrics endpoint of the service using the Proxy API, parses the response and returns the flot64 value of the first series matching the metric name. If protocol is empty, HTTP is used. If portNumberOfName is empty, the default pod's port is used.

func (*Framework) ExecWithOptions added in v0.44.0

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 added in v0.58.0

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

func (*Framework) GetCRD added in v0.42.0

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

GetCRD gets a custom resource definition from the apiserver.

func (*Framework) GetConfigResourceCondition added in v0.86.0

func (f *Framework) GetConfigResourceCondition(conditions []monitoringv1.ConfigResourceCondition, conditionType monitoringv1.ConditionType) (monitoringv1.ConfigResourceCondition, error)

GetConfigResourceCondition returns the condition type.

func (*Framework) GetDeployment added in v0.49.0

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

func (*Framework) GetHealthyTargets added in v0.42.0

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

func (*Framework) GetIngressIP added in v0.49.0

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

func (*Framework) GetMetricValueFromPod added in v0.81.0

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

GetMetricValueFromPod sends an HTTP(S) request to the /metrics endpoint of the pod using the Proxy API, parses the response and returns the flot64 value of the first series matching the metric name. If protocol is empty, HTTP is used. If portNumberOfName is empty, the default pod's port is used.

func (*Framework) GetPodRestartCount added in v0.24.0

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) GetPrometheusFiringAlerts added in v0.82.0

func (f *Framework) GetPrometheusFiringAlerts(ctx context.Context, ns, svcName, alertName string) ([]map[string]string, error)

GetPrometheusFiringAlerts returns a slice of alert labels matching the given alert name.

func (*Framework) GetRule added in v0.42.0

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

func (*Framework) GetScrapeConfig added in v0.66.0

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

func (*Framework) GetSilences added in v0.18.1

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

func (*Framework) GetWorkloadBinding added in v0.86.0

func (f *Framework) GetWorkloadBinding(bindings []monitoringv1.WorkloadBinding, workload metav1.Object, resource string) (monitoringv1.WorkloadBinding, error)

GetWorkloadBinding returns the binding matching the workload.

func (*Framework) ListCRDs added in v0.42.0

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 added in v0.20.0

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

func (*Framework) MakeAndCreateInvalidRule added in v0.42.0

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 added in v0.43.0

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 added in v0.66.0

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

func (*Framework) MakeBasicPrometheusAgentDaemonSet added in v0.76.0

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

func (*Framework) MakeBasicRule added in v0.20.0

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

func (*Framework) MakeBasicScrapeConfig added in v0.66.0

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

func (*Framework) MakeBasicServiceMonitor

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

func (*Framework) MakeBasicStaticProbe added in v0.42.0

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

func (*Framework) MakeBasicThanosRuler added in v0.42.0

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

func (*Framework) MakeBlackBoxExporterService added in v0.42.0

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

func (*Framework) MakeCRD added in v0.42.0

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

MakeCRD creates a CustomResourceDefinition object from yaml manifest.

func (*Framework) MakeEchoDeployment added in v0.42.0

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

func (*Framework) MakeEchoService added in v0.42.0

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 added in v0.21.0

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

func (*Framework) MakeThanosRulerService added in v0.48.0

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 added in v0.75.0

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

Nodes returns the list of nodes in the cluster.

func (*Framework) PatchAlertmanager added in v0.63.0

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

func (*Framework) PatchAlertmanagerAndWaitUntilReady added in v0.63.0

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

func (*Framework) PatchPrometheus added in v0.56.0

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

func (*Framework) PatchPrometheusAgent added in v0.69.1

func (*Framework) PatchPrometheusAgentAndWaitUntilReady added in v0.71.0

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

func (*Framework) PatchPrometheusAndWaitUntilReady added in v0.56.0

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

func (*Framework) PatchThanosRuler added in v0.65.0

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

func (*Framework) PatchThanosRulerAndWaitUntilReady added in v0.65.0

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

func (*Framework) PollAlertmanagerConfiguration added in v0.48.0

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 added in v0.51.0

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

func (*Framework) PrometheusSVCGetRequest added in v0.42.0

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

func (*Framework) ProxyGetPod added in v0.49.0

func (f *Framework) ProxyGetPod(ctx context.Context, scheme, namespace, pod, path string) ([]byte, error)

ProxyGetPod executes an HTTP(S) request against the default port of the pod using the Proxy API.

func (*Framework) ProxyPostPod added in v0.49.0

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 added in v0.49.0

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

func (*Framework) ScaleAlertmanagerAndWaitUntilReady added in v0.63.0

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

func (*Framework) ScalePrometheusAgentAndWaitUntilReady added in v0.71.0

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

func (*Framework) ScalePrometheusAndWaitUntilReady added in v0.56.0

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 added in v0.24.0

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 added in v0.49.0

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

func (*Framework) SetupPrometheusRBAC added in v0.49.0

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

func (*Framework) SetupPrometheusRBACGlobal added in v0.49.0

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

func (*Framework) ThanosSVCGetRequest added in v0.48.0

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

func (*Framework) UpdateAlertmanagerReplicasAndWaitUntilReady added in v0.76.0

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

func (*Framework) UpdateClusterRole added in v0.49.0

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

func (*Framework) UpdateDeployment added in v0.49.0

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

func (*Framework) UpdatePrometheusReplicasAndWaitUntilReady added in v0.71.0

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

func (*Framework) UpdateRule added in v0.20.0

func (*Framework) UpdateScrapeConfig added in v0.66.0

func (*Framework) WaitForActiveTargets added in v0.42.0

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 added in v0.42.0

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

func (*Framework) WaitForAlertmanagerConfigToContainString added in v0.20.0

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

func (*Framework) WaitForAlertmanagerFiringAlert added in v0.62.0

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

func (*Framework) WaitForAlertmanagerPodInitialized added in v0.58.0

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) WaitForBoundPVC added in v0.85.0

func (f *Framework) WaitForBoundPVC(ctx context.Context, ns string, labelSelector string, expected int) error

func (*Framework) WaitForConfigMapExist added in v0.20.0

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

func (*Framework) WaitForConfigMapNotExist added in v0.20.0

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

func (*Framework) WaitForConfigResWorkloadBindingCleanup added in v0.86.0

func (f *Framework) WaitForConfigResWorkloadBindingCleanup(ctx context.Context, getConfigResourceStatus func(context.Context) ([]monitoringv1.WorkloadBinding, error), workload metav1.Object, resource string, timeout time.Duration) error

WaitForConfigResWorkloadBindingCleanup waits for a configuration resource (serviceMonitor, podMonitor, scrapeConfig and probes) to remove the expected workload binding from the status. If the binding isn't removed within the given timeout, it returns an error.

func (*Framework) WaitForConfigResourceCondition added in v0.85.0

func (f *Framework) WaitForConfigResourceCondition(ctx context.Context, getConfigResourceStatus func(context.Context) ([]monitoringv1.WorkloadBinding, error), workload metav1.Object, resource string, conditionType monitoringv1.ConditionType, conditionStatus monitoringv1.ConditionStatus, timeout time.Duration) error

WaitForConfigResourceCondition waits for a configuration resource (serviceMonitor, podMonitor, scrapeConfig and probes) to meet the expected condition. If the condition isn't met within the given timeout, it returns an error.

func (*Framework) WaitForDeploymentReady added in v0.60.0

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

func (*Framework) WaitForDiscoveryWorking added in v0.42.0

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

func (*Framework) WaitForHealthyTargets added in v0.42.0

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) WaitForPodMonitorCondition added in v0.86.0

func (f *Framework) WaitForPodMonitorCondition(ctx context.Context, pm *monitoringv1.PodMonitor, workload metav1.Object, resource string, conditionType monitoringv1.ConditionType, conditionStatus monitoringv1.ConditionStatus, timeout time.Duration) (*monitoringv1.PodMonitor, error)

func (*Framework) WaitForPodMonitorWorkloadBindingCleanup added in v0.86.0

func (f *Framework) WaitForPodMonitorWorkloadBindingCleanup(ctx context.Context, pm *monitoringv1.PodMonitor, workload metav1.Object, resource string, timeout time.Duration) (*monitoringv1.PodMonitor, error)

func (*Framework) WaitForPodsReady added in v0.49.0

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 added in v0.49.0

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

func (*Framework) WaitForProbeCondition added in v0.86.0

func (f *Framework) WaitForProbeCondition(ctx context.Context, bm *monitoringv1.Probe, workload metav1.Object, resource string, conditionType monitoringv1.ConditionType, conditionStatus monitoringv1.ConditionStatus, timeout time.Duration) (*monitoringv1.Probe, error)

func (*Framework) WaitForProbeWorkloadBindingCleanup added in v0.86.0

func (f *Framework) WaitForProbeWorkloadBindingCleanup(ctx context.Context, bm *monitoringv1.Probe, workload metav1.Object, resource string, timeout time.Duration) (*monitoringv1.Probe, error)

func (*Framework) WaitForPrometheusAgentDSReady added in v0.76.0

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

func (*Framework) WaitForPrometheusAgentReady added in v0.66.0

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

func (*Framework) WaitForPrometheusFiringAlert added in v0.19.0

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 added in v0.63.0

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 added in v0.20.0

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) WaitForScrapeConfigCondition added in v0.86.0

func (f *Framework) WaitForScrapeConfigCondition(ctx context.Context, sc *monitoringv1alpha1.ScrapeConfig, workload metav1.Object, resource string, conditionType monitoringv1.ConditionType, conditionStatus monitoringv1.ConditionStatus, timeout time.Duration) (*monitoringv1alpha1.ScrapeConfig, error)

func (*Framework) WaitForScrapeConfigWorkloadBindingCleanup added in v0.86.0

func (f *Framework) WaitForScrapeConfigWorkloadBindingCleanup(ctx context.Context, sc *monitoringv1alpha1.ScrapeConfig, workload metav1.Object, resource string, timeout time.Duration) (*monitoringv1alpha1.ScrapeConfig, error)

func (*Framework) WaitForServiceMonitorCondition added in v0.85.0

func (f *Framework) WaitForServiceMonitorCondition(ctx context.Context, sm *monitoringv1.ServiceMonitor, workload metav1.Object, resource string, conditionType monitoringv1.ConditionType, conditionStatus monitoringv1.ConditionStatus, timeout time.Duration) (*monitoringv1.ServiceMonitor, error)

func (*Framework) WaitForServiceMonitorWorkloadBindingCleanup added in v0.86.0

func (f *Framework) WaitForServiceMonitorWorkloadBindingCleanup(ctx context.Context, sm *monitoringv1.ServiceMonitor, workload metav1.Object, resource string, timeout time.Duration) (*monitoringv1.ServiceMonitor, error)

func (*Framework) WaitForServiceReady added in v0.49.0

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

func (*Framework) WaitForThanosFiringAlert added in v0.48.0

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

func (*Framework) WaitForThanosRulerReady added in v0.42.0

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

func (*Framework) WriteEvents added in v0.78.0

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 added in v0.78.0

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 added in v0.42.0

type Key struct {
	Filename   string
	SecretName string
}

type LogOptions added in v0.78.0

type LogOptions struct {
	Container    string
	TailLines    int64
	SinceSeconds int64
}

type PromRemoteWriteTestConfig added in v0.42.0

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

func (PromRemoteWriteTestConfig) AddRemoteWriteWithTLSToPrometheus added in v0.72.0

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

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

type PrometheusOperatorOpts added in v0.69.1

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

type PrometheusQueryAPIResponse added in v0.42.0

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

type PrometheusQueryData added in v0.42.0

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

type PrometheusQueryResult added in v0.42.0

type PrometheusQueryResult struct {
	Metric map[string]string `json:"metric"`
	Value  []any             `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 added in v0.48.0

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 added in v0.48.0

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

type ThanosAlertsData added in v0.48.0

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