templates

package
v4.0.0-...-faced96 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	KubeRBACProxyPortNumber              = 9339
	PrometheusKubeRBACProxyConfigMapName = "prometheus-kube-rbac-proxy-config"
	AlertManagerEndpointName             = "alertmanager-operated"
)
View Source
var AlertmanagerSpecTemplate = promv1.AlertmanagerSpec{
	Replicas:  ptr.To(int32(1)),
	Resources: defaults.MonitoringResources["alertmanager"],
}
View Source
var K8sMetricsServiceMonitorSpecTemplate = promv1.ServiceMonitorSpec{

	Endpoints: []promv1.Endpoint{
		{
			Port:          "web",
			Path:          "/federate",
			Scheme:        "https",
			ScrapeTimeout: "1m",
			Interval:      "2m",
			HonorLabels:   true,
			MetricRelabelConfigs: []*promv1.RelabelConfig{
				{
					Action: "labeldrop",
					Regex:  "prometheus_replica",
				},
			},
			RelabelConfigs: []*promv1.RelabelConfig{
				{
					Action:      "replace",
					Regex:       "prometheus-k8s-.*",
					Replacement: "",
					SourceLabels: []promv1.LabelName{
						"pod",
					},
					TargetLabel: "pod",
				},
			},
			TLSConfig: &promv1.TLSConfig{
				SafeTLSConfig: promv1.SafeTLSConfig{
					InsecureSkipVerify: true,
				},
			},
			Params:          params,
			BearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token",
		},
	},
	NamespaceSelector: promv1.NamespaceSelector{
		MatchNames: []string{"openshift-monitoring"},
	},
	Selector: metav1.LabelSelector{
		MatchLabels: map[string]string{
			"app.kubernetes.io/component": "prometheus",
		},
	},
}
View Source
var KubeRBACProxyConfigMap = corev1.ConfigMap{
	Data: map[string]string{
		"config-file.json": (func() string {
			config := struct {
				Authorization struct {
					Static [2]struct {
						Path            string `json:"path"`
						ResourceRequest bool   `json:"resourceRequest"`
						Verb            string `json:"verb"`
					} `json:"static"`
				} `json:"authorization"`
			}{}

			item := &config.Authorization.Static[0]
			item.Verb = "get"
			item.Path = "/metrics"
			item.ResourceRequest = false

			item = &config.Authorization.Static[1]
			item.Verb = "get"
			item.Path = "/federate"
			item.ResourceRequest = false

			raw, _ := json.Marshal(config)
			return string(raw)
		})(),
	},
}
View Source
var PrometheusSpecTemplate = promv1.PrometheusSpec{
	CommonPrometheusFields: promv1.CommonPrometheusFields{
		ServiceAccountName:     "prometheus-k8s",
		ServiceMonitorSelector: &serviceMonitorSelector,
		ListenLocal:            true,
		Resources:              defaults.MonitoringResources["prometheus"],
		Containers: []corev1.Container{{
			Name: "kube-rbac-proxy",

			Image: "gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0",
			Args: []string{
				fmt.Sprintf("--secure-listen-address=0.0.0.0:%d", KubeRBACProxyPortNumber),
				"--upstream=http://127.0.0.1:9090/",
				"--logtostderr=true",
				"--v=10",
				"--tls-cert-file=/etc/tls-secret/tls.crt",
				"--tls-private-key-file=/etc/tls-secret/tls.key",
				"--client-ca-file=/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt",
				"--config-file=/etc/kube-rbac-config/config-file.json",
			},
			Ports: []corev1.ContainerPort{{
				Name:          "https",
				ContainerPort: int32(KubeRBACProxyPortNumber),
			}},
			VolumeMounts: []corev1.VolumeMount{
				{
					Name:      "serving-cert",
					MountPath: "/etc/tls-secret",
				},
				{
					Name:      "kube-rbac-config",
					MountPath: "/etc/kube-rbac-config",
				},
			},
			Resources: defaults.MonitoringResources["kube-rbac-proxy"],
		}},
		Volumes: []corev1.Volume{
			{
				Name: "serving-cert",
				VolumeSource: corev1.VolumeSource{
					Secret: &corev1.SecretVolumeSource{
						SecretName: "prometheus-serving-cert-secret",
					},
				},
			},
			{
				Name: "kube-rbac-config",
				VolumeSource: corev1.VolumeSource{
					ConfigMap: &corev1.ConfigMapVolumeSource{
						LocalObjectReference: corev1.LocalObjectReference{
							Name: PrometheusKubeRBACProxyConfigMapName,
						},
					},
				},
			},
		},
	},
	RuleSelector:   &ruleSelector,
	EnableAdminAPI: false,
	Alerting: &promv1.AlertingSpec{
		Alertmanagers: []promv1.AlertmanagerEndpoints{{
			Name: AlertManagerEndpointName,
			Port: intstr.FromString("web"),
		}},
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

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