Documentation ¶
Index ¶
- Constants
- func AdvancedBookInfoRoutingRules(namespace string, targetMesh *core.ResourceRef) v1.RoutingRuleList
- func BookInfoPods(svcNamespace string) kubernetes.PodList
- func BookInfoRoutingRules(namespace string, targetMesh *core.ResourceRef) v1.RoutingRuleList
- func BookInfoSecurityRules(namespace string, targetMesh *core.ResourceRef) v1.SecurityRuleList
- func BookInfoServices(namespace string) skkube.ServiceList
- func BookInfoUpstreams(namespace string) v1.UpstreamList
- func FaultInjectionRuleSpec(fi *v1.FaultInjection) *v1.RoutingRuleSpec
- func GlooIstall(name, namespace, installNs, version string, disabled bool) *v1.Install
- func GlooIstallWithMeshes(name, namespace, installNs, version string, disabled bool, ...) *v1.Install
- func GlooMeshIngress(namespace string, meshes []*core.ResourceRef) *v1.MeshIngress
- func GlooMeshIngressInstallNs(namespace, installNs string, meshes []*core.ResourceRef) *v1.MeshIngress
- func InputIstioManifests(ns string) helmchart.Manifests
- func InputIstioPrometheusScrapeConfigs() []*config.ScrapeConfig
- func InputTlsSecret(name, namespace string) *v1.TlsSecret
- func IstioInstall(name, namespace, installNs, version string, disabled bool) *v1.Install
- func IstioMesh(namespace string, secretRef *core.ResourceRef) *v1.Mesh
- func IstioMeshWithInstallNs(namespace, installNs string, secretRef *core.ResourceRef) *v1.Mesh
- func IstioMeshWithInstallNsPrometheus(namespace, installNs string, secretRef *core.ResourceRef, ...) *v1.Mesh
- func IstioMeshWithVersion(namespace, version string, secretRef *core.ResourceRef) *v1.Mesh
- func LinkerdInstall(name, namespace, installNs, version string, disabled bool) *v1.Install
- func LinkerdMesh(namespace string, secretRef *core.ResourceRef) *v1.Mesh
- func LinkerdMeshWithInstallNs(namespace, installNs string, secretRef *core.ResourceRef) *v1.Mesh
- func LinkerdMeshWithInstallNsPrometheus(namespace, installNs string, secretRef *core.ResourceRef, ...) *v1.Mesh
- func LinkerdMeshWithVersion(namespace, installNs, version string) *v1.Mesh
- func PrometheusConfig(name, namespace string) *v1.PrometheusConfig
- func PrometheusConfigMap(name, namespace string) *kubev1.ConfigMap
- func RetryRuleSpec() *v1.RoutingRuleSpec
- func SampleFaultInjectionRuleSpec() *v1.RoutingRuleSpec
- func TrafficShiftingRuleSpec(destinations ...core.ResourceRef) *v1.RoutingRuleSpec
Constants ¶
View Source
const ( IstioTestInstallNs = "istio-was-installed-herr" IstioTestVersion = "1.0.6" )
View Source
const ( LinkerdTestInstallNs = "linkerd-was-installed-herr" LinkerdTestVersion = "2.2.1" )
View Source
const ( RootCert = `` /* 1424-byte string literal not displayed */ CaCert = `` /* 1318-byte string literal not displayed */ CertChain = `` /* 1318-byte string literal not displayed */ CaKey = `` /* 1679-byte string literal not displayed */ )
View Source
const BasicPrometheusConfig = `
# source https://raw.githubusercontent.com/prometheus/prometheus/master/documentation/examples/prometheus-kubernetes.yml
# A scrape configuration for running Prometheus on a Kubernetes cluster.
# This uses separate scrape configs for cluster components (i.e. API server, node)
# and services to allow each to use different authentication configs.
#
# Kubernetes labels will be added as Prometheus labels on metrics via the
# ` + "`" + `labelmap` + "`" + ` relabeling action.
#
# If you are using Kubernetes 1.7.2 or earlier, please take note of the comments
# for the kubernetes-cadvisor job; you will need to edit or remove this job.
# Scrape config for API servers.
#
# Kubernetes exposes API servers as endpoints to the default/kubernetes
# service so this uses ` + "`" + `endpoints` + "`" + ` role and uses relabelling to only keep
# the endpoints associated with the default/kubernetes service using the
# default named port ` + "`" + `https` + "`" + `. This works for single API server deployments as
# well as HA API server deployments.
scrape_configs:
- job_name: 'kubernetes-apiservers'
kubernetes_sd_configs:
- role: endpoints
# Default to scraping over https. If required, just disable this or change to
# ` + "`" + `http` + "`" + `.
scheme: https
# This TLS & bearer token file config is used to connect to the actual scrape
# endpoints for cluster components. This is separate to discovery auth
# configuration because discovery & scraping are two separate concerns in
# Prometheus. The discovery auth config is automatic if Prometheus runs inside
# the cluster. Otherwise, more config options have to be provided within the
# <kubernetes_sd_config>.
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
# If your node certificates are self-signed or use a different CA to the
# master CA, then disable certificate verification below. Note that
# certificate verification is an integral part of a secure infrastructure
# so this should only be disabled in a controlled environment. You can
# disable certificate verification by uncommenting the line below.
#
# insecure_skip_verify: true
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
# Keep only the default/kubernetes service endpoints for the https port. This
# will add targets for each API server which Kubernetes adds an endpoint to
# the default/kubernetes service.
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
# Scrape config for nodes (kubelet).
#
# Rather than connecting directly to the node, the scrape is proxied though the
# Kubernetes apiserver. This means it will work if Prometheus is running out of
# cluster, or can't connect to nodes for some other reason (e.g. because of
# firewalling).
- job_name: 'kubernetes-nodes'
# Default to scraping over https. If required, just disable this or change to
# ` + "`" + `http` + "`" + `.
scheme: https
# This TLS & bearer token file config is used to connect to the actual scrape
# endpoints for cluster components. This is separate to discovery auth
# configuration because discovery & scraping are two separate concerns in
# Prometheus. The discovery auth config is automatic if Prometheus runs inside
# the cluster. Otherwise, more config options have to be provided within the
# <kubernetes_sd_config>.
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:443
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics
# Scrape config for Kubelet cAdvisor.
#
# This is required for Kubernetes 1.7.3 and later, where cAdvisor metrics
# (those whose names begin with 'container_') have been removed from the
# Kubelet metrics endpoint. This job scrapes the cAdvisor endpoint to
# retrieve those metrics.
#
# In Kubernetes 1.7.0-1.7.2, these metrics are only exposed on the cAdvisor
# HTTP endpoint; use "replacement: /api/v1/nodes/${1}:4194/proxy/metrics"
# in that case (and ensure cAdvisor's HTTP server hasn't been disabled with
# the --cadvisor-port=0 Kubelet flag).
#
# This job is not necessary and should be removed in Kubernetes 1.6 and
# earlier versions, or it will cause the metrics to be scraped twice.
- job_name: 'kubernetes-cadvisor'
# Default to scraping over https. If required, just disable this or change to
# ` + "`" + `http` + "`" + `.
scheme: https
# This TLS & bearer token file config is used to connect to the actual scrape
# endpoints for cluster components. This is separate to discovery auth
# configuration because discovery & scraping are two separate concerns in
# Prometheus. The discovery auth config is automatic if Prometheus runs inside
# the cluster. Otherwise, more config options have to be provided within the
# <kubernetes_sd_config>.
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:443
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
# Example scrape config for service endpoints.
#
# The relabeling allows the actual service scrape endpoint to be configured
# for all or only some endpoints.
- job_name: 'kubernetes-service-endpoints'
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
# Example relabel to scrape only endpoints that have
# "example.io/should_be_scraped = true" annotation.
# - source_labels: [__meta_kubernetes_service_annotation_example_io_should_be_scraped]
# action: keep
# regex: true
#
# Example relabel to customize metric path based on endpoints
# "example.io/metric_path = <metric path>" annotation.
# - source_labels: [__meta_kubernetes_service_annotation_example_io_metric_path]
# action: replace
# target_label: __metrics_path__
# regex: (.+)
#
# Example relabel to scrape only single, desired port for the service based
# on endpoints "example.io/scrape_port = <port>" annotation.
# - source_labels: [__address__, __meta_kubernetes_service_annotation_example_io_scrape_port]
# action: replace
# regex: ([^:]+)(?::\d+)?;(\d+)
# replacement: $1:$2
# target_label: __address__
#
# Example relabel to configure scrape scheme for all service scrape targets
# based on endpoints "example.io/scrape_scheme = <scheme>" annotation.
# - source_labels: [__meta_kubernetes_service_annotation_example_io_scrape_scheme]
# action: replace
# target_label: __scheme__
# regex: (https?)
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: kubernetes_name
# Example scrape config for probing services via the Blackbox Exporter.
#
# The relabeling allows the actual service scrape endpoint to be configured
# for all or only some services.
- job_name: 'kubernetes-services'
metrics_path: /probe
params:
module: [http_2xx]
kubernetes_sd_configs:
- role: service
relabel_configs:
# Example relabel to probe only some services that have "example.io/should_be_probed = true" annotation
# - source_labels: [__meta_kubernetes_service_annotation_example_io_should_be_probed]
# action: keep
# regex: true
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: blackbox-exporter.example.com:9115
- source_labels: [__param_target]
target_label: instance
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
target_label: kubernetes_name
# Example scrape config for probing ingresses via the Blackbox Exporter.
#
# The relabeling allows the actual ingress scrape endpoint to be configured
# for all or only some services.
- job_name: 'kubernetes-ingresses'
metrics_path: /probe
params:
module: [http_2xx]
kubernetes_sd_configs:
- role: ingress
relabel_configs:
# Example relabel to probe only some ingresses that have "example.io/should_be_probed = true" annotation
# - source_labels: [__meta_kubernetes_ingress_annotation_example_io_should_be_probed]
# action: keep
# regex: true
- source_labels: [__meta_kubernetes_ingress_scheme,__address__,__meta_kubernetes_ingress_path]
regex: (.+);(.+);(.+)
replacement: ${1}://${2}${3}
target_label: __param_target
- target_label: __address__
replacement: blackbox-exporter.example.com:9115
- source_labels: [__param_target]
target_label: instance
- action: labelmap
regex: __meta_kubernetes_ingress_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_ingress_name]
target_label: kubernetes_name
# Example scrape config for pods
#
# The relabeling allows the actual pod scrape to be configured
# for all the declared ports (or port-free target if none is declared)
# or only some ports.
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
# Example relabel to scrape only pods that have
# "example.io/should_be_scraped = true" annotation.
# - source_labels: [__meta_kubernetes_pod_annotation_example_io_should_be_scraped]
# action: keep
# regex: true
#
# Example relabel to customize metric path based on pod
# "example.io/metric_path = <metric path>" annotation.
# - source_labels: [__meta_kubernetes_pod_annotation_example_io_metric_path]
# action: replace
# target_label: __metrics_path__
# regex: (.+)
#
# Example relabel to scrape only single, desired port for the pod
# based on pod "example.io/scrape_port = <port>" annotation.
# Note that __address__ is modified here, so if pod containers' ports
# are declared, they all will be ignored.
# - source_labels: [__address__, __meta_kubernetes_pod_annotation_example_io_scrape_port]
# action: replace
# regex: ([^:]+)(?::\d+)?;(\d+)
# replacement: $1:$2
# target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
`
Variables ¶
This section is empty.
Functions ¶
func AdvancedBookInfoRoutingRules ¶ added in v0.3.11
func AdvancedBookInfoRoutingRules(namespace string, targetMesh *core.ResourceRef) v1.RoutingRuleList
func BookInfoPods ¶
func BookInfoPods(svcNamespace string) kubernetes.PodList
func BookInfoRoutingRules ¶
func BookInfoRoutingRules(namespace string, targetMesh *core.ResourceRef) v1.RoutingRuleList
func BookInfoSecurityRules ¶ added in v0.3.22
func BookInfoSecurityRules(namespace string, targetMesh *core.ResourceRef) v1.SecurityRuleList
func BookInfoServices ¶ added in v0.3.22
func BookInfoServices(namespace string) skkube.ServiceList
func BookInfoUpstreams ¶
func BookInfoUpstreams(namespace string) v1.UpstreamList
func FaultInjectionRuleSpec ¶
func FaultInjectionRuleSpec(fi *v1.FaultInjection) *v1.RoutingRuleSpec
func GlooIstall ¶
func GlooIstallWithMeshes ¶ added in v0.3.8
func GlooMeshIngress ¶ added in v0.3.8
func GlooMeshIngress(namespace string, meshes []*core.ResourceRef) *v1.MeshIngress
func GlooMeshIngressInstallNs ¶ added in v0.3.8
func GlooMeshIngressInstallNs(namespace, installNs string, meshes []*core.ResourceRef) *v1.MeshIngress
func InputIstioManifests ¶ added in v0.3.8
func InputIstioPrometheusScrapeConfigs ¶
func InputIstioPrometheusScrapeConfigs() []*config.ScrapeConfig
func InputTlsSecret ¶
func IstioInstall ¶
func IstioMeshWithInstallNs ¶
func IstioMeshWithInstallNs(namespace, installNs string, secretRef *core.ResourceRef) *v1.Mesh
func IstioMeshWithInstallNsPrometheus ¶
func IstioMeshWithInstallNsPrometheus(namespace, installNs string, secretRef *core.ResourceRef, promCfgRefs []core.ResourceRef) *v1.Mesh
func IstioMeshWithVersion ¶ added in v0.3.11
func IstioMeshWithVersion(namespace, version string, secretRef *core.ResourceRef) *v1.Mesh
func LinkerdInstall ¶ added in v0.3.9
func LinkerdMesh ¶ added in v0.3.11
func LinkerdMesh(namespace string, secretRef *core.ResourceRef) *v1.Mesh
func LinkerdMeshWithInstallNs ¶ added in v0.3.11
func LinkerdMeshWithInstallNs(namespace, installNs string, secretRef *core.ResourceRef) *v1.Mesh
func LinkerdMeshWithInstallNsPrometheus ¶ added in v0.3.11
func LinkerdMeshWithInstallNsPrometheus(namespace, installNs string, secretRef *core.ResourceRef, promCfgRefs []core.ResourceRef) *v1.Mesh
func LinkerdMeshWithVersion ¶ added in v0.3.11
func PrometheusConfig ¶
func PrometheusConfig(name, namespace string) *v1.PrometheusConfig
func PrometheusConfigMap ¶
func RetryRuleSpec ¶ added in v0.3.11
func RetryRuleSpec() *v1.RoutingRuleSpec
func SampleFaultInjectionRuleSpec ¶ added in v0.3.11
func SampleFaultInjectionRuleSpec() *v1.RoutingRuleSpec
func TrafficShiftingRuleSpec ¶
func TrafficShiftingRuleSpec(destinations ...core.ResourceRef) *v1.RoutingRuleSpec
Types ¶
This section is empty.
Source Files ¶
Click to show internal directories.
Click to hide internal directories.