diff --git a/kustomization.yaml b/kustomization.yaml index 73ce56e599b9d5f607d21e32d723e35bf977652b..944289002dc33e17d72ec6f7af57c6ac735a324d 100644 --- a/kustomization.yaml +++ b/kustomization.yaml @@ -57,6 +57,7 @@ resources: - ./manifests/setup/0namespace-namespace.yaml - ./manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml - ./manifests/setup/prometheus-operator-0podmonitorCustomResourceDefinition.yaml +- ./manifests/setup/prometheus-operator-0probeCustomResourceDefinition.yaml - ./manifests/setup/prometheus-operator-0prometheusCustomResourceDefinition.yaml - ./manifests/setup/prometheus-operator-0prometheusruleCustomResourceDefinition.yaml - ./manifests/setup/prometheus-operator-0servicemonitorCustomResourceDefinition.yaml diff --git a/manifests/grafana-deployment.yaml b/manifests/grafana-deployment.yaml index d4cc0f92790b50f92994a4b0dae0563763d17990..9b8b6966641bbf51a6042f12cda49f4d31594c3f 100644 --- a/manifests/grafana-deployment.yaml +++ b/manifests/grafana-deployment.yaml @@ -12,6 +12,8 @@ spec: app: grafana template: metadata: + annotations: + checksum/grafana-datasources: 48faab41f579fc8efde6034391496f6a labels: app: grafana spec: diff --git a/manifests/kube-state-metrics-clusterRole.yaml b/manifests/kube-state-metrics-clusterRole.yaml index 05fcdbc589e21e31740e2ff793257db311acb548..a365fee73c5feb049071cc3d5c332c1909467a27 100644 --- a/manifests/kube-state-metrics-clusterRole.yaml +++ b/manifests/kube-state-metrics-clusterRole.yaml @@ -3,7 +3,7 @@ kind: ClusterRole metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 name: kube-state-metrics rules: - apiGroups: @@ -108,3 +108,10 @@ rules: verbs: - list - watch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - list + - watch diff --git a/manifests/kube-state-metrics-clusterRoleBinding.yaml b/manifests/kube-state-metrics-clusterRoleBinding.yaml index 3de08c712eb0dea33a999dd2d1aba5a293400940..ddf6bc6ba94c7b682a30a872c77b3460ed620c54 100644 --- a/manifests/kube-state-metrics-clusterRoleBinding.yaml +++ b/manifests/kube-state-metrics-clusterRoleBinding.yaml @@ -3,7 +3,7 @@ kind: ClusterRoleBinding metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 name: kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/manifests/kube-state-metrics-deployment.yaml b/manifests/kube-state-metrics-deployment.yaml index 970f9872eac1cb803f4514bd3b0844e3ac3578a0..eb8bcd4f523c3793c75aa9e711a9319b148cc10c 100644 --- a/manifests/kube-state-metrics-deployment.yaml +++ b/manifests/kube-state-metrics-deployment.yaml @@ -3,7 +3,7 @@ kind: Deployment metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 name: kube-state-metrics namespace: monitoring spec: @@ -15,7 +15,7 @@ spec: metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 spec: containers: - args: @@ -25,6 +25,8 @@ spec: - --telemetry-port=8082 image: quay.io/coreos/kube-state-metrics:v1.9.5 name: kube-state-metrics + securityContext: + runAsUser: 65534 - args: - --logtostderr - --secure-listen-address=:8443 diff --git a/manifests/kube-state-metrics-service.yaml b/manifests/kube-state-metrics-service.yaml index fb1cc26932f2f126cb981e437795846c7dd76b99..59881ce5a738f75060efc850d4658134b7583068 100644 --- a/manifests/kube-state-metrics-service.yaml +++ b/manifests/kube-state-metrics-service.yaml @@ -3,7 +3,7 @@ kind: Service metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 name: kube-state-metrics namespace: monitoring spec: diff --git a/manifests/kube-state-metrics-serviceAccount.yaml b/manifests/kube-state-metrics-serviceAccount.yaml index 25a8bae3381d5474148211949ad6afe9c22959c0..5dd13bb8746dd7fc9b1e8c63d3c139eb98ab5e91 100644 --- a/manifests/kube-state-metrics-serviceAccount.yaml +++ b/manifests/kube-state-metrics-serviceAccount.yaml @@ -3,6 +3,6 @@ kind: ServiceAccount metadata: labels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: v1.9.5 + app.kubernetes.io/version: 1.9.5 name: kube-state-metrics namespace: monitoring diff --git a/manifests/prometheus-operator-serviceMonitor.yaml b/manifests/prometheus-operator-serviceMonitor.yaml index 39e48aa775489eea6bd1daf3f1656328377bc4d7..700416d60c9e6aceab409b22735ae44a6df4999f 100644 --- a/manifests/prometheus-operator-serviceMonitor.yaml +++ b/manifests/prometheus-operator-serviceMonitor.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator namespace: monitoring spec: @@ -19,4 +19,4 @@ spec: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 diff --git a/manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml b/manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml index e04eddbbb5321071bdb7fd164f874feeba8d4ecf..6dc3c7d415c3f85d467e9bdfa9c1a55d2cefd3b5 100644 --- a/manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml +++ b/manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml @@ -645,7 +645,8 @@ spec: type: object type: object baseImage: - description: Base image that is used to deploy pods, without tag. + description: 'Base image that is used to deploy pods, without tag. + Deprecated: use ''image'' instead' type: string clusterAdvertiseAddress: description: 'ClusterAdvertiseAddress is the explicit address to advertise @@ -3014,10 +3015,11 @@ spec: to use to run the Prometheus Pods. type: string sha: - description: SHA of Alertmanager container image to be deployed. Defaults - to the value of `version`. Similar to a tag, but the SHA explicitly - deploys an immutable container image. Version and Tag are ignored - if SHA is set. + description: 'SHA of Alertmanager container image to be deployed. + Defaults to the value of `version`. Similar to a tag, but the SHA + explicitly deploys an immutable container image. Version and Tag + are ignored if SHA is set. Deprecated: use ''image'' instead. The + image digest can be specified as part of the image URL.' type: string storage: description: Storage is the definition of how storage will be used @@ -3279,8 +3281,10 @@ spec: type: object type: object tag: - description: Tag of Alertmanager container image to be deployed. Defaults - to the value of `version`. Version is ignored if Tag is set. + description: 'Tag of Alertmanager container image to be deployed. + Defaults to the value of `version`. Version is ignored if Tag is + set. Deprecated: use ''image'' instead. The image tag can be specified + as part of the image URL.' type: string tolerations: description: If specified, the pod's tolerations. diff --git a/manifests/setup/prometheus-operator-0probeCustomResourceDefinition.yaml b/manifests/setup/prometheus-operator-0probeCustomResourceDefinition.yaml new file mode 100644 index 0000000000000000000000000000000000000000..47d871ace27eba6e310ebb6ce37683cdc20432ad --- /dev/null +++ b/manifests/setup/prometheus-operator-0probeCustomResourceDefinition.yaml @@ -0,0 +1,212 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.2.4 + creationTimestamp: null + name: probes.monitoring.coreos.com +spec: + group: monitoring.coreos.com + names: + kind: Probe + listKind: ProbeList + plural: probes + singular: probe + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: Probe defines monitoring for a set of static targets or ingresses. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: Specification of desired Ingress selection for target discovery + by Prometheus. + properties: + interval: + description: Interval at which targets are probed using the configured + prober. If not specified Prometheus' global scrape interval is used. + type: string + jobName: + description: The job name assigned to scraped metrics by default. + type: string + module: + description: 'The module to use for probing specifying how to probe + the target. Example module configuring in the blackbox exporter: + https://github.com/prometheus/blackbox_exporter/blob/master/example.yml' + type: string + prober: + description: Specification for the prober to use for probing targets. + The prober.URL parameter is required. Targets cannot be probed if + left empty. + properties: + path: + description: Path to collect metrics from. Defaults to `/probe`. + type: string + scheme: + description: HTTP scheme to use for scraping. Defaults to `http`. + type: string + url: + description: Mandatory URL of the prober. + type: string + required: + - url + type: object + scrapeTimeout: + description: Timeout for scraping metrics from the Prometheus exporter. + type: string + targets: + description: Targets defines a set of static and/or dynamically discovered + targets to be probed using the prober. + properties: + ingress: + description: Ingress defines the set of dynamically discovered + ingress objects which hosts are considered for probing. + properties: + namespaceSelector: + description: Select Ingress objects by namespace. + properties: + any: + description: Boolean describing whether all namespaces + are selected in contrast to a list restricting them. + type: boolean + matchNames: + description: List of namespace names. + items: + type: string + type: array + type: object + relabelingConfigs: + description: 'RelabelConfigs to apply to samples before ingestion. + More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config' + items: + description: 'RelabelConfig allows dynamic rewriting of + the label set, being applied to samples before ingestion. + It defines `<metric_relabel_configs>`-section of Prometheus + configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs' + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: Regular expression against which the extracted + value is matched. Default is '(.*)' + type: string + replacement: + description: Replacement value against which a regex + replace is performed if the regular expression matches. + Regex capture groups are available. Default is '$1' + type: string + separator: + description: Separator placed between concatenated source + label values. default is ';'. + type: string + sourceLabels: + description: The source labels select values from existing + labels. Their content is concatenated using the configured + separator and matched against the configured regular + expression for the replace, keep, and drop actions. + items: + type: string + type: array + targetLabel: + description: Label to which the resulting value is written + in a replace action. It is mandatory for replace actions. + Regex capture groups are available. + type: string + type: object + type: array + selector: + description: Select Ingress objects by labels. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. + If the operator is In or NotIn, the values array + must be non-empty. If the operator is Exists or + DoesNotExist, the values array must be empty. + This array is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. + A single {key,value} in the matchLabels map is equivalent + to an element of matchExpressions, whose key field is + "key", the operator is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + type: object + staticConfig: + description: 'StaticConfig defines static targets which are considers + for probing. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.' + properties: + labels: + additionalProperties: + type: string + description: Labels assigned to all metrics scraped from the + targets. + type: object + static: + description: Targets is a list of URLs to probe using the + configured prober. + items: + type: string + type: array + type: object + type: object + type: object + required: + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/setup/prometheus-operator-0prometheusCustomResourceDefinition.yaml b/manifests/setup/prometheus-operator-0prometheusCustomResourceDefinition.yaml index 3c2126c834b4ec8d49c80ea197ebe65ef53af392..802f97c522a4ebba81da8781617efe2d2d409ba3 100644 --- a/manifests/setup/prometheus-operator-0prometheusCustomResourceDefinition.yaml +++ b/manifests/setup/prometheus-operator-0prometheusCustomResourceDefinition.yaml @@ -900,6 +900,11 @@ spec: required: - alertmanagers type: object + allowOverlappingBlocks: + description: AllowOverlappingBlocks enables vertical compaction and + vertical query merge in Prometheus. This is still experimental in + Prometheus so it may change in any upcoming release. + type: boolean apiserverConfig: description: APIServerConfig allows specifying a host and auth methods to access apiserver. If left empty, Prometheus is assumed to run @@ -1097,7 +1102,8 @@ spec: type: boolean type: object baseImage: - description: Base image to use for a Prometheus deployment. + description: 'Base image to use for a Prometheus deployment. Deprecated: + use ''image'' instead' type: string configMaps: description: ConfigMaps is a list of ConfigMaps in the same namespace @@ -3432,6 +3438,95 @@ spec: priorityClassName: description: Priority class assigned to the Pods type: string + probeNamespaceSelector: + description: '*Experimental* Namespaces to be selected for Probe discovery. + If nil, only check own namespace.' + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the key + and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship to + a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of string values. If the + operator is In or NotIn, the values array must be non-empty. + If the operator is Exists or DoesNotExist, the values + array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single + {key,value} in the matchLabels map is equivalent to an element + of matchExpressions, whose key field is "key", the operator + is "In", and the values array contains only "value". The requirements + are ANDed. + type: object + type: object + probeSelector: + description: '*Experimental* Probes to be selected for target discovery.' + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the key + and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship to + a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of string values. If the + operator is In or NotIn, the values array must be non-empty. + If the operator is Exists or DoesNotExist, the values + array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single + {key,value} in the matchLabels map is equivalent to an element + of matchExpressions, whose key field is "key", the operator + is "In", and the values array contains only "value". The requirements + are ANDed. + type: object + type: object prometheusExternalLabelName: description: Name of Prometheus external label used to denote Prometheus instance name. Defaults to the value of `prometheus`. External label @@ -4374,10 +4469,11 @@ spec: type: object type: object sha: - description: SHA of Prometheus container image to be deployed. Defaults + description: 'SHA of Prometheus container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored - if SHA is set. + if SHA is set. Deprecated: use ''image'' instead. The image digest + can be specified as part of the image URL.' type: string storage: description: Storage spec to specify how storage shall be used. @@ -4638,8 +4734,10 @@ spec: type: object type: object tag: - description: Tag of Prometheus container image to be deployed. Defaults - to the value of `version`. Version is ignored if Tag is set. + description: 'Tag of Prometheus container image to be deployed. Defaults + to the value of `version`. Version is ignored if Tag is set. Deprecated: + use ''image'' instead. The image tag can be specified as part of + the image URL.' type: string thanos: description: "Thanos configuration allows configuring various aspects @@ -4649,7 +4747,8 @@ spec: without backward compatibility in any release." properties: baseImage: - description: Thanos base image if other than default. + description: 'Thanos base image if other than default. Deprecated: + use ''image'' instead' type: string grpcServerTlsConfig: description: 'GRPCServerTLSConfig configures the gRPC server from @@ -4842,15 +4941,17 @@ spec: type: object type: object sha: - description: SHA of Thanos container image to be deployed. Defaults + description: 'SHA of Thanos container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored - if SHA is set. + if SHA is set. Deprecated: use ''image'' instead. The image + digest can be specified as part of the image URL.' type: string tag: - description: Tag of Thanos sidecar container image to be deployed. + description: 'Tag of Thanos sidecar container image to be deployed. Defaults to the value of `version`. Version is ignored if Tag - is set. + is set. Deprecated: use ''image'' instead. The image tag can + be specified as part of the image URL.' type: string tracingConfig: description: TracingConfig configures tracing in Thanos. This diff --git a/manifests/setup/prometheus-operator-clusterRole.yaml b/manifests/setup/prometheus-operator-clusterRole.yaml index b3d490a797638d31def47bd34f7d653b7575315d..0db34cfa059719686152ec4a84e84c368977c0a6 100644 --- a/manifests/setup/prometheus-operator-clusterRole.yaml +++ b/manifests/setup/prometheus-operator-clusterRole.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator rules: - apiGroups: @@ -18,6 +18,7 @@ rules: - thanosrulers/finalizers - servicemonitors - podmonitors + - probes - prometheusrules verbs: - '*' diff --git a/manifests/setup/prometheus-operator-clusterRoleBinding.yaml b/manifests/setup/prometheus-operator-clusterRoleBinding.yaml index 5ac1066ff657e96d015e1e8e008627b72812cf3d..48234d49e23daeb748351d6c3522139f68444ac5 100644 --- a/manifests/setup/prometheus-operator-clusterRoleBinding.yaml +++ b/manifests/setup/prometheus-operator-clusterRoleBinding.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/manifests/setup/prometheus-operator-deployment.yaml b/manifests/setup/prometheus-operator-deployment.yaml index e54a21f0fb7e43453c4e755a03810b4d61ca1645..ec0a90f294fd83d0056bda689c9ad61929c26c7b 100644 --- a/manifests/setup/prometheus-operator-deployment.yaml +++ b/manifests/setup/prometheus-operator-deployment.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator namespace: monitoring spec: @@ -18,15 +18,15 @@ spec: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 spec: containers: - args: - --kubelet-service=kube-system/kubelet - --logtostderr=true - - --config-reloader-image=jimmidyson/configmap-reload:v0.3.0 - - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.40.0 - image: quay.io/coreos/prometheus-operator:v0.40.0 + - --config-reloader-image=jimmidyson/configmap-reload:v0.4.0 + - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.41.0 + image: quay.io/coreos/prometheus-operator:v0.41.0 name: prometheus-operator ports: - containerPort: 8080 diff --git a/manifests/setup/prometheus-operator-service.yaml b/manifests/setup/prometheus-operator-service.yaml index 3f8dd96e04332ed17f61331d1d27c87b0a96c345..7d524165abd2f5d720d30241e8556f619042f01a 100644 --- a/manifests/setup/prometheus-operator-service.yaml +++ b/manifests/setup/prometheus-operator-service.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator namespace: monitoring spec: diff --git a/manifests/setup/prometheus-operator-serviceAccount.yaml b/manifests/setup/prometheus-operator-serviceAccount.yaml index c0bffc96cd258c3857773b0e6bc695966dfe9b71..05ec14192f6c471a9f1f6ec3c70b55ac13923c7a 100644 --- a/manifests/setup/prometheus-operator-serviceAccount.yaml +++ b/manifests/setup/prometheus-operator-serviceAccount.yaml @@ -4,6 +4,6 @@ metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator - app.kubernetes.io/version: v0.40.0 + app.kubernetes.io/version: v0.41.0 name: prometheus-operator namespace: monitoring