mirror of
				https://github.com/prometheus-operator/kube-prometheus.git
				synced 2025-10-30 23:51:01 +01:00 
			
		
		
		
	jsonnet/kube-prometheus: use refactored upstream prometheus-operator library
This commit is contained in:
		
							parent
							
								
									e2c50fa40f
								
							
						
					
					
						commit
						bed5cc8efb
					
				| @ -1,16 +1,14 @@ | |||||||
| local kubeRbacProxyContainer = import './kube-rbac-proxy/containerMixin.libsonnet'; |  | ||||||
| 
 |  | ||||||
| local alertmanager = import './alertmanager/alertmanager.libsonnet'; | local alertmanager = import './alertmanager/alertmanager.libsonnet'; | ||||||
| local blackboxExporter = import './blackbox-exporter/blackbox-exporter.libsonnet'; | local blackboxExporter = import './blackbox-exporter/blackbox-exporter.libsonnet'; | ||||||
| local kubeStateMetrics = import './kube-state-metrics/kube-state-metrics.libsonnet'; | local kubeStateMetrics = import './kube-state-metrics/kube-state-metrics.libsonnet'; | ||||||
| local nodeExporter = import './node-exporter/node-exporter.libsonnet'; | local nodeExporter = import './node-exporter/node-exporter.libsonnet'; | ||||||
| local prometheusAdapter = import './prometheus-adapter/prometheus-adapter.libsonnet'; | local prometheusAdapter = import './prometheus-adapter/prometheus-adapter.libsonnet'; | ||||||
|  | local prometheusOperator = import './prometheus-operator/prometheus-operator.libsonnet'; | ||||||
| local prometheus = import './prometheus/prometheus.libsonnet'; | local prometheus = import './prometheus/prometheus.libsonnet'; | ||||||
| 
 | 
 | ||||||
| local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; | local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; | ||||||
| 
 | 
 | ||||||
| (import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet') + | (import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet') + | ||||||
| (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/prometheus-operator/prometheus-operator.libsonnet') + |  | ||||||
| { | { | ||||||
|   alertmanager: alertmanager({ |   alertmanager: alertmanager({ | ||||||
|     name: $._config.alertmanagerName, |     name: $._config.alertmanagerName, | ||||||
| @ -47,6 +45,15 @@ local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; | |||||||
|     image: 'directxman12/k8s-prometheus-adapter:v0.8.2', |     image: 'directxman12/k8s-prometheus-adapter:v0.8.2', | ||||||
|     prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/', |     prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/', | ||||||
|   }), |   }), | ||||||
|  |   prometheusOperator: prometheusOperator({ | ||||||
|  |     namespace: $._config.namespace, | ||||||
|  |     version: '0.45.0', | ||||||
|  |     image: 'quay.io/prometheus-operator/prometheus-operator:v0.45.0', | ||||||
|  |     configReloaderImage: 'quay.io/prometheus-operator/prometheus-config-reloader:v0.45.0', | ||||||
|  |     commonLabels+: { | ||||||
|  |       'app.kubernetes.io/part-of': 'kube-prometheus', | ||||||
|  |     }, | ||||||
|  |   }), | ||||||
|   mixins+:: monitoringMixins({ |   mixins+:: monitoringMixins({ | ||||||
|     namespace: $._config.namespace, |     namespace: $._config.namespace, | ||||||
|     alertmanagerName: $._config.alertmanagerName, |     alertmanagerName: $._config.alertmanagerName, | ||||||
| @ -76,62 +83,6 @@ local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; | |||||||
|       }, |       }, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|   prometheusOperator+:: |  | ||||||
|     { |  | ||||||
|       service+: { |  | ||||||
|         spec+: { |  | ||||||
|           ports: [ |  | ||||||
|             { |  | ||||||
|               name: 'https', |  | ||||||
|               port: 8443, |  | ||||||
|               targetPort: 'https', |  | ||||||
|             }, |  | ||||||
|           ], |  | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|       serviceMonitor+: { |  | ||||||
|         spec+: { |  | ||||||
|           endpoints: [ |  | ||||||
|             { |  | ||||||
|               port: 'https', |  | ||||||
|               scheme: 'https', |  | ||||||
|               honorLabels: true, |  | ||||||
|               bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', |  | ||||||
|               tlsConfig: { |  | ||||||
|                 insecureSkipVerify: true, |  | ||||||
|               }, |  | ||||||
|             }, |  | ||||||
|           ], |  | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|       clusterRole+: { |  | ||||||
|         rules+: [ |  | ||||||
|           { |  | ||||||
|             apiGroups: ['authentication.k8s.io'], |  | ||||||
|             resources: ['tokenreviews'], |  | ||||||
|             verbs: ['create'], |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             apiGroups: ['authorization.k8s.io'], |  | ||||||
|             resources: ['subjectaccessreviews'], |  | ||||||
|             verbs: ['create'], |  | ||||||
|           }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     } + |  | ||||||
|     (kubeRbacProxyContainer { |  | ||||||
|        config+:: { |  | ||||||
|          kubeRbacProxy: { |  | ||||||
|            image: $._config.imageRepos.kubeRbacProxy + ':' + $._config.versions.kubeRbacProxy, |  | ||||||
|            name: 'kube-rbac-proxy', |  | ||||||
|            securePortName: 'https', |  | ||||||
|            securePort: 8443, |  | ||||||
|            secureListenAddress: ':%d' % self.securePort, |  | ||||||
|            upstream: 'http://127.0.0.1:8080/', |  | ||||||
|            tlsCipherSuites: $._config.tlsCipherSuites, |  | ||||||
|          }, |  | ||||||
|        }, |  | ||||||
|      }).deploymentMixin, |  | ||||||
| 
 | 
 | ||||||
|   grafana+:: { |   grafana+:: { | ||||||
|     local dashboardDefinitions = super.dashboardDefinitions, |     local dashboardDefinitions = super.dashboardDefinitions, | ||||||
|  | |||||||
| @ -0,0 +1,109 @@ | |||||||
|  | local krp = (import '../kube-rbac-proxy/container.libsonnet'); | ||||||
|  | local prometheusOperator = import 'github.com/prometheus-operator/prometheus-operator/jsonnet/prometheus-operator/prometheus-operator.libsonnet'; | ||||||
|  | 
 | ||||||
|  | local defaults = { | ||||||
|  |   local defaults = self, | ||||||
|  |   name: 'prometheus-operator', | ||||||
|  |   namespace: error 'must provide namespace', | ||||||
|  |   version: error 'must provide version', | ||||||
|  |   image: error 'must provide image', | ||||||
|  |   configReloaderImage: error 'must provide config reloader image', | ||||||
|  |   resources: { | ||||||
|  |     limits: { cpu: '200m', memory: '200Mi' }, | ||||||
|  |     requests: { cpu: '100m', memory: '100Mi' }, | ||||||
|  |   }, | ||||||
|  |   commonLabels:: { | ||||||
|  |     'app.kubernetes.io/name': defaults.name, | ||||||
|  |     'app.kubernetes.io/version': defaults.version, | ||||||
|  |     'app.kubernetes.io/component': 'controller', | ||||||
|  |     'app.kubernetes.io/part-of': 'kube-prometheus', | ||||||
|  |   }, | ||||||
|  |   selectorLabels:: { | ||||||
|  |     [labelName]: defaults.commonLabels[labelName] | ||||||
|  |     for labelName in std.objectFields(defaults.commonLabels) | ||||||
|  |     if !std.setMember(labelName, ['app.kubernetes.io/version']) | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | function(params) { | ||||||
|  |   local po = self, | ||||||
|  |   config:: defaults + params, | ||||||
|  |   // Safety check | ||||||
|  |   assert std.isObject(po.config.resources), | ||||||
|  | 
 | ||||||
|  |   //TODO(paulfantom): it would be better to include it on the same level as self. | ||||||
|  |   local polib = prometheusOperator(po.config), | ||||||
|  | 
 | ||||||
|  |   '0alertmanagerConfigCustomResourceDefinition': polib['0alertmanagerConfigCustomResourceDefinition'], | ||||||
|  |   '0alertmanagerCustomResourceDefinition': polib['0alertmanagerCustomResourceDefinition'], | ||||||
|  |   '0podmonitorCustomResourceDefinition': polib['0podmonitorCustomResourceDefinition'], | ||||||
|  |   '0probeCustomResourceDefinition': polib['0probeCustomResourceDefinition'], | ||||||
|  |   '0prometheusCustomResourceDefinition': polib['0prometheusCustomResourceDefinition'], | ||||||
|  |   '0prometheusruleCustomResourceDefinition': polib['0prometheusruleCustomResourceDefinition'], | ||||||
|  |   '0servicemonitorCustomResourceDefinition': polib['0servicemonitorCustomResourceDefinition'], | ||||||
|  |   '0thanosrulerCustomResourceDefinition': polib['0thanosrulerCustomResourceDefinition'], | ||||||
|  | 
 | ||||||
|  |   serviceAccount: polib.serviceAccount, | ||||||
|  |   service: polib.service { | ||||||
|  |     spec+: { | ||||||
|  |       ports: [ | ||||||
|  |         { | ||||||
|  |           name: 'https', | ||||||
|  |           port: 8443, | ||||||
|  |           targetPort: 'https', | ||||||
|  |         }, | ||||||
|  |       ], | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   serviceMonitor: polib.serviceMonitor { | ||||||
|  |     spec+: { | ||||||
|  |       endpoints: [ | ||||||
|  |         { | ||||||
|  |           port: 'https', | ||||||
|  |           scheme: 'https', | ||||||
|  |           honorLabels: true, | ||||||
|  |           bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', | ||||||
|  |           tlsConfig: { | ||||||
|  |             insecureSkipVerify: true, | ||||||
|  |           }, | ||||||
|  |         }, | ||||||
|  |       ], | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   clusterRoleBinding: polib.clusterRoleBinding, | ||||||
|  |   clusterRole: polib.clusterRole { | ||||||
|  |     rules+: [ | ||||||
|  |       { | ||||||
|  |         apiGroups: ['authentication.k8s.io'], | ||||||
|  |         resources: ['tokenreviews'], | ||||||
|  |         verbs: ['create'], | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         apiGroups: ['authorization.k8s.io'], | ||||||
|  |         resources: ['subjectaccessreviews'], | ||||||
|  |         verbs: ['create'], | ||||||
|  |       }, | ||||||
|  |     ], | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   local kubeRbacProxy = krp({ | ||||||
|  |     name: 'kube-rbac-proxy', | ||||||
|  |     upstream: 'http://127.0.0.1:8080/', | ||||||
|  |     secureListenAddress: ':8443', | ||||||
|  |     ports: [ | ||||||
|  |       { name: 'https', containerPort: 8443 }, | ||||||
|  |     ], | ||||||
|  |   }), | ||||||
|  | 
 | ||||||
|  |   deployment: polib.deployment { | ||||||
|  |     spec+: { | ||||||
|  |       template+: { | ||||||
|  |         spec+: { | ||||||
|  |           containers+: [kubeRbacProxy], | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user