From 5fa0991c0eca903175fecb8d781ed14cf2bf14bb Mon Sep 17 00:00:00 2001 From: Matthias Erll Date: Wed, 8 Apr 2026 11:11:24 +0200 Subject: [PATCH] chore(chart-deps): update kube-prometheus-stack to version 83.0.2 --- apps.yaml | 4 +- chart/chart-index/Chart.yaml | 2 +- charts/kube-prometheus-stack/Chart.lock | 12 +- charts/kube-prometheus-stack/Chart.yaml | 10 +- .../crds/crds/crd-alertmanagerconfigs.yaml | 64 ++- .../charts/crds/crds/crd-alertmanagers.yaml | 117 +++-- .../charts/crds/crds/crd-podmonitors.yaml | 4 +- .../charts/crds/crds/crd-probes.yaml | 4 +- .../crds/crds/crd-prometheusagents.yaml | 73 ++- .../charts/crds/crds/crd-prometheuses.yaml | 75 ++- .../charts/crds/crds/crd-prometheusrules.yaml | 4 +- .../charts/crds/crds/crd-scrapeconfigs.yaml | 88 ++-- .../charts/crds/crds/crd-servicemonitors.yaml | 4 +- .../charts/crds/crds/crd-thanosrulers.yaml | 96 ++-- .../charts/crds/files/crds.bz2 | Bin 196750 -> 197482 bytes .../charts/crds/templates/upgrade/job.yaml | 3 +- .../charts/grafana/Chart.yaml | 4 +- .../charts/grafana/README.md | 428 ++---------------- .../charts/grafana/templates/_config.tpl | 8 + .../charts/grafana/templates/_helpers.tpl | 9 + .../charts/grafana/templates/_pod.tpl | 8 +- .../templates/image-renderer-deployment.yaml | 2 +- .../templates/image-renderer-service.yaml | 2 +- .../grafana/templates/networkpolicy.yaml | 4 + .../charts/grafana/templates/route.yaml | 6 +- .../charts/grafana/templates/vpa.yaml | 56 +++ .../charts/grafana/values.yaml | 193 ++++---- .../charts/kube-state-metrics/Chart.yaml | 2 +- .../charts/kube-state-metrics/values.yaml | 2 +- .../prometheus-node-exporter/Chart.yaml | 4 +- .../templates/daemonset.yaml | 51 ++- .../prometheus-node-exporter/values.yaml | 24 +- .../prometheus-windows-exporter/Chart.yaml | 4 +- .../templates/alertmanager/alertmanager.yaml | 14 + .../alertmanager/podDisruptionBudget.yaml | 7 +- .../templates/alertmanager/route.yaml | 5 +- .../alertmanager/verticalpodautoscaler.yaml | 41 ++ .../alertmanager-overview.yaml | 2 +- .../grafana/dashboards-1.14/apiserver.yaml | 2 +- .../dashboards-1.14/cluster-total.yaml | 2 +- .../dashboards-1.14/controller-manager.yaml | 2 +- .../dashboards-1.14/grafana-overview.yaml | 2 +- .../k8s-resources-cluster.yaml | 2 +- .../k8s-resources-multicluster.yaml | 2 +- .../k8s-resources-namespace.yaml | 2 +- .../dashboards-1.14/k8s-resources-node.yaml | 2 +- .../dashboards-1.14/k8s-resources-pod.yaml | 2 +- .../k8s-resources-workload.yaml | 2 +- .../k8s-resources-workloads-namespace.yaml | 2 +- .../grafana/dashboards-1.14/kubelet.yaml | 2 +- .../dashboards-1.14/namespace-by-pod.yaml | 2 +- .../namespace-by-workload.yaml | 2 +- .../node-cluster-rsrc-use.yaml | 2 +- .../dashboards-1.14/node-rsrc-use.yaml | 4 +- .../grafana/dashboards-1.14/nodes-aix.yaml | 2 +- .../grafana/dashboards-1.14/nodes-darwin.yaml | 2 +- .../grafana/dashboards-1.14/nodes.yaml | 2 +- .../persistentvolumesusage.yaml | 2 +- .../grafana/dashboards-1.14/pod-total.yaml | 2 +- .../prometheus-remote-write.yaml | 2 +- .../grafana/dashboards-1.14/prometheus.yaml | 2 +- .../grafana/dashboards-1.14/proxy.yaml | 2 +- .../grafana/dashboards-1.14/scheduler.yaml | 2 +- .../dashboards-1.14/workload-total.yaml | 2 +- .../prometheus-operator/clusterrole.yaml | 1 + .../prometheus/ciliumnetworkpolicy.yaml | 6 +- .../prometheus/podDisruptionBudget.yaml | 7 +- .../templates/prometheus/prometheus.yaml | 17 + .../templates/prometheus/route.yaml | 5 +- .../prometheus/rules-1.14/general.rules.yaml | 2 +- .../rules-1.14/kubernetes-apps.yaml | 13 +- .../rules-1.14/kubernetes-system-kubelet.yaml | 7 +- .../rules-1.14/node-exporter.rules.yaml | 56 +++ .../templates/prometheus/service.yaml | 3 + .../prometheus/verticalpodautoscaler.yaml | 46 ++ .../thanos-ruler/podDisruptionBudget.yaml | 7 +- .../templates/thanos-ruler/route.yaml | 5 +- .../templates/thanos-ruler/ruler.yaml | 13 + charts/kube-prometheus-stack/values.yaml | 145 +++++- 79 files changed, 1102 insertions(+), 721 deletions(-) create mode 100644 charts/kube-prometheus-stack/charts/grafana/templates/vpa.yaml create mode 100644 charts/kube-prometheus-stack/templates/alertmanager/verticalpodautoscaler.yaml create mode 100644 charts/kube-prometheus-stack/templates/prometheus/verticalpodautoscaler.yaml diff --git a/apps.yaml b/apps.yaml index bc37446677..8d628e5d12 100644 --- a/apps.yaml +++ b/apps.yaml @@ -65,7 +65,7 @@ appsInfo: integration: App Platform uses Gitea as its default repository for App Platform configuration (values). Gitea can also be used by Teams to provide application code repositories. Access to Gitea is provided by the OIDC integration in App Platform. Members of the otomi-admin and team-admin group can seamlessly sign in to Gitea. When Argo CD is enabled, App Platform will automatically create a Gitops repository for each Team in Gitea. grafana: title: Grafana - appVersion: 12.3.3 + appVersion: 12.4.2 repo: https://github.com/grafana/grafana maintainers: Grafana Labs relatedLinks: @@ -185,7 +185,7 @@ appsInfo: integration: Loki can be activated to aggregate all the container logs on the platform and store them in a storage endpoint of choice (defaults to PVC). When App Platform is configured in multi-tenancy mode, logs will be split-up between team namespaces and made available for team members only. App Platform shortcuts can be used to provide selections of logs based on interest. prometheus: title: Prometheus - appVersion: 3.9.1 + appVersion: 3.11.1 repo: https://github.com/prometheus/prometheus maintainers: Prometheus relatedLinks: diff --git a/chart/chart-index/Chart.yaml b/chart/chart-index/Chart.yaml index 5deb859358..5383d583af 100644 --- a/chart/chart-index/Chart.yaml +++ b/chart/chart-index/Chart.yaml @@ -65,7 +65,7 @@ dependencies: version: v0.16.0 repository: oci://ghcr.io/kserve/charts/kserve - name: kube-prometheus-stack - version: 81.6.9 + version: 83.0.2 repository: https://prometheus-community.github.io/helm-charts - name: kyverno version: 3.7.1 diff --git a/charts/kube-prometheus-stack/Chart.lock b/charts/kube-prometheus-stack/Chart.lock index e6c2bb5098..ac9ef42210 100644 --- a/charts/kube-prometheus-stack/Chart.lock +++ b/charts/kube-prometheus-stack/Chart.lock @@ -4,15 +4,15 @@ dependencies: version: 0.0.0 - name: kube-state-metrics repository: https://prometheus-community.github.io/helm-charts - version: 7.1.0 + version: 7.2.2 - name: prometheus-node-exporter repository: https://prometheus-community.github.io/helm-charts - version: 4.51.1 + version: 4.53.1 - name: grafana repository: https://grafana-community.github.io/helm-charts - version: 11.1.5 + version: 11.3.8 - name: prometheus-windows-exporter repository: https://prometheus-community.github.io/helm-charts - version: 0.12.3 -digest: sha256:8657e6d9c2ec1c535e718f0ffd462e9cc9bc9341cdd7e33258e2fd8494171880 -generated: "2026-02-13T21:59:46.854402405Z" + version: 0.12.6 +digest: sha256:431953a06b87304930d94a3c5f6b504fc9d63ee8c15226a89d2bbdea5d366dbe +generated: "2026-04-07T19:23:16.41738522Z" diff --git a/charts/kube-prometheus-stack/Chart.yaml b/charts/kube-prometheus-stack/Chart.yaml index b59ceb9c47..c8b1a5d042 100644 --- a/charts/kube-prometheus-stack/Chart.yaml +++ b/charts/kube-prometheus-stack/Chart.yaml @@ -9,7 +9,7 @@ annotations: url: https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/README.md#upgrading-chart artifacthub.io/operator: "true" apiVersion: v2 -appVersion: v0.88.1 +appVersion: v0.90.1 dependencies: - condition: crds.enabled name: crds @@ -18,15 +18,15 @@ dependencies: - condition: kubeStateMetrics.enabled name: kube-state-metrics repository: https://prometheus-community.github.io/helm-charts - version: 7.1.0 + version: 7.2.2 - condition: nodeExporter.enabled name: prometheus-node-exporter repository: https://prometheus-community.github.io/helm-charts - version: 4.51.1 + version: 4.53.1 - condition: grafana.enabled name: grafana repository: https://grafana-community.github.io/helm-charts - version: 11.1.5 + version: 11.3.8 - condition: windowsMonitoring.enabled name: prometheus-windows-exporter repository: https://prometheus-community.github.io/helm-charts @@ -69,4 +69,4 @@ sources: - https://github.com/prometheus-community/helm-charts - https://github.com/prometheus-operator/kube-prometheus type: application -version: 81.6.9 +version: 83.0.2 diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml index 7a23d5db62..ac74578d7b 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: alertmanagerconfigs.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -1022,6 +1022,7 @@ spec: description: |- authIdentity defines the identity to use for SMTP authentication. This is typically used with PLAIN authentication mechanism. + minLength: 1 type: string authPassword: description: |- @@ -1082,11 +1083,21 @@ spec: description: |- authUsername defines the username to use for SMTP authentication. This is used for SMTP AUTH when the server requires authentication. + minLength: 1 type: string + forceImplicitTLS: + description: |- + forceImplicitTLS defines whether to force use of implicit TLS (direct TLS connection) for better security. + true: force use of implicit TLS (direct TLS connection on any port) + false: force disable implicit TLS (use explicit TLS/STARTTLS if required) + nil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility + It requires Alertmanager >= v0.31.0. + type: boolean from: description: |- from defines the sender address for email notifications. This appears as the "From" field in the email header. + minLength: 1 type: string headers: description: |- @@ -1116,6 +1127,7 @@ spec: description: |- hello defines the hostname to identify to the SMTP server. This is used in the SMTP HELO/EHLO command during the connection handshake. + minLength: 1 type: string html: description: |- @@ -1135,11 +1147,13 @@ spec: description: |- smarthost defines the SMTP host and port through which emails are sent. Format should be "hostname:port", e.g. "smtp.example.com:587". + minLength: 1 type: string text: description: |- text defines the plain text body of the email notification. This provides a fallback for email clients that don't support HTML. + minLength: 1 type: string tlsConfig: description: |- @@ -1314,6 +1328,7 @@ spec: description: |- to defines the email address to send notifications to. This is the recipient address for alert notifications. + minLength: 1 type: string type: object type: array @@ -2861,6 +2876,7 @@ spec: description: |- actions defines a comma separated list of actions that will be available for the alert. These appear as action buttons in the OpsGenie interface. + minLength: 1 type: string apiKey: description: |- @@ -2899,6 +2915,7 @@ spec: description: |- description defines the detailed description of the incident. This provides additional context beyond the message field. + minLength: 1 type: string details: description: |- @@ -2928,6 +2945,7 @@ spec: description: |- entity defines an optional field that can be used to specify which domain alert is related to. This helps group related alerts together in OpsGenie. + minLength: 1 type: string httpConfig: description: httpConfig defines the HTTP client configuration @@ -3639,16 +3657,19 @@ spec: description: |- message defines the alert text limited to 130 characters. This appears as the main alert title in OpsGenie. + minLength: 1 type: string note: description: |- note defines an additional alert note. This provides supplementary information about the alert. + minLength: 1 type: string priority: description: |- priority defines the priority level of alert. Possible values are P1, P2, P3, P4, and P5, where P1 is highest priority. + minLength: 1 type: string responders: description: |- @@ -3663,11 +3684,13 @@ spec: description: |- id defines the unique identifier of the responder. This corresponds to the responder's ID within OpsGenie. + minLength: 1 type: string name: description: |- name defines the display name of the responder. This is used when the responder is identified by name rather than ID. + minLength: 1 type: string type: description: |- @@ -3686,6 +3709,7 @@ spec: description: |- username defines the username of the responder. This is typically used for user-type responders when identifying by username. + minLength: 1 type: string required: - type @@ -3700,11 +3724,13 @@ spec: description: |- source defines the backlink to the sender of the notification. This helps identify where the alert originated from. + minLength: 1 type: string tags: description: |- tags defines a comma separated list of tags attached to the notifications. These help categorize and filter alerts within OpsGenie. + minLength: 1 type: string updateAlerts: description: |- @@ -6314,6 +6340,8 @@ spec: description: |- token defines the sender token for RocketChat authentication. This is the personal access token or bot token used to authenticate API requests. + The secret needs to be in the same namespace as the AlertmanagerConfig + object and accessible by the Prometheus Operator. properties: key: description: The key of the secret to select from. Must @@ -6340,6 +6368,8 @@ spec: description: |- tokenID defines the sender token ID for RocketChat authentication. This is the user ID associated with the token used for API requests. + The secret needs to be in the same namespace as the AlertmanagerConfig + object and accessible by the Prometheus Operator. properties: key: description: The key of the secret to select from. Must @@ -7270,6 +7300,13 @@ spec: linkNames enables automatic linking of channel names and usernames in the message. When true, @channel and @username will be converted to clickable links. type: boolean + messageText: + description: |- + messageText defines text content of the Slack message. + If set, this is sent as the top-level 'text' field in the Slack payload. + It requires Alertmanager >= v0.31.0. + minLength: 1 + type: string mrkdwnIn: description: |- mrkdwnIn defines which fields should be parsed as Slack markdown. @@ -8056,11 +8093,13 @@ spec: description: |- message defines the message content of the SNS notification. This is the actual notification text that will be sent to subscribers. + minLength: 1 type: string phoneNumber: description: |- phoneNumber defines the phone number if message is delivered via SMS in E.164 format. If you don't specify this value, you must specify a value for the TopicARN or TargetARN. + minLength: 1 type: string sendResolved: description: sendResolved defines whether or not to notify @@ -8145,16 +8184,19 @@ spec: description: |- subject defines the subject line when the message is delivered to email endpoints. This field is only used when sending to email subscribers of an SNS topic. + minLength: 1 type: string targetARN: description: |- targetARN defines the mobile platform endpoint ARN if message is delivered via mobile notifications. If you don't specify this value, you must specify a value for the TopicARN or PhoneNumber. + minLength: 1 type: string topicARN: description: |- topicARN defines the SNS topic ARN, e.g. arn:aws:sns:us-east-2:698519295917:My-Topic. If you don't specify this value, you must specify a value for the PhoneNumber or TargetARN. + minLength: 1 type: string type: object type: array @@ -11277,6 +11319,7 @@ spec: description: |- agentID defines the application agent ID within WeChat Work. This identifies which WeChat Work application will send the notifications. + minLength: 1 type: string apiSecret: description: |- @@ -11315,6 +11358,7 @@ spec: description: |- corpID defines the corp id for authentication. This is the unique identifier for your WeChat Work organization. + minLength: 1 type: string httpConfig: description: httpConfig defines the HTTP client configuration @@ -12026,11 +12070,13 @@ spec: description: |- message defines the API request data as defined by the WeChat API. This contains the actual notification content to be sent. + minLength: 1 type: string messageType: description: |- messageType defines the type of message to send. Valid values include "text", "markdown", and other WeChat Work supported message types. + minLength: 1 type: string sendResolved: description: sendResolved defines whether or not to notify @@ -12040,16 +12086,19 @@ spec: description: |- toParty defines the target department(s) to receive the notification. Can be a single department ID or multiple department IDs separated by '|'. + minLength: 1 type: string toTag: description: |- toTag defines the target tag(s) to receive the notification. Can be a single tag ID or multiple tag IDs separated by '|'. + minLength: 1 type: string toUser: description: |- toUser defines the target user(s) to receive the notification. Can be a single user ID or multiple user IDs separated by '|'. + minLength: 1 type: string type: object type: array @@ -12092,14 +12141,17 @@ spec: groupInterval: description: |- groupInterval defines how long to wait before sending an updated notification. - Must match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$` + Must be greater than 0. Example: "5m" + minLength: 1 + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string groupWait: description: |- groupWait defines how long to wait before sending the initial notification. - Must match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$` Example: "30s" + minLength: 1 + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string matchers: description: |- @@ -12157,8 +12209,10 @@ spec: repeatInterval: description: |- repeatInterval defines how long to wait before repeating the last notification. - Must match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$` + Must be greater than 0. Example: "4h" + minLength: 1 + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string routes: description: routes defines the child routes. diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml index 1af958fc74..790a049897 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: alertmanagers.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -2073,6 +2073,14 @@ spec: LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. type: string + forceImplicitTLS: + description: |- + forceImplicitTLS defines whether to force use of implicit TLS (direct TLS connection) for better security. + true: force use of implicit TLS (direct TLS connection on any port) + false: force disable implicit TLS (use explicit TLS/STARTTLS if required) + nil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility + It requires Alertmanager >= v0.31.0. + type: boolean from: description: from defines the default SMTP From header field. @@ -2890,14 +2898,20 @@ spec: type: string containers: description: |- - containers allows injecting additional containers. This is meant to - allow adding an authentication proxy to an Alertmanager pod. - Containers described here modify an operator generated container if they - share the same name and modifications are done via a strategic merge - patch. The current container names are: `alertmanager` and - `config-reloader`. Overriding containers is entirely outside the scope - of what the maintainers will support and by doing so, you accept that - this behaviour may break at any time without notice. + containers allows injecting additional containers or modifying operator + generated containers. This can be used to allow adding an authentication + proxy to the Pods or to change the behavior of an operator generated + container. Containers described here modify an operator generated + container if they share the same name and modifications are done via a + strategic merge patch. + + The names of containers managed by the operator are: + * `alertmanager` + * `config-reloader` + * `thanos-sidecar` + + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -3765,7 +3779,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -4520,6 +4536,17 @@ spec: x-kubernetes-list-map-keys: - ip x-kubernetes-list-type: map + hostNetwork: + description: |- + hostNetwork controls whether the pod may use the node network namespace. + + Make sure to understand the security implications if you want to enable + it (https://kubernetes.io/docs/concepts/configuration/overview/). + + When hostNetwork is enabled, this will set the DNS policy to + `ClusterFirstWithHostNet` automatically (unless `.spec.dnsPolicy` is set + to a different value). + type: boolean hostUsers: description: |- hostUsers supports the user space in Kubernetes. @@ -4570,15 +4597,21 @@ spec: type: array initContainers: description: |- - initContainers allows adding initContainers to the pod definition. Those can be used to e.g. - fetch secrets for injection into the Alertmanager configuration from external sources. Any - errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ - InitContainers described here modify an operator - generated init containers if they share the same name and modifications are - done via a strategic merge patch. The current init container name is: - `init-config-reloader`. Overriding init containers is entirely outside the - scope of what the maintainers will support and by doing so, you accept that - this behaviour may break at any time without notice. + initContainers allows injecting initContainers to the Pod definition. Those + can be used to e.g. fetch secrets for injection into the Prometheus + configuration from external sources. Any errors during the execution of + an initContainer will lead to a restart of the Pod. More info: + https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ + InitContainers described here modify an operator generated init + containers if they share the same name and modifications are done via a + strategic merge patch. + + The names of init container name managed by the operator are: + * `init-config-reloader`. + + Overriding init containers which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -5446,7 +5479,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -6336,6 +6371,11 @@ spec: and the actual ExternalURL is still true, but the server serves requests under a different route prefix. For example for use with `kubectl proxy`. type: string + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string secrets: description: |- secrets is a list of Secrets in the same namespace as the Alertmanager @@ -6771,7 +6811,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -7026,7 +7066,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -7182,9 +7222,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -7216,9 +7254,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -7351,9 +7387,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -8245,7 +8282,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -9124,6 +9161,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml index 9407774078..2fdff7db31 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: podmonitors.monitoring.coreos.com spec: group: monitoring.coreos.com diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml index 3df86c00cc..cea5598181 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: probes.monitoring.coreos.com spec: group: monitoring.coreos.com diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml index 4a7ff56382..1a58269d63 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: prometheusagents.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -1478,9 +1478,8 @@ spec: * `config-reloader` * `thanos-sidecar` - Overriding containers is entirely outside the scope of what the - maintainers will support and by doing so, you accept that this behaviour - may break at any time without notice. + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -2348,7 +2347,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -3386,7 +3387,7 @@ spec: initContainers: description: |- initContainers allows injecting initContainers to the Pod definition. Those - can be used to e.g. fetch secrets for injection into the Prometheus + can be used to e.g. fetch secrets for injection into the Prometheus configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -3397,9 +3398,9 @@ spec: The names of init container name managed by the operator are: * `init-config-reloader`. - Overriding init containers is entirely outside the scope of what the - maintainers will support and by doing so, you accept that this behaviour - may break at any time without notice. + Overriding init containers which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -4267,7 +4268,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -6482,9 +6485,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -6699,6 +6704,11 @@ spec: If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 type: integer + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string scrapeClasses: description: |- scrapeClasses defines the list of scrape classes to expose to scraping objects such as @@ -7922,7 +7932,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8177,7 +8187,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8333,9 +8343,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -8367,9 +8375,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -8505,9 +8511,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -9665,7 +9672,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -10544,6 +10551,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml index 389e6fb12c..7a6a832d8e 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: prometheuses.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -2229,9 +2229,8 @@ spec: * `config-reloader` * `thanos-sidecar` - Overriding containers is entirely outside the scope of what the - maintainers will support and by doing so, you accept that this behaviour - may break at any time without notice. + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -3099,7 +3098,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -4179,7 +4180,7 @@ spec: initContainers: description: |- initContainers allows injecting initContainers to the Pod definition. Those - can be used to e.g. fetch secrets for injection into the Prometheus + can be used to e.g. fetch secrets for injection into the Prometheus configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -4190,9 +4191,9 @@ spec: The names of init container name managed by the operator are: * `init-config-reloader`. - Overriding init containers is entirely outside the scope of what the - maintainers will support and by doing so, you accept that this behaviour - may break at any time without notice. + Overriding init containers which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -5060,7 +5061,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -8072,9 +8075,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -8434,6 +8439,11 @@ spec: If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 type: integer + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string scrapeClasses: description: |- scrapeClasses defines the list of scrape classes to expose to scraping objects such as @@ -9695,7 +9705,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -9950,7 +9960,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -10106,9 +10116,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -10140,9 +10148,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -10326,7 +10332,7 @@ spec: description: |- grpcServerTlsConfig defines the TLS parameters for the gRPC server providing the StoreAPI. - Note: Currently only the `caFile`, `certFile`, and `keyFile` fields are supported. + Note: Currently only the `minVersion`, `caFile`, `certFile`, and `keyFile` fields are supported. properties: ca: description: ca defines the Certificate authority used when @@ -10802,9 +10808,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -11962,7 +11969,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -12841,6 +12848,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml index 31654a3ca7..57e00c3770 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: prometheusrules.monitoring.coreos.com spec: group: monitoring.coreos.com diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml index 9c706776e6..3a4ee801f2 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: scrapeconfigs.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -883,6 +883,15 @@ spec: type: object x-kubernetes-map-type: atomic type: object + bodySizeLimit: + description: |- + bodySizeLimit defines a per-scrape limit on the size of the uncompressed + response body that will be accepted by Prometheus. Targets responding with + a body larger than this many bytes will cause the scrape to fail. + + It requires Prometheus >= v2.28.0. + pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ + type: string consulSDConfigs: description: consulSDConfigs defines a list of Consul service discovery configurations. @@ -1676,7 +1685,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the DigitalOcean API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -2116,7 +2125,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the DigitalOcean API. properties: ca: description: ca defines the Certificate authority used when @@ -2345,7 +2354,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Docker daemon. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -2451,6 +2460,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -2473,8 +2483,9 @@ spec: HTTP 3xx redirects. type: boolean host: - description: host defines the address of the docker daemon + description: host defines the address of the docker daemon. minLength: 1 + pattern: ^[a-zA-Z][a-zA-Z0-9+.-]*://.+$ type: string hostNetworkingHost: description: hostNetworkingHost defines the host to use if the @@ -2883,7 +2894,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Docker daemon. properties: ca: description: ca defines the Certificate authority used when @@ -3063,7 +3074,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Docker Swarm API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -3174,6 +3185,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -3605,7 +3617,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Docker Swarm daemon. properties: ca: description: ca defines the Certificate authority used when @@ -3831,6 +3843,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -3954,7 +3967,7 @@ spec: x-kubernetes-map-type: atomic tlsConfig: description: |- - tlsConfig defines the TLS configuration to connect to the Consul API. + tlsConfig defines the TLS configuration to connect to the EC2 API. It requires Prometheus >= v2.41.0 properties: ca: @@ -4145,7 +4158,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Eureka server. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -4636,12 +4649,11 @@ spec: server: description: server defines the URL to connect to the Eureka server. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Eureka server. properties: ca: description: ca defines the Certificate authority used when @@ -4924,7 +4936,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Hetzner API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -5436,7 +5448,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Hetzner API. properties: ca: description: ca defines the Certificate authority used when @@ -6288,8 +6300,7 @@ spec: url: description: url defines the URL from which the targets are fetched. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string required: - url @@ -6305,7 +6316,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the IONOS. + authorization defines the header configuration to authenticate against the IONOS API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -6750,7 +6761,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the IONOS API. properties: ca: description: ca defines the Certificate authority used when @@ -7704,7 +7715,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Kuma control plane. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -8210,7 +8221,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Kuma control plane. properties: ca: description: ca defines the Certificate authority used when @@ -8432,7 +8443,7 @@ spec: x-kubernetes-map-type: atomic authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Lightsail API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -8967,7 +8978,7 @@ spec: x-kubernetes-map-type: atomic tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Lightsail API. properties: ca: description: ca defines the Certificate authority used when @@ -9145,7 +9156,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Linode API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -9595,7 +9606,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Linode API. properties: ca: description: ca defines the Certificate authority used when @@ -9917,7 +9928,7 @@ spec: type: boolean authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Nomad API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -10419,7 +10430,7 @@ spec: description: |- server defines the Nomad server address to connect to for service discovery. This should be the full URL including protocol (e.g., "https://nomad.example.com:4646"). - minLength: 1 + pattern: ^https?://.+$ type: string tagSeparator: description: |- @@ -10428,7 +10439,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Nomad API. properties: ca: description: ca defines the Certificate authority used when @@ -11001,7 +11012,7 @@ spec: description: |- identityEndpoint defines the HTTP endpoint that is required to work with the Identity API of the appropriate version. - pattern: ^http(s)?:\/\/.+$ + pattern: ^https?://.+$ type: string password: description: |- @@ -11409,7 +11420,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the PuppetDB API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -11920,7 +11931,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the PuppetDB server. properties: ca: description: ca defines the Certificate authority used when @@ -12089,8 +12100,7 @@ spec: url: description: url defines the URL of the PuppetDB root query endpoint. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string required: - query @@ -12209,7 +12219,7 @@ spec: apiURL: description: apiURL defines the API URL to use when doing the server listing requests. - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string enableHTTP2: description: enableHTTP2 defines whether to enable HTTP2. @@ -12336,7 +12346,7 @@ spec: x-kubernetes-list-type: set tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Scaleway API. properties: ca: description: ca defines the Certificate authority used when @@ -12595,9 +12605,9 @@ spec: description: targets defines the list of targets for this static configuration. items: - description: |- - Target represents a target for Prometheus to scrape - kubebuilder:validation:MinLength:=1 + description: Target represents a target for Prometheus to + scrape + minLength: 1 type: string minItems: 1 type: array diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml index c231b7ebcd..702988e2bb 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: servicemonitors.monitoring.coreos.com spec: group: monitoring.coreos.com diff --git a/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml b/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml index 79d118fed0..7c7a32b057 100644 --- a/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml +++ b/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.88.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.90.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 - operator.prometheus.io/version: 0.88.1 + operator.prometheus.io/version: 0.90.1 name: thanosrulers.monitoring.coreos.com spec: group: monitoring.coreos.com @@ -1120,13 +1120,19 @@ spec: type: array containers: description: |- - containers allows injecting additional containers or modifying operator generated - containers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or - to change the behavior of an operator generated container. Containers described here modify - an operator generated container if they share the same name and modifications are done via a - strategic merge patch. The current container names are: `thanos-ruler` and `config-reloader`. - Overriding containers is entirely outside the scope of what the maintainers will support and by doing - so, you accept that this behaviour may break at any time without notice. + containers allows injecting additional containers or modifying operator + generated containers. This can be used to allow adding an authentication + proxy to the Pods or to change the behavior of an operator generated + container. Containers described here modify an operator generated + container if they share the same name and modifications are done via a + strategic merge patch. + + The names of containers managed by the operator are: + * `thanos-ruler` + * `config-reloader` + + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -1994,7 +2000,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -2783,8 +2791,8 @@ spec: description: |- grpcServerTlsConfig defines the gRPC server from which Thanos Querier reads recorded rule data. - Note: Currently only the CAFile, CertFile, and KeyFile fields are supported. - Maps to the '--grpc-server-tls-*' CLI args. + + Note: Currently only the `minVersion`, `caFile`, `certFile`, and `keyFile` fields are supported. properties: ca: description: ca defines the Certificate authority used when verifying @@ -3031,13 +3039,11 @@ spec: type: array initContainers: description: |- - initContainers allows adding initContainers to the pod definition. Those can be used to e.g. - fetch secrets for injection into the ThanosRuler configuration from external sources. Any - errors during the execution of an initContainer will lead to a restart of the Pod. - More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ - Using initContainers for any use case other then secret fetching is entirely outside the scope - of what the maintainers will support and by doing so, you accept that this behaviour may break - at any time without notice. + initContainers allows injecting initContainers to the Pod definition. + Those can be used to e.g. fetch secrets for injection into the + configuration from external sources. Any errors during the execution of + an initContainer will lead to a restart of the Pod. More info: + https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ items: description: A single application container that you want to run within a pod. @@ -3905,7 +3911,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -5825,9 +5833,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -6130,6 +6140,11 @@ spec: type: object type: object x-kubernetes-map-type: atomic + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string securityContext: description: |- securityContext defines the pod-level security attributes and common container settings. @@ -6548,7 +6563,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -6803,7 +6818,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -6959,9 +6974,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -6993,9 +7006,7 @@ spec: ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates - that change other valid\nresources associated with PVC.\n\nThis - is an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -7122,9 +7133,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -8061,7 +8073,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8940,6 +8952,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/charts/kube-prometheus-stack/charts/crds/files/crds.bz2 b/charts/kube-prometheus-stack/charts/crds/files/crds.bz2 index e48a627e5cdcd8e62e0f3465b7d7909ff0db96af..615c2bf249e828308c91abb3fa23280477475ebf 100644 GIT binary patch literal 197482 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

&;m7e?nNc01KTWwS`;VrdnRoscLSrh{Y} zqi)S69MEXU2e@D&4d-g&d$hC@Vs|{W=V%Lol5tgB5(HsX1xl(2Ae~wpC*Y4-4@^_w zt@ab7SnU%+X@ew+$go)u@QX!RAC%ZIEaQWKmQe^2Jbc1pu}$6 zzQncpR<%GgfpQX=n81Cp6jX=j-4b!R#NJh4mUFCKt*Ydq3OZSwDGhMjfx_I(c$pOL z$-~bHf>r}UN-1fWYt6)Yw#-3cI2yR@&r_omikinT;+foZ&24P5YU?g?QcxY8PHxQ8 zCXY%Bh>>X%=noYH^3#lY8M`nP9IBbTv-9U!Na8{U8L=jGcsWc4$cVub|o_9nG;p!gKiq63ph>O~@ShYS8%(^emL>?!0$AIE3h{!#n)e~p6JEvz{O zwLO?9BTOkoC>(M`#sJK9r$QJlm+e#Dvw56@uy9n;o<jmW3=6-ht5MtF7)W#bW6cUn7=|BNtiV~tg ze@U7gKJ-^x7Hp~m4%M4FEqVza@dJtq7+qM1EvYb2{S){jp@aHw6l064#D9?2`A0)#_0G`A zjFZ5RY(_o_43Y0Zcq&efN6r{Pe|Lq249_8R00h5y$zSyLzTcqkJ=n|Ibu>G9K2GvOo9PQRRMqD1SB}c+{jn^jNRt_dno&d43Vz2BTr@A^J)!GX|qz z|3$YD5MXAt+pzI<(=(Q`=O3EC^<)25+nwFp7TdY5T~=jb|9bit&0tW_{jbQxz*SXY zUv`sc-THg?W0q(9U?2de+I&81Pq&|T%3@!*!?N^JmdQFcnsRzpYarq5HLVuHHc!9I z)+e&G8%z(wUpSro4QICP%btd5_1D;Hzx7RD{S1@M_0RU5KkffWl#TWr#T*V|g7-kV zAxE94gJu;Hg@~+XtOA1)#>HAf;f4l~JOai9{)L6REHuzHcbHbi##}-L$Um+WT!3kI zrfRJlgo>a0oP?9sdcj_HNU9c4IzK3;$SwdO`=8OH?!Uh-=KlZHXHa4F`+eUp)qD!7 zMKK`%#w(#lCgS3XWj^&k@l)~?@TapiKjy@d{k9-|pK*<$k_kuNL2$sKb~>qbL$gGk)Y5d*$^R)AR??bLKEUZVI9{UnsPx*fH`l_LMV0HTZw9oGN`EgV)eg-^F)t zz8{fxppHRbjcTMVkXTNQp#6{j5hMe4kFeux;H99YHM8mzxT6UX2%bWs@=Uem=BdH1 zju1M3X&F599wSUllA{Ssc8h+kLG2|+oZel3IX;q>y83-(-Q0%ak)y{0BS}RUENwGC z^T)GxCTM0+> z^24t39@rF35cDio;_dtfb(c#$6K+22fO>;p{&$C;X&hB3j|$AxLe{NWs#sw7<1j}vGVBB zFYM3pXQCaQhD+(d*IzXs3@n|E?4aEj`ox>W+Xaxnf*MIU_I=^EFb`n^`f*o05qhXJ z<%PKl)6gaemN#PC5WSMMu{zR<-l_wvgI2GvoH4m`Zi;5fB#vA8Ti4Dl1U<@#il%rF z8|rz7>H7CA z`TtbnR^63~x=tcz_60ix&P0MtO-;$;8Zj07=8e3n5SsLiQ=1OP##S(MCKD7d=2l7J zLc%_;(kzm@VGpE)Id(Dz9WwFj+_d8>u4JN_0VHEE!UGZ6YwIXnDZm3L9(Y!Uo!xf~ zn}rOF&YDgKYPx~3R6U8XSdA{kP43}5#r|RUa5*l zyis)qbcX>>bXW+VX+DI3^!9yh+6wikr_W@bf6G8#FqAn5^RLi;hBj(Jv|r&&_730V zhvp<8|8llMm>O&IE}Pl1LJ|;=goGp@&F*rqJdH#13}Y)G#xakboR@r<;KQk-`32Cg z%oj$3MvV@IbPJ0+eXc!66B* z{4en4FA8vA(d4siYbE-Qg&1ge9Fs_p(o4WCAvBLdy_1mz{SSo|@%}IuSvM%y>dpxW zNJG=Q^Q{^tvLZ7@MFr%+U>;5bU~J-BTTU!Av2!R(*QC8-#n4iN--tx41RyY?2l#Bs z$&(*NqO!h%(t$%y;e-nR0IrvHjk79ZL7ifhCSEkSmKIb~A-P3WFs&5{DH4!KO2RC* zH$B!YtXjcgD+sc&V%SijYQ_l2SOfvamF|qcv!En?FXin>{ir{e)@Cv2OWXB1@gu48 zlo&t7ABb{8AtaZ(@zeUs{{Z66>t68=-*@I}z*|6E8Hrh6AGTE_=wW}J#X*MR&jf~qG#jI;uO_jA-s@WEk z6xmw^V!&AuU;(cP`8;=2z?*3A5txstkb!2g5$IK~!RLA}8Q@{caT@~(M;KEFR3LOa z?AbH;FMRb@e~j@LWt5k6)5qw2b#Jp)?Y+#@(9&HUz*8Yd85%0~hryhGnT^!j3o7t{+KZRGVr^WlbyQR_c|DizWXy5-VBdK zduWu>+SHFn_NoRv>iS}TW%@7Id&5k_S-%@&8$R~zpxg6&WXe^CRwuR?sw@?wKM7^F zN=3?y;e#v)Ww7bp(yB2k{ST*P@3?G++Zu-yC}$d6s&0O^Y9$c; zlRU(**5SDs=wa*SP^8+=#EFryas`SGNMay*!OG+PLlY|%BOD;`Mgw#>ISl)g9fe5v z#C{B;493r6%y}0W^m4b%sd6x!nd~!1ll6Oa4RmjtDe6*k#*fCt0`blf=sp1mu+w0Q z2v39v#%BrlLrk3N4tgPtj-+G0&5*4!(}zPHt`S!;Qfww%V`yTJ+V>Cb@cdCikF;_g ze(1^PkNErNxRZ05ujJL|PT3OQO}NyD421rDNEg9c?w$c$99)MhNc34(Da@gJiTriu zVk`v-L7mys-MIf(p>}s`815WlnS$xZ`qfr!jcC+)_^6X!&%)!&b#QQVknOx*^T}m9 z^^-o&$7>( zj_KP4A(+=)t6JL+=Wh7bsczSH#*$|1EMh$No9fz2I!;zAgd^Ri5RQCtfd-Qq>_aQ( z1q{oPIkKw~+GhN`WW{ho42CDYdX;;8=niG)RQk`+4rGJkP5|sbEIVW`-r(MPvQ|J% zwzj7H>)K(VGNcET?xCpWi*c5~xe_Z?nPSClfnlUsi}9nQoHA{nXQS~lHwIaOBq9U* zX9r_04Mxu8sn}TChW#z1s#6_r895enIe28NDXr~ zfJA45vn_oml2!e) zNDw%lfKCLJMI!uHXrN#+?Jh_IVnqiz0=O$slen`MVt@n%%m+@JvyJnznt%kb1~5az zQ+N6cSc|7ah3!?&QJ(lNp8<64Evv7(mHfr>c++Kx>Huh8S@{L++Jyx?EZ&G+sQ8xsNE!$SR5j%2w1uj@aZ z^E(PpsRix`6~nk4Yt6!{Na0|=S<;-lfR1BSTdXLJ7U1Z`>sMfWlBE5ha18h_f@cj& zo%94q8*#^o@W}Ug)&Dixr`1SS=!TO4Kqc^Xer6Qly_6 z(o@YZB8cH46_>Fsx?UKE%;7LDE6`U>(ZH>aa=$s*!L^B_qrGF3ElxuLEO;RyRUnfDjY8FXYd7V?6vd?gROdIyffB zN9tW5*vnp$`25)&88PWXVZ(Dz zqXS5VqSS^B^SYjKvZxN_6JJPN0IhQ}z`vg;~N#+Jgz7-C~jt z4>cd(p3H$*aC=`>wRnRi4rA3(X~}09FVs!z&dA{2zVbOofuk+_YUpOkB#>gTqGV{r z@VRjfOG&srWnBn?fZSRgj#hbN6&pKZJX5s(5=pbIdcf6ID-&iAP)J82boW% z8$s|EtPSBY3gZ2U1$F!5Bni3wU!fjgO?r@nWFTQ6RQd#geF|#_roxa^**{JnlTfDG z=aGI&qL@`2d4YyK8aU!D8#ei5EWs1mMx0_+`vMDD#z>g?<-iFM6)i8 z?&udflZ=vPy*WQq>I(cX&%(cFkM{tP$C!C_?t{CX$gk@#F-5=<)69YOtsM)~W{>v% z5Aq;j(ovg;^!o@<9FuJL^G4l;G#{s|svH5=>`T-BYNZteq<|gUcLvIw$?w!0`pgc& z2qBojIfv^G79D{B1rK^+0fN|>sBd5rgy-x}u&LO}k%I84n9*pU_ zctNl*0avKN$a;{3iroO*a4>7!cFHO$Z?Ry>nnFJ(27*sCspT;XM;{8Z;%? zl!xj6P+_4AVNt=@Zu9FB>5j&f%vKAIFL0s^MBXL-Dt)c?viy$ASx1i z*o-01_1%Fbgpu^1lTrLLVRVg);Aoq0i$u(zTCKB2d?BHx`@lcIW zVhIHLb7f8rZM5Q^4@ap{bq$9JrgA^@^ssI&0(q!}6dMriQG$dBlx*Zp1&}}NV0J4A zxj-G0kG@?B5-miK8uE}PaUWL9}~6c6!)YH1tq@ko(YG+Vj>|!XkdQGpXCEY z1~lK+PqA~?T}+GizK1^Ddeeu!#aU!HEa9$yG+j5IS)BgILiPQ*U+Eqvzqu!9ux7<3 zcEiqk93C#&$MADR+xFq9>x}OoOq(35fdij?Sf-68lE_CyMJLglLi8~`^gQ=dD3cwV zPWLbVD`q@4HgLClddf{U9hN-~`9@{d>9D3G77PrI;Koq`5Gj%r{4^Y1@J(|`QS15Z z{1e-xlp1JGTPMSWgBYVoClJE}5HhIxp}s&5| zglWyyWlk|H#9I6#OzoC9J8Nh+;&JNPJI#o{zKphT%V;`8_Spi|1pArS(*MHG*U7^fY2x^5Uf!<#vFlH-jO2USv@Mzi za3F3;;Umo(D5J50j)n`z4O@c7Fm36ei|-X1>0WVZ0rqJ&JZrYzx-vsAf|^6HL_@e8 z!5B*9A(AIkcp+-^Zdx0buEDapKNDQzxA#iM6pS#WqS}Dk1>%*IhhWxT2 zzLx|K1C#N&p#ozvGR4Red!|-ya8H~{?lF;p5M$LH>k)}Xq51J58H}bKI&FjJqMpU? z1&f!45j$fh@K8AT_dKFPDMH}n7$d-@#f=#-zaX;#VZjfO%O9c3W{F{-JOU)_!aqmF zZ}|+Y#uhHcA=tu%w#c!BF}r1la+5?lFc$W}fI;CErUkk9hR@JS5Ahf$HV%WJV&SL1` zsLn;)UBi)G3xRc!dyB9x$_7KRNP%H2g&cSXk%$ooT z0WE-(fRqcQdPflubm5^*%1Lkl?s9>Wg41(ZCiTealCQ(x)3?XLeVNWV&T*MSB2 z@DN*Ya7#iE62z)iu=ZardU|rbH*CvW9PHNBc0ANKIuUK@swK2}t-Ub30U9HCY?BMg zU|^z)1NM_gJvS1Ol~d%@bL6{xavim=d(qa^y~>07{-xvAQSTLXBPqOQ1ld%fNs{@p4DgV{EUhO!x0 zxk!O=WXMGkMXCB9`5yCf)MCY500M_;^!0Le#x?z?|AGH^@l=1#&*s1BTqc^*_}lLn^8dLm z|Ju-v0M^EiSPD5Lu{}utLC}7&1CbO#zkq%;0`3v`#EU5Go7N%4*3ch6eFD@8D2S9m zf8=6N=#Soy?xN$V_kHWQ&Y%Ck`9ESpk`qnPzH^X}kFRZCezkaN;n?1 zBnY4<`@|%8uvg^|Q4qNWfAfu@zH0Z_(W~{7bCyQ0SxbZ56nhuH2Fzp0s)v|kjywIJ zSjoW+R-w$`@|Htk-bbQKA@wXVKUxL_Z@wV@+Bls?D84GZ`)R9 z>xG65jFdAUr4#5K2SR<}hglx>2p?iF$_O7c7(F4EZ~wy_B!dJaC&HWr3me5OCpcrz z+iI$+s;c`FI|%3xJQ@z(!J!kpXJU5!Qb|^Xk6dalZ8^J5znr}OlX?fwoS$FuaeqA1 zNN4XtCYq8lw%BwAZ3sVvXXU5kqiE(##PY9XPrO1zl+cR$n@YWMYvhdG&rivd(lALd}E<$}T3Y*0FDR5bwMHTCdl;}H8NynH{W%%c#>9^zsb18se0w8si6nM8(y&+v*a#UdQ!;Rr$zH;MIy-ea^E*rz_@v+ng1 z@hL{o5^JFkK?-!fegXx5FH&cMkFjwbC*ng${z^~Ddj&BCF+E49uPX9ALjvbE-?`|z zcaY72oDFAvAvNWh3y(e}3HO2r;ZJ~&fSS!iVBAT%qSn35mkb2<9>qOkEs-`r5xAHh z$Gv*e5Jdjd%^m>-+#(D1Vuw@`2S5 zRQp0GhvXn`4=X3$Cpey9fzT#F1i&0b`UD`*ewRfF+AuYVZ`JZHhpq9%u=kFk18><5 zhDefWs{OLv4Q!jvKSkYFnX=FH_2$S^ul3evlzm)&%rw7^7RLjp889!8yF1z>&JeL` zfHuPn9COU9GdBny!+ELOxI+YQ?LO_~di?$81vLtr&BY>7%Fuygb8Sfw*ct>6v4&)n zj__^`^_ibp?>$U2A5V!n&XkzWBCL}AQ|&ntcT1)hEc>aYvE1aVv0o$6aHlK!7j`gF zOd!;nCP{)aP~gbehDu^!Nkbt8yv(O}HZT(-FyX;KSg_vU+=S&_*kCwU%3xy!_M|*L z>+Yr%BmMN~>~-fNyU2G$_7QCt6jA$UAvAgLSWj%z1Q33Nn7R6WC7Dvz1Ft|DVUeqp z-emO!x+lHntED0^VlyN~!_OZg_N2dvOEV12Sdzgj7S*k*LPdy0OhA^!a4iCbrDiMI zW7p%r6vM?a#01Hc204#;>LxTkJ{%1<8;2k4B6*3~s=^!B`%dut55Oq__lSRJr_550 z`-ulfr`#c_<&wyheCH|jI)~JqzzR7CKhRgwPrp)M$oraIiE%Y59pTWzv=!=o64pD9 zc?d!tqQ;YEqI!piq>v~b2lIcr8(GZs1^~hK@Y~9_(07!3LA$#O510tewz&_dQjCax z)Xj+J&J9e^5Jxscb0S-$Q05BV!4Oj2tWA(FYN(!=4F*t zYuB#~FsiIB%#>6K83IjG&@%)+_#ceWWY=?pe=qbN@Auj!lPF-p&c&)>L~oyCq%fci z9T}a)axPAzF;U!lu%qSqPa%7e_{1`CkFpo^(0{^*ubIEJ_xMB6Pv}3tn%Wo`M9+Ei zeg4nA>~jykZM6(%Q(48wzr zl3fA*QpHf?lJ^|Ba;YD2aX!fDgu~mAi3G0bn=Y}GF=l3BEWW#^A<)G@0^%$Men3Oe zFe|@N6o8v;w_gitz}|l#xbL@MHUn5{2KO6=7Lt0O@PqxbrU<6&w{8~TC!y#WADs3H z_lO!Ds9in+d<6yw9zH;)VGWsBk9DXzi48r+Mb9={sJUhW5fuBGP(}v?2td@uYSC|h z%ngt|`TDz)tZ>YU_X((=yq%v*FXTgkN88H?Sk;9?A_2hsPQndNcHfx2WOtHksaI-nII^dJbK!(6-D;9engGHH;>7*XZ{bD|Ol1)lXhrgm=7G$>__L$Tq7SsB3=Pmqb;nc? z=m>OCqiJr7qz-;7`R<^W{o#a@sEQO8rn(GX5vK@32Z7VGUPy}m$;lC9Bv}v-s&+k8q=|M0(18dL zfd^8&1P7acHBKYA+(0+|(DecbtPs1L*%B{jF+h9756|rjFn_%qyFcSQ`+5}qnsST# z7yA}jW&00y2h>Fz{;m6~*J`P5I3Qra2r>8bwEd>GpLbczdqfW%AjBiIjX?+pw1pb( zF&r3%3$bMAxp4Lb4_A4y4}dZj$n_&K4VyT_%g;sk0hvSOJ|SY|hzX)EmPE4rG8FWk z$fBpz4b6SBNhD$YT<5P+hGaj+rhzZyb%nr!>AD?vowY%n!G{zhaB<`t-jDQHg!q3?! z#F1J&;Ldx2kdT7NIQ_$*`Pa;a{D-}eOubqD=15uYZa~-&Xd6HP>HcCq1;Rx?fkrtU z3oyB!@^v|j@$LfO^Aa;gA_6r*=6ZeuFZUQE!O=D=9E@DP zh0Di1YP6{MWJg2G+DGuapNbI@r38d8qEH}wk#u|8+Q>?lwczM`-J2a`C|uI8ST4YZ zWZJ_ZLSWPlC|%~5qjg0%|=XvqKzkl)a7c3t0?>kWN64h7PXyhHRr zq?7c`Oc$&!u2alAY@=B=`xy`Rl*LcI_TNk3NHQ=uSHelD z?dB{#gn<)Gkz`{9`1|}I`G9hffdJAp6Su|y)U1V6$NAA++fNe}DGdBZVd9pY95uqD z5karP^-hnb+n0@u?hJ+IP{%9ZK;U3Mv?)Xeh>gk|Lyfw)3~|7wLuzgsaAEWJ!qlCG z$_^L+c7uj7jz=4o_E({6eP=rcSjLEFs^+Lh1VbCrP+Uyf(Fr7j1v>!(iGoHH!IM#; z(6n=sa8^qzN?f|SKrsa|14ys!4M2nZffw2WUGV2)owovdaF`ScM2fG%XcB8o8-xbh z8wL%AsABt8jV=l0RT0MrhfB+wM`%^~0OTKlb$QZW1*)xBNdSa8B#p{C39LS&M))QM zkfStlQ6p0ik#D{w!?ZFk2v&jqQ}RUcWams$ep=i#P_fWsiD&s49Z~oZn~I-}aG8r{ z@YDRcZ134ku%`@#GoA4S=biBA&#uGY4#9OBcH_3-)onL#6@kn>qodttWGClui%iM_o799jQ=_Dn#)~3sD0B)MO4@Kp4|^J1<&q3H?0cXQOFR;b$DgY7z&=^ zQP;n&%uYz>%;Du_{!#Lg#?1f5qDoOT67C}{i++C|^+Nyk2mD-t>#=TsPkw3Rd|4y$pzo)8o)gLb^^3ucSy2d8b z$?NjF$wRzWN{FGTmjn*u1>5zGmsk||V5i%vp3Fn;Ss#N`_*>-EPi@BsTZD4hqLES& zK=^>6*&v`lxP{}I)86W}fc>FR(jY+LcYFlt4IakAVQ)^ZnIr%ra4|(F*%SJk3YxWQ zs~Iq64V5!gX)!e|wOb*x7`D@C5h3vw5F^_-Bq5BVpQ|7+u!RVQzUjSvXO*KC*#dS~ zk?%x-v{zI};Xx~;0cdR+B5Y^WMaxVYC^SW@Ta2A}C>+cHQ)gVNr$MkT zt7T2x4h4tLkUWli=#na3N03Z*Z&qaMUg zVn4DcF<5_D`QYy7`0OHQ3ZTFa2?v0x0C*twWt2XWLH>?;<$on#pYncK(k#-Mq@9*# zP3p7#ejPnY>B(q*onPN$F`8zt>yC~usj8o%|7PF9+;OZqP#;o37rozmLmT;0Z(2U?u9 zafJavgc+-k`8)k^7>35m0w1_}Bq>QzDR@l8gkVoQ9Ua0+uh2>jSi#4gc-|Xp{n8w~ zGx+G!I`yNbYVMsEp7j^6N;Lk>&Dpl=ztF-sk6oQE^x3@5+IUDgkha-Mjcr;jY9?$w zL+rB%NJ+-@T0#-Cv=I9f{9!sB1~4Q-ALfrOg4B0ngG`z8=l_Nos_jDJ5{53N!t?xh z_~oKU0KuqiNM$Iw38Eyy{d`jfz^{gZw+M1Q;(@2jqc}$uW!OrID{;L5F!oU+43Q0? zV}%gmEUn#`(Xk8!WQuWt6KUmc%8C?3B--7q<5(uE0%{^4;EG8IR9+OJ+R#Tv6`;si zB-zM;r)6J(1MLOe#C1wn=9?}_0j)(TGKyu(b+kNY}2u_*6o_jY*w+?S;}(* zldj7qY|WSqM=LtmnAa(DtlCC4X*43$Y{`dXv!&cF*;wmVo7t;Hxkg?DC`^0~pYuied;i{6;O|_F+2DKX{Y_@D$46`gI z)mz#QSNt{bAA$aK_*z*SE?-T2RLsenRMs;ZOZYT<=g{72jiu%WcXq0FQv0wv7(**1 zPduii+Otx5df3vhD2PJjD(VV8J>_>1ZjoMFm1wxf-J|66#^C2y17Pj0wX7Tk7oK9j zCMgI51}Y$ZyLQDXz&7tBi{zu-H2&@q`m_C-OZse7-b63!p$;(+%PJ7GJ&{|2KpaR= zF;=4cKvLlUY6zQgNEwC2J{Zdj>(rkKsJX-WMlP*C$4BM|`UFFnk2Zo2=1Zay@F*x# z^+3z1r2L#fr42nO^#c$X073y5ZvHesGAAd`%(fzFRZ_MB?=`Sjiya>EDe}?mhu}yd z6R0Zy$S^qv?_cUq0Z~Y9JX}y z${F()I(iBe<|3ytO(5hE726l1?*fz#WBkl|P=xRk+Ps2$A6Mw{ODIYD=3m<|F3r^_ zL}-Q2Xp#Ht_7DR=G~58uLN4^9VGdCZ$F60~nto*oq&giy^+hjLye^b#EGCB{0{mhXCgi7?SpA-46+-X5|o!X=c6VLjx2ZY!o3Pa8_(c3q#ZR| zA)-PWGzBy?D#*EbCx#1ELrIv#d`@Am5Hm&wLV^rsdetG!DbNX0pw!w6(2c3+C&MRTszD)naXaXEiPz`#4iB zAvCzD$d0AM(7@opxWl#5$zW9*K)ZkbVq}6C6f9Y@mk1WTgrXwI?m9r=#u1V7R=6;2 zfsAKCMJ&h~6<9N#Z8NBDb#TNnG3Zf18p9fjpc`lgnb&G?ETx?xw8FTx1JIQK;NwmS zBdJU`ri&s<)rT=GF-cI688lf!MhJvgMvE53tqYxI10E>=po-kaXIG;Ej6Gbf^9Pqx z=H9F{XSc}Cj%<`l0H{YBBO{r0Yb+M_qVO;PJH=}EA3EXMyNCJB`U(^KyXL9(>5))z zVuBRKT}iV6?D*W)YG4jOV2{*`^&kt5#6Ivj-~OHk|JEJHa1r-KfvHRz*LjP(Ox} zyUW#FxEyAACm*{mmFvAcLFb6SvtEjX`SnK2#%Wv_WV6~2eE&9w)1R7K6Y#E%Mcn}gECcZ6HbC}t zWVnvW!19p~t4n2VLx0)GE6@ACyy5iK^2_05yGb;xGHIIIHD;#SX>CQeTPC z9WWHcf-T6mg$@TniZpA8AFMB7*iDCrL+*R|v=Kt&`APB{SLFmT@}L5v$RYQKU5p(| zSUUR~eSjg6{bE|igR(gU3`PyobwETN(GyUM6xu%!MIO*K1>lH>h=}HNBpvk6ol@9_ z$e-cFrP^ht5fcKFs?`Aaz$jR$1czs!mc|X_ZL`AAJefNE>sfr4$Em&edKd;#EUK6d zAweSPL_c{(&T_`S-VXJ6i-C|CpT{j>c)}7NP#6h6a!DZ!-V1t9MftUGG^zG#tLee8 z$RZ$K14I*CbWA~lZVz1voXJP;Cn&`FULmVcYzMyNaOd~g;(2pHv~hp)p69W92zs?v z)SDK_W`uh^GfqEJezZ^7YSRZamRloLdn+Dh#!sEqtkynFmoAMM*`X8^+;Fne1w;xc zLIfic2nkZeH!6rA#tcCdthGco#YGoc&P}{p<>l9$taWwgS;t+=yz(wicpWwkUi!N9 z?c(LzRPa?em8evZg{W*51_MlhJ6(3B-6=xQiMBzGM#mrwjlr=dM-+@|ii5Cfs7B#r zf~Bb4yLin`yk$JcEO~0PHf^H-;1{5ZSCicN+JxS>D+LPO>T9J_ybpR^hh;p2rp`UL<(ywT^nh!8@6j8h|fS16= z$_4P0!YVt*l5{}Wgto1-$6Z^Ob>l~f$K>>gxhgDaL5ZtNN;Z^$h9)H=lx({W^6swj z&TGqSZu?)2Sr5OQZI&{aJ|^LoO-cRV%klGOYgzgAui;lSyTfZ`&lTHP%5=Qw#jInrQ zaR{xEqWOn7Er)`)Zi*n#5LeEQf*+Cz;D_94HxPP2>5?I~e2~Gi*FdSq6ET&h#H9rS znt539;Y)oHDVoRXs5Cm0v}Mt9dJ%?I|~iM`5I|F1U*91f)4xA zX^YN8J!R0+KadEx(aFF9uON5T3=L_jbm9|#cP$n80aS!8FtQ<_qBTIK^Ic*S=UrHTTI?7Y1 zv0SiS+o=*kkj#K=gSsGwjU5~C7a;`^)+ivaiR)dbDA^Ou1pt5;8s^lm8wO~Edu1=4 zlwG9lJ9bj(lCo{1yOwGPF-JZL#5|fZU(D;%72{j_xy>@MwzXxf*lg~1({EnM!R*gw ztktYoBF~Ov9q{C?Y8i@|pk_tIlAv4bv=6&e~y)HRYt%rdNuVCoGq77!$@C5vQ`8R4ADwZ>|}t1}l~H!ei6 z(P@?lIb(q!R0<=KMN!G+?YRx5U5Gt;o7Y>7#CV8AG&dxO2syDxG1zQjLDuSG&{{OG z5u^tK2{^zF=Ly)^N|5tu8#7&9IcLX%!Jc}Dygg5LEtbISZRVcSxkoVeAnLSM*d1cktW;V+4&iAysdrcWtiNzF=Ed~IFP^_Xh zB$!CIr;ki}XR9X0vuM`x&ks0JR1w6Kv_!=%I^xy9$%ke!iD53aEJ}*(0umspW#*c5 z28o-8?PiJ?lc|t2DuE3&6hR_^Tg#U-Zpc};opF@Rtxs8c-n6qsmtcC#nyU0_E@6Z; z2P_gaJ!d?_6F|cl1UO8F46l3Ab+9~ZR<>i+(^;6p&b4`?)cE4|Y93m8&o3Oq!;*hS zFEuv4kYlPEefaTZ|G`)a_gY&g#=a9#<}Zdr=s^b9CPrW=Fi@lg;A@irVaREvriCOz ztacTHO-MkE5rl+nTa8AgLf|s!Y$C!5aVUw1t;N=JVAK#gh!-1ym{w>iFoAG<(DN^S zte&1OldV;?ILobVtx4?4b{y1tUDw8r(t9;TNBcjGg$E0d2Pv?c!0?a&^O_a2Zi(8X zZ=|!^+oZR3UF(7Ja_CkV#er$o_9(VwT#I33R8j^s$(tCxWtm%RH|DCpQUW za2st@G7b^}4GP3?1PByWUIs=tZ4tCifWZwO`dS&p0uYigBFPbiPSU&i!1HhnMfL)e zC^{q55v2p((irDKRY>*QJ1bYE3(HHy)7MfQif>~e&_#m;0+a)2$<$A^%Ry651DkSp zkxpVmQiTZGCTUAEVA`C`WAQs*x@~kh-OnvmojPXOjBN7lb-YR~mspKJ~h=JgUik}fq zpYd1UbN1cS z9=9{rGdoP2?^DaP9-?~9<#}yQyu~{P$)Wn*U#>RU>&m?HG?7yk6Kr^#=U>Y2FlZk< zB*O00xoP!EG+l=<MZ`2T$dqWQ zrcZARPnkGf30p3Nwvy)6+0C=^kB4b`=utj=+MzD#c#@wxTJ*g?rF?;Fq^CK=?Zc3b zM;M2yMo8kSVfRebM6^X|-R4~-VpWAx5Uq}g%5_hv%xW$4C0P`D1h`sVf=0mUbhpMf z`ns1%bjBTQONl7j(aVg9)H}cTmsG`7DGsr!wQk61h~Smv(QRqTXvc>fePzYnjM9I3 z8~~)J-ycN>ya&Z29F83EQ9ntqaR&dJiMfJ6>4I!K;eg#%F#*u$m(CtMNQUMI((`B8un-%SvD^T|Yd z0dBhBgq=h^(1antxn(%JC)iJv2u+(#`19%Ilmvz*Mit#OxTXxO2;&q+prOVj=pll2FMmP zyEd%CLJ<%klxwj<^F>7M(z<>m)x@AQksv^XVTzysPGg_c2jpgc#>d?FJ)G8R$w}zw z#q9eWY@HwR)kbNYaExS6m)@J)U5u2gW7lpDoq2Xn_CASsA*AYK8E0m*`n^lU-7uM# zYF!%}W6D1*`VNEj7$+Rw)7-fhKTJ^8YQ?m}8eSXj%^kNw!9qAXEGMp;1)+~a4l5Id z@37Od>~{!xFkyxUn-s0N#K&w03??f$h#)d!Z6jdVY+;5rD3lF}cYSxm1{h%Gm87Fk zQzSFJ*=1gyhSrAPkn%&wJ_>mY)_L1t-Bnc;LZIwk062;yada^N%TXkW-7$gEyTC}v z-A@f|X*WZK^h@cuwJ@zSgN?=v4gpBQ4nVo51-6?Jt*z2aIYTB3utjqn08CF=01|`W8_4i6Y_xbphdsWJsuQ12I#Ln)&PK`?~be?Wm=-@tnch zONfQgnt>P&@KO*n6l~2YAUviK2(xT=9|qpe(F?{wEzcj=>xxEQ8KD?sU>4&5;OPkg zow^sHxNtn69U|aE9F3V=39un6Tr5Or%_v>)3>znd-7Yd-`-lu5v!sRXhZsZ{*wr6H zqL@tYM?~mQZBm9@JsTsV*@c~j9)s2=z;LoOKm+iUk^y*kkS@pE1`3cH;cN&zYwFEu zM}ru;;v)q%$T=?wSjZ6&g6n4`^49Z*ku${gG!#e?ikFL_#jr0NLBK?;TS+JBuzG9b@-~{ko?Y0``;ms5x3x>H(p^WZpyiPe>w!(1cxgr+7C>>hr z2vw~ob3^OF==vR2jXO$x7ENU^Z?E*W00O)djwHY{CG`wIc~9Hikt3QspgO|n;wKea zSg~tJky(4eZkrlvm`o5_W_VPGi%c2Wz5`hhQ3m8xGGot*17)3!9qiX7*d0AwCuxv^ z7&g#g$tG`X4@PMBFz=&qGBJz4v}y<_%Aa1M^4RzRz}5~D1kZV98YJ?u73_bFa&;o=pS z7;zrluAWiqH1~{om|-=Ehg4EwftZ_G)YWSBRw>HGIapMcGA_l^>S;c#(L^r7R~s%|o%e&D z+oA{`22Hmxbev8&x)ExUsb4Gxg;HrAi8|WEfZs5IQUr+k;_84wS4L7QzaxM7!b*#g^a>f#NZhOYx9{w7`P_ zYqP8QMTX{hFUe-x)i75Gloi4-R0fFhSvHaJl4rwiFL{gKFQ#5aXTKINctRK8qk$n= zDb$QmH-*LQCPb-Z3n@sn8&VD;)Ii@o7^1RLWz7_{ zy1SAJ43L-^AlbUEsUnY;2N(d-83szQLsX%7sF{Fjb>>hGMmQ^{zj$n0#Y3UPM1BU| zy!Z}=7#$U%4)P3RX|eF6Wr(r{4J=~LBB;{xQ$b=gxVqD{Jf)3wINd2;7zl$<<}UEY z!FFC#fX> z?QJ4t{@JRaO;tX9HDnn6@!DNdUl#q!X73aFbwV6{$E?&3V_3^-p+iYzSj=$RRHanG z!<;yX<%~HP zZxujy+#cr!=u_sAqg!x947~`i0t@!x(jja_M#aEz_0hPcE!h(UTInc7^0twtRL4+3 zvGA(ofN$WgC@2f_o#B1531o*;WzmH5VA8SJqJ}U8odq1gO|sGk`d3R;nuov1s=4j+ zk*_DFhlVg<32XSd9b?SMWdp@}ULYAbSF%~Q zj_6t&8YC@pR0*hKQ%+-?^sjv889ho*AiP0)c~t?vTphT=B|wHCqJsYF~Si!=Bum+)qwc%@k!E{l{szRV(y$(roO1F1+ zceQL}j5voSKUV8N#RcN{Lfv#EEQVP}1Zl0Fn<@k=xxKK8S!3e*#*r*i2cemk!KdKX zd|eQmj(8r?!08D%JdPGNnZO)hEJXL4W!c#p)zn^`sd44v1ei(qwPNSjh`&0BH0GG; zKA}SyeQNE~BL;o%Sz;_crW_hE$&Y-7>E z#)Oo+32<|i9uTbKuF~YjP`bUv^vZ0EAV~KLJLvAWY~f?7OuRlx34F0S_-|`S4N=4$ z*9x2Rb%tkh^aLT@Nkotc$Bx*T;z0>tQ69%agfNoqK}tIb?W4&efzKt%J~@;`U+;vy;~Y-CB)iwl%o?V(~3*W6J*UBW*D{$n;DJ`jAn;IEew2|Aq9->16~-0 zCRX)jKv;>ok9ODPigC;#(0P?o88{|1@mA*?O!gam1CEuw_h09YJ5IGa9g9?A*5R{oczEr z0fs6>G11avK*hm|@???Ch%pRYhwup$!9K^~8z3(knDBu}d<4P*lZ+=w#UX)$P{3di z*v3;3+hYtgm!v!wh18K_TN+5~NI4N7p)F8g+2k~P1C$*zO_QwPIAog`$xGOROB5Oy z((oG@+)kX1=8)V((Civojj{tG5C=LCg2Z9YR#Ijd3l@_GmJ2}wa#6M!n}E~>*kBvp z9^1hkQ9}yH90+&li&iT`BE3air9}OJ4jq4VbQqYv8Ov~zUge4I^w0gMzwyMdX{Tg-;bYJ%4d%uNWu+28xRM>ia{~xY=>;0HAV^a}j zv612QDSAHTaF5TUatBt_{yfasnotxRMR87%T@8Z5>NDtU*V8NhCdIZbS!^{dXDd5x zwL=KRT2^e5%qGZUv7=R~S}ki^Y^1X&!7SS}Nt%?*mTJwLZIz{MHfvj0X{~KmYPDjt zM$;jt*3G8F6I(66>ma_ZMOWa`R+TbV%YFXyr;@)*R~cX}>DGcKNg+YjDkUJrL^PBe z3E(Eg%hcGmtwUR88(UK_h9Wu$37HlU0fiMRVj5DKN(KiBhSC=JBQ3VljzAl!slq^l z`X3|Sk}<0b(%`Yy^{!TVYW8UJH?DTFu~BGyqv0dxvs)QWim{(WdJn#-=)Mq!7oos< z$=$r{W6SSbq*`I?HiHkK*FnPht4ToP6}hb#KoD5qkrK+~J3OHF+Pz?|gHikJDIf|t zfGs6pLwMj^53wJs50{oIKb%hDk3>f09ZA@2NgPhFz6)zelltih3Rpuy;s~UCI>Gm)U@>s@oQ+i>6?xhjq0qEIa%v0HveI0dUE!5u=Kg@pBmA%$a$U<{889wZ#;bU3%C4h`ac4ztR+)P`fRx-D(#gOo6wNWgjy z*HA3{^dXbUMLlG9*g)>*4^h+-6Qc%eUi}Oh6^GSWD+o?@!X5X52kcs_J5E?A(P}AB zWxL%{)ZpY;4xz3kg$-EE5L_O@BpMT;6a(B<4v(KO;M6f}qsHN%Y3yZ=<%cGydN+-7 z;A2*kZYk_9-VMIYC~Ypo2MC@r4}+Q-4%j*9QU@EEt0I#W!vSy;sM_O_YvT=qk`N3l zxo8)K@!NFzJd(#%6$UFX$)7upnIfj?Bm+aw8BLIfCD4XuM9m;+hen&VV>ue?#G_R` z7HR5{mufQ9O8wpQSk!bUhW2P723iyf63m$sK@JzSB#tpj){Io}G!z?*(878;zkdw} zPET`Y<|sg*+7PRC>JsyGx9gQDan@Yul%w97-p->NI&WdlHL0LuMZ+d)UzGKz*x4wAY%=!+mK> zAf|OlwEz;iDG}zaBwmvmW_hlf@YU(zUJkGq3V`+wG-SuXeS%r)01!oU-CWK33=uhy zA_PFd9wsKeZ^Yku{e}fC<`K$A>F_XZjTAM|{Qu!;`n!9pVO@Sp-jWuEewAQ4@ zbz8a3R&{Y#mORwEPZ;w%yQtRZIiHzoiS62 zK@zY~ZWfv!D_9tSp0E?v0LZFneZPz2qKojo4w-zJtgVv9lY11c0&=I)8!2N>$42JI zjRNo=n8YjR29u4a#Nn5W=AJlS6EsX~Elp`Xr2j9`e{a&S=VRP{cCV-L(X$&f<9=3t zhCKd}hxsz9RKi9vWLPT!M1Fsd;m`U941@tQs;4T+I zye>sU9tH3D1VgDXtf10jP`Q={#gs~=pchaZe>EUY-919y@b$q5NV<*E2BJ10**x%} zs4$=!LPNa0lnV)a6pBcxB9I|5JWF31H*+qCkb(yV2>z%mYS6bk<0b-o;YX>KY)7jl zdprL}z+S%&tBZ;j)Q4)1^awB@K#bHpAdTr zh=wH#Iq-wkDqt8fL5=hZS!F^LU>`nF0Z0xWNTGF)HN&^Md8*%M%axhxJ4 zL2uDOfF=GRh zC>j`{f#t0{N;u>LmL@CTi+0229ekOvUT@%}mh;fdN%~#NW9!K=(ZDV(A?yK!6iQSgoa~)FGK> zEizIvWfILis{Hi7erzAy)Z`=w5n*cx()>aMBHd8-UETkw3HOB zEHjeT0H%S`n&8Ee1YpFNed8e=7VjEg?oIa0P0mAlc*aR`HnsfL7}JzPU^f+$uyw2v zN+H=+bnMN_5kaBs&;{&}O$X}Y-ivk&R`zWMf!dw;qzM+-n5Z$6M-*M1bY_+8*4ss< z6DKBQmkC(Q6$LOjJh+P3B9pOck(Gv)agni*3}P1qv{8tR-4GkmL{0^+0qJytG#HZ9 zmpx@jyMapzQ&dsT52Ku?gatJGv!3xe6v7h@n3gdvv?9TP@n)irHXAW) z#JUVd@}h`|=pR8M2oa3bWzyCb3Z!Rm6G3I#$2)JAiy0djbs~deiKI&fx1`MI#%a=- zBNG!68{z~58&W|;lMMj@EK5@h2y)0RD4d~iATrAgaiK`p7lV6n@vN^H#!Y4D%t=9s za2qT%Ww4`hT7tqEidtX@R5>urHIzbKHwZ?;Dp@AcUk%a}}<>wCJnyQay-OXbd)srN54=ES8A}&nt z!4Q{22^*OUe2NcY@}ZOIL;Ng`-%-Ep`PHHkQX&x$(J(UKaNscrEEpud53|p8{wnq@ zWNK-P36@mwoa$y$y(nj|$@mos@c&2uY>#o?pxhUr6W<<8Il`PM6 z>fH}CWVV=B+C~t~P7oe)~Gn z?CEI+c04*BH10stOk-Q$gEO)f9|HwMg_(mx6xm18-#z83hSG)zJw;g%Jiv5WNkb88 z7Y2yV)kFa3Rw||jD~KFyA zSa_03ee2(z;2XSvp~f1`8^TK&?9Pd5Ndx=!v@zNd;Kd4C5(^7}jRti)VEsp~Z9^t;nIdo~`I@UR4a}&9auD^OF`=%ItSDz-cfn1vnNEfg(%SP!2f56L5xJ zL011tt6Mv=eN;9MI-D=5gze~>McpYhM5+>k3S(w*y@M<1&Q_}P$4d2`>FW?2j(yGb zK3076BKT?WvmVYbqB0yDO5dBRLI%E=zbHtp$YCN$h5*rIDM63`+836PO5-*!V{#D9 zr8R_nd_BE)s!PugJfwP73EHG(YK@gvt+1_pt3EA+b_lvFBC9U1whaLK3={xYV!KtT z^0b~_uysF#vtrMp+)Y**tpT+%%Tp#zQ)!y4%Q1~nwe3Vc9X!$>QpZQIz$mLNwm^*} z3JZ;r7OP{Pc{#I~Y`2F?nX{bTb(5A|Ug>`POEDWV)p=eY4y&-%q}S)mWZ6sbWIpKp zoATrE7#-2#wnCNVfTb!&SeYTbg9tFoGQ7TR?A-En1{d8$_dIt$dr)3uIF$7-440dI;nQBaLAKsr%y;!c52fb;+xPAXze0&YsE3^Frb#KnE@W}`5wnW};9es90?$(%t| zh9DrikjSJRs?34FoWlwROoZ-ROCcyOtt4!Zvjvji2n3Q7*~)aF+E@whz6M9Q2rrT1 zxo=?o;T5=rQ%mnL&}j$<#u{yL(m*U4%mcq(lf8n%F!$g(L^$b~${@h!)q5qxr9>G= z4&W&<952Ym3A&00#3!)WyU&+k-UwlUBl3bIBtMVmU)p-~Rka%_@W%emqx^4o zISdf-6@TKL_Rg?B>>?-p@<0tS9#|lLWnbdiiTT!pWiA(<(Rn<}G5M#W{om-}`k(OR z+O1)=7P2D!Sw>rQ<4)>FHCbb5wP>X4ohmM7!6#+1h}vyNtTm}KMzBe&*{w`5CPOg% z+`3pavWUfqz*0s738?r8oe!k`aSdmUtoqwOn^zOFgqK~)6ID6i1DQ7QRbd@wl^lm@bkulHF&X`Z0?-KVr-*k;oYY+*13s| zNwnsxoZ#AyWp#^|+UgB$yNtxfI%h3gREs+0O^_QY%*`6zsP=gC&N{l9GjWFsEHhne zE^=~g)uGnpaEJwq>4BKR!6M)(2EB(IXiFbn@%)M34mo-ri|b&24vc z@ynTOGY@SO;JbySz#=Q4V7){|=!gcGKdgu|>S;a}UAB~VzILRol|S3QtOVT!-JQ*5 z1Ay=akCJ-jKnMY|Ypnj^;@#3HV49TN;${9WYUbt{iJInQ8EgcLsTs4@PywKffbtO$ za)=1{n^99yr}sxwA@PNU;xa838GM1|-}J3$^b6c^A|Az3y+Z+WXsAVmC`w;aqi8|& zt^Ay+-_OA93ff7SnOIY5rI=J|wN#l{DO(>@$v(||+Nkw0c5Jz$v`!4RQn0U$=aB7o zNX^`F9b{&9N%R^~Z3?{c!da2AwQ)a-oM};SIh~yNYuTZ<#(?7lJQ)luhkLH|G_v=5 z>E_uTs`$$BRqoKvikCI?BOL@7EJ`wgr=UL!R1`1~JKd`Qr|bS%{O@V>OtWTaGQN2& zr)66)q|LKv&Vz~8F4Hoo_*$l{q3Bpn1c95ZArgnnWN$ ziS!wTnTD3qFRxPMQ|s5(7(Hp;bY7~#ILB#c`1$FX2Ym*CM@&OhUVYRcad0Rh83GeD zNctjp`7fRML!tk_D!->kya!$;g7sI0swT|rgQe=9XgvKip}{UJ$OWMJkbQQo8+1QM z-=adnUn0lxj36ydeIGxX`y;Hbl8t!(RZL@1DD`++Od$wyDjke5InwwdVH!C*E(j}Iw8nqhQ*_$-WW}`G}&6eM@ zx#peR<~3;9vSh;=v1RGIOv@%$teSG{X)#$^nX_iqY-ZTTj5X1?!Nt7VqUHk|I8 zGIm_D^{!)HWZ=*I^WS*O{?vazk?)F&(^}1DtkBFeGd?a9b4r)X6Qn$2mL*}HRgNxW ztYw82NL8dpSr6|@9znqo_|UyjG!B8n*==9tg+20Xk4&e;f5EHB{Mkp)YJ1T6CcZZ; zQ#DgGCwE2vGf(;1=9Kz1b5S0%YKLb{TU9#t&9| zSp}L)HCrleRjm~)&8kf>HKnahwl=k@rfS(mn5tydEM;v~8!f43QrRA9wb-_1W^8SP zL9$t(ZLzSeX2!}kSzu1GZ8FVW~!N? zwObWpY8tT?Wm`5D(XyD*_IRQFcvtN1r?dmGO#*5L0Pctoiiw-0BVki+cqnkDg&!!M z5c7tmH3lURS6J;Mj@zTKZnp zlGS#V%$^K&s;a!vo+q>2+o2bw^jpZ+9(kC0=xLP70TekPiJ-X&B5b=TsP0EHWtFuL zLMz$wUsS!w0klzbr46u#HW709%BMJJLK3r-X?oN#OlfFsR--kwS+Q+KYK>ze zEY_`9n!${wHZ}}sn6}#n(`l^Dni*?WvSp~#Mzn0Tl8a(xYWOemJ%lwybS71Wfy$jn z@FyP`KKwsA5F{XntSBIIz5y4YA3f}dkOCx#VbWjPCljy$;$Z{!g5}f=0|k z4iY==WDZ#5hrL*V-BcO;nmI)3dY(kGD3@9qR)qrqXnfv-1ih2k%<1A@m%kt=Db&$QC?+S(srEDbbssyVg`g0cn$*>sD~;L z5{iGok@*-0{cru^l!5Vq4Lg8v5UXU7hDWr-xEEj;DFq+!KtBJNv53eql%HS3+O}1n z+d7o-KYh-6E0>{eVYIPQARzG;kL{y=A}m;e>r1luU+;URf5}RH8j|<2l-Q7vPzeDD zF%}`)W@d%vxOTu&8U}P2-$Y7TT0omk&7fgWDGQ+>WxFz_E&N29CZHsyQMQy}P+MrP zmArfNyt)^rPM$F4wktzv8F+g2>n)xGmS7KV1(AMe#n^ zKc7eK|6c|CH}hzE$u_AfCZN_Re-P!QA;_;Fm4E^}Wtft(UbJS+M^){YwjOGpu~%iV zM{jQfmeLz5YBsQPxbeD1yvJ48dE>^jQWugu8?Q6V!aJMq2>a253tW0oKEQiLmZFDD z7dRy$b;NQP@EB&;S*O>1tyB2>CF;bZJ|XjeqkXNzHB5|k8#cl|s`~$5@t-t)%=H;| z!%=Ot+F!dJKUQeoi^s#Z~+M zqciVrkdwcpSAbmnIL0c(g2pHqWtPilo!P9jW=3mI+4~IsQvM9pYZ|PqTFXP=r~IsY zCcip4{pZze&9>IHTCA-m1d=e4Mhp=n<%5JfBk-wG4a>CbwXHv|Bg8WF&*{{hZI!V6 ztbTpu)vZ~RHa)YhV`skp{=79;_nME<=MA^ju7>n>J2zWqn#@D>=V#ZswUEWyUsBhz z9*m|MA46LUSRXIy>E(y5B@qTfNjVo3y|5V#7*g1a*@A)mZ7Kstb^)`zBNOae5TiaJ z3IQ=ZReJuti~h(OWEDcf)0W+!s96dRK%{B|j0nIIbNzaO9#$yr-qRQ<`v+TTBwg}2wcNqW`Ja9=M5sN2m4Ro0QL$8sGeVKD&%aaHVd*Z`nCQ{FO4f=J{YGy zld6}NK-dh)e%>5ip&vXe%Tej0>{_Yk(R8Bg3mFferPI}wdRCOLa|c5p&`OHHQUaJCgi6fi7v_P&+7g7WyD*kl4c#hZYjOF1ws5PU0ltwW8a8I?63U z4Nmy45ryIh9k~H}fp~!;#!HB2r=J>@U)Iq=2^_-hYS14#HPT`VTL?{VEu*784k*z` z4KRr~-4{^ukQYBfksS1HOcN=OI5X28P&vUN1J=o^o#kqc1mcbG*&8|#CPX+wg}sqX zF$@bSN?dH^SV)7(LR z{oif1O;bR@KMKi3bPr4HKe4H%O|8e%R4>~(bzH#!q(e_Jo}X*(SL+w%fs=*G0nGv? z$T?}DkwEo0MT-H18IUPOL6$*UP%G{N77C|POCSeOUH75foId&iFpI7ssMRE62oNNX zSo54!IW}bXzBKsAmOokZ7ST1WtjkTXZ9g`U+~{JBt5G{Cb8K0YOiaee+Mm3+ za%QU7#-_4{vYSC`SzA)Eux(pQYc*3eD_RY_(N3FdF{Y+jnoRCj5YTC;pwki-nyOW1 z6isamOklK|EXx*H8Km1R%4%B3W@WU>wX0#W)Yu53T@wLeBADKHg;i8l-}nWOP>5iB z!TQJ$iKWvKnUi@D6-Cf;?E&)lPw|1ySO^l*4XhL&?fsH_$5{S=c9xQllCOhOKMxwV zX)%J9w4p-?AS3Cb0nUgAX0ad9aACm>YZ10uO?}+#mdQiWcD2ezzbf0ts z0x*ha8b)rBiglqaIT$cfS}Hn1fxWPgnEUUAL+@{xJ`U2ez1qYh72zSb?5Ta zJdft1>Ok}Wc%pj%G$``|`v;vt(jlZ%@mKlmU;Dd&&^*F(LH3BC2k1YbeF!ycPXPU5 z{iOM;{<#-XXF*yF*t7`q~y^?xf^X(J)4(`^L zA^5lA{84pkOsPLkUe=jsx@W&r&1dpD>m2BMH8zW$s@y;VHAPLEDy2vaY^nnfT_pBw zAi{>>v;}Fjt|KUe5K%x-ETmbCLL#Itp(2gsACj&R%#HHt`C6CD@^U?S!-lU@4yt5j z;&F6qMub@PPYLaNY|;#Z5=c``M7@I1DuY&j(Co!EULo=H^(W6}=IDCfYJbFJ<-L=Z zb)C`d|7-80hxv^vhWX9iSv}2D#%6Ck&C1r=@oZHsExg!19?yf2f5bq7|4}e8{NU@| zrMm}Q*v=$i+cgs=^VzkngB#nU1*F=zGNm1=yfBWB9U`bGGkJSRPzd5@bXVgd35co{=fciK9l7i@4l&%79dP$sGXM#%`QM}>4YH; zW0V_`lz#nJ+Uu=jg7 zac9yr*gEvi3`$?Y1mr=*h6&)6qS{TRq-arL62d|QRngQjMlfWY3k<^sqfDiOA)%<1 zW&yV|fN}y_3Xhx> z@q#6mj-j*2?;)d z`+nxX+h4}avSU`ZlTB%B7QQF$xA0#B_r>(E_dfH<^79sDjcm~pED{y~;?AgtX9nM# zIs;yRR`At&FtH9M9ff$?5FM+49_Ev@0Uk zYR02XyLPlCW-Q9tjbCsgyKjqy$K>UR84)7 zCMYZR?O+cegH|^w5)fS0@X+%`D`jAV9-bQ@(pi!NY)l#bt#PB0?BOT|gNnDZ29pdJ zZXpKw!(m~qL5O;tlpt1{-#MC18Wsdc5>ZJT(Y`YT(~LQ)Gh&JjprlYaf{824KpPF| zR^(BGY;2J^twfdx(Fiq&L)QWb9O$NSomv8%Xem~;6Qdd!G--tf6bnFx*kc;1J=l)? zXwj(pL@q{PW@i~1*d0ydI3Aa4E^TLO!ra zBN4)zx)`fnZO}#%6a^A2BpEr?)@DB1y6en)1OJM_rL`fl*_fuAV%D_8WtptZHkp)X z(e3nd9DKQ6PZPQ1QML@B7YiN+5@C^pxJn>sX;bI^0n?86qWWXaR?_yGGcz#3p`L94 z1IiTFxbozaKfGh9b(mjRzWo8)_W|dt}ry~1j@)`G|H2w~J z;O8*|)k^aaQ0xdk&u75)d@vUfhHoBW_zJk(wF(R=K2oB2)T0KG1VA=F@FIMsqux+D z9V1Gk--R5)BEb45)kqtHapdGIFAxqP5D;Sq3|bZFINqw$dN|5=SEi?rSoBY8(mJqXan3_YOEVga$FZHvTPS9QAjKmZNU8(GGUj0r_TWaF z4+i06PE-$aI04VvNOT@SnW=PAjQ~<)|BM0zJj2YBL1i!v)+&P4&m=g2w|uO$MLkhy zUT0iv zbPmckB+XP-Udwrjn4S?eeRPdgDEZHj3hMi#++8yf$W57wC$WJDFl0~fJ7k1xYD5j2 z7{P)=hr?eJi5YYnpr#G`LL`slXhbkZSV$h>+cCfr*o;uO{69gY4G=KJ$~1eHElCpV z7PRQiR4zH4^6I@U=?z?Sua;T60`z5SMKZgIStEiffa0o0IH1CvGN7`FmM&(Lr>IC) zFR`<~R?3$zYRyF>e8?*u zLk&ZJuvi3&Z&eW1A`}O&&VYF%1JSqD^1yt*LjE=YJbj9gf+)0<{ z#U4=vF|x>ujC8O;`Mq4cJ|c0@xx&F5*v2u7Ao;kbQB0zQa#5{fD)LK~ODwC1u)!=C zr0qj1A6ubaaz_{fVH8fZ9tyvSo_e+E(!qEDAYu` z5z)Y{3|F?(6tJe2**4LQEwoc5=wmQzkuFwYMrB_M0KjX zcTr2rE5F+93pjX$=5jPj+w2w zvCYoSv9n`tbDC?ia~*5B&am?@FzoYYM#Xt$9xQ{6#-T3)c(gLO=vvn`UFJCeI`yY6 z5c#A?zj(6-wL|UkOR^B|L4yM$(@^@4Td=pbun;U-s8zHA6pG&3@MBLmq0V+Xwqr`q zw^Px!+L|)65A42ON#ox-Oyw+s935;6XqKKIrG97!cySvf1%E_jBlbvUbtzF?uoD*zo}tlwBW5fA8~BX3;?5$ zA5;_%tYW4142}Uig*^Q_k}N9XqjZ>y6kt)H^hkhlI?6YNn>Kl$Hk05H9>|@2zCJzK zokwP7)7S2dp5DXX)OT=0a(SlRcwp-#8;UipSWoO9l>))k7x*WTNFR!*3=M`OU_=h$ z!2`dxP5Lg+%IQ``H$!0gJx!L^@3-=5QF~PN2Z5?QtEv5UW7bb6b)D&TFU-`k)c~-B z2!*0`&W|M7)GewJi5Oc&Od^2;>kw6xjhIAKgzJa^Y;y;UCz%Yam1%#1KEKoVecOLM z50ByPb(y1hQV5->l!_bOUSc)^3>6fiii7ZoxC9SZl?S|l57WSWH=RimMLH^(2?-90 zYNX#uPy^h4xoene!L&zZt)&JssDwno8yR3%SXPL{DO6ODr`ro-ZKNVc5t72Oi8O`+ zE0u}@R2YA_xlj^9JJuXU;;~!D6rN8*%b|j50(qE`6A^(1GZ;oo3H1vhw}&;mIWl^= zOxrmPH;w0qM>Sck=DT^q@r~y@BXgy$x^}MV)1wyCu-VJW@9m?!7c|8=lOkGvqT`h`QRU6dqr4l$8W?Fd5Q0seSfZe|MO|$}PJ= z0MKfc>j6cgfJB9ZNDLZml>;ebDnM|=qUeORb&R=0W=5FA24M?{z-Sqjlx$|?0Qwr! zD&%U8jA`!H2&6;Cf(QzlD=;Y57kIYYL$7}xZJDWgHf7k!j>~GzcFrERi#6u$+H(x& zBUI6>Z&A-4mo^@yq|WHP!(}|9anrL0cQYwycV>g~T4I3wuOIY`Ay>5?(yq)70>An;# z5+r~UF#_|5HsnRbMWt~(X)ZYAuUNnR-h3}7Lrd0IwyK_Kux75(vn$Q!k=kukyLifN z=I-L{b2@pqD!HdJrt`I3f?_+ym^{@2EfGXOAk@SQ!%Fj23cUK>O!qHyjW6WU3_!|M z7*Pr$9StQ0Bp{|NUdLX&9i~UiS#@&t?CQldnJeAtQSUusZfbfpG=CNZk%Iy;5=2Q2 zNT{D%d?w}BKyub=t;{^s-f+yWvUYR1Xx=j{tkglqyk#GhkM6L(xJCnnSb-0Jfz@QX zU`Z8~5n$+Iu~+J&4HPJN!I;p5fcoZ9Z4_vg3E68Ilga?$06W6HXzEPH-qZ;U#@E;% zSYCfBZ?dB+=wHeu{e)kD3;YGTAFeZvJfsibPJfB^V208>&R-(VZCh2WRjSG|u_5>T zyzGH;)QwFXv?oY{3`^R&A{>MOdRXTGNdRbwUOg^)Ewg@h#sl%Tm!ZVKK&B}1yJzng z#Qx{u82BM%hm2^1NFn7AO(1jbHxPwm?miL_o^(KTqwWYSC4D<+w~ster`Iv8#?WS- zF>DUQGRx3abbDu-utlw#EY;ENSD~SJ!Flev#sSvX09%dh^3PgJPJEIXUXk;J5X4vOMvgm$dZHIdj(?M+1dS zaHwg3(riu*q1&i|2 z46TUTw&m?n(>=5s3F+-{_876J&efgJ!J5d3NL>nb;PDUV6az+LNP+_*9G}&}YkV`- zm#1?q`)w7>xt;Lz$}TKB-)B|tWfA6dX9e{Up0OL_nmq^Iu+0^Y6;#Dbi@n>C}kL9mZMd@ zu8%K5jLDXx?KM&NC+L17^9_*oJrzyl>xz42`t_`4%S|lMwW%~dugKzfvc8QY=~}6O zd6IgmCneP0(Ljo^Hc4j5Aemp7{xrIa!@N!-fcy_Jv+FFbrpy`p*~-liHQ7x!IL=o| z+TB%*yW2(0OX&68c=HU+o=VWoW^Y-_S*F52hJRxt%}M5eGn(Y>^bLAQ#i69>?oW>a z^fBzKLh$*{E{lomCr?oGL-^GT9?f$p(#h=OdOw`d?3QKg9jj@~TRD`oE15@6dzQSe zys+--%ttyplb&~*&l9a=@mg1joHX-04>C53Yq@piwv)}xYQ`;dYcYqKMPiywn-<1u z=EE_n>rre-w{Ub-r#G6Xm^{TAISm}uX)R99lHs1jq1sZeN&N#)PiAq4wo52p#>HAb zEZUD&y3WDTZy>*nv3tt??Ak&CapK;mt9>C4Os5T0Kfw59rB1{8aW{p7j{MOvYn} z%^y84UXZ|H10StR(;{^dNI@znv}%8f{j{fxFKLNv9++K{f2($nj_sFL|4%1N#-CG%DAot; zTCO&%dq@2wvH+e4B2yIqEJuiRVx2*vHG5;4NWL^q(blQft*hCE44RKgs;KOH?s_>x z=)o);LXRl98W2teL@VJi zNA;i7kch=K2}r;J+C@X)L(N1_$|$NkbgQ^q3uu7|u!9J@n4tHHAmUJ4L%VbL1|B5% ze&v__pK!{`97FdN$$#j7p*>{dvf9rh(ir@aJ|ctWPwa4i)A;}0{8u^GIm-QyTur6> zQx6_p9JINq&D^iSq#;u}lM$MItWvbH+nz<||HpzlMmG_!#kA#wO z5Q3C+KJ6))V1yly7o4oi#KzRjd9dp-%hs4`%xvDA^lI}h==Af9=Kq|?XK>J##z2PQ zyi!RCF%T*eCN*tIn$0%bTUyqs_b+SPOZEw@N6d(PL_PRf8KW&fS`xW6HvJ6>pa-n0m^QsiY6?J~_iaS;I_{Ygl9+ z#tYL&XJWh^x-(UcLD_xD<<4Gl=BClK?X_$<8&zM)s@l1$6U`~_=SED7-ei5M{?=JK zq4caZQ#D?)bot?!NALLJZ7F+VSI}yU+bGtdu~b!X>_r0Au%Z2oRKi7EL0c{EmJgQ7TVf1t&BEmGZPBfg9rk);KeyrKwzfx1g~#@L*Xd;d^paxetS}!}?q8+~I>u)|idav>?RLMnM&WjBU7wZ%Uy>vr zo{RMVCfhTi`L4XuW?KM2g~AXF7A)tIt9S9Bb}#_sG$#k~SELR=Q;-gn10c*0c>x!s z1+oLCC-i_Oy>xmjzz+^IP)7AcN`(Y#{;PGG(8YM<%~q8&WzKh3EXsS}a51uZrFPe( z)aI>bWu&G|t2L`rYX)iO9n{_}I;V@f5wi0A7bYdqiE7A)%8F8XrKF6&Vn_wZ-PHt4 z!6{$V@`ihJY|3wt7t_1*}+04ko{?4*b%Eh;J{8*Y$eB1K|Q z>Y9jzB9~kR5ym=j(BghN47sdEG!w0ljzgY0)%9D)uTG6iSynvJZBX-7T*|1|o4MWS z;d{oeNH?L13~V$k26_|^W)nKpeop{Wkh$!_$PS3hlpt*&C$)ewZa3C*sQX4vwNU(D zB(L#E{q00v0q=)-#H*NO8eFbAN-c7zWA!Kq6o^&?(3rJWGNQpU(ZTtOFGz&8AsZB$ zIuX*`KLq`@OA2y;9IFy6RC{0dzR|O3v{bd0wNIK~O#atD9X5@sC(eCu@ixSAA8Svi zO8*i0>NkU-%M{G1**V;H#-+dr|P%i&g6bV zHz(2l6`w}NNrvBxqdHlxwdP*Fwi;c1YYkiKzxKWdV12Yl3J#L$pfRh#U?fJ!mT7au z;cP9IW}9PGs`z_4rSq?%nhN|`If>=g-BmnfKV7Es>Cab@<6+lclCu?TuSx#5;6B6Q z4YMiq+uqntobLu^M|KWif!K(9NTX;8UZdCN^TE-~O@t97KqOS|s(O!K+X4Sjl0<); zahWElXsV?_?jVCBA_TVcCkCWBJJ_8=x|<7QO;=oL#g?_K<(bIqb3?J3#PlKZ`VXfM z?qTD;RX@&1o{zTB}(tw%Rt#Mw(eBm0lhf?tL?O)b4%rgP3x8`?&A=@U6WF z#7z%yJe*)gBz(j_WJ^L>c}f$cgkYbFq7Bf?N+XK9P-`=6j6Zta4P$KCQ$+pHMMwG} z2tZ(+|9>!(t1em+G7X2rWR!(~>v2ITffza{T7Z%|o&gjQY^K5e%jWb(Q8!YaT=G<_ zTCIor-K(CNo->@zW@d9a%;!ZOEi_0?>d{NufClVM991p|L`npNRv5C|MByMLq7F8^ zZV;$23`*BKrO$SB^LYHZ>EdB_Dpwa_NI+p4T|ZnHAcbp~tKh`|aQ8esXvPujboYmc zPjGurd_oY35+q6$nL*rI_DDA1w9l1P2?*Z0?a5ICr5jR+rS z?#qaab6GzPeI>tn1UnD3$@3ej!w-+dTZnGUUIN@e>x3e=ihdI;rhW1$qTrg&fbwAx zzV-?W750UL+^|8#0zkjs-56+*O7P@_kVoP|%r?E9AJeQCMXd~ySP5PLeI|rX!Gpuh zLFtEJF`HoV{*jYyqcqmq+AHJv6n_Tha>}-iH4N5Ps_ks%jct=^BGy@ynUAiCQS7{V#6ERU+1L*;PPyq#Rtd6|5S%(S&K;dP|i z7mmZ?{u}*s3PNVZnAjj#onD}~ ze3z9!otXgH0dD~VSSQQ0g_2ZvM>MBpi|x;;pJu1z75Yi~=uU)yyfEVxznv=djq0Hx z5B|jkpea$XL{8W=K)1$&GAxD8O(Go~U~_b9(~tAibn4l#*`D_VcR^0sAPkB|4GgUX z1Pw(kb>mmi@nA**VmA%&4F+e3dXUP$F`4`^(SCpC%**?A z0(z1IrMSo^{ptUTA6PEHO(MPEF4R!qC>vB0a--S^z2F+q6y6_Nq93*C0d9vw4Ny~} zcp->~Vglwpx~I8}=PLFWN(rnpGZI)OXRGC;tV=}dWhJ348ogReK(Jl}4I0+6u7&-A z?4W-k_x``){2j4K2`9(3*h%~ReDbq6@QGH`aLMp zui;91y)1Lx8-(cg^>P=0X&5HNUSIU(mGh0>i!*jE`I?egqywlCv4(-k74>Y`YPPS$+(^aiaYcyEfDYd^Y zS3g%MCD|~rW)?)jWM0=)p;XEY_XA*n>UO+o?BgL+S=B& zw%MlER+;OQv}~5j!JE)$7*BTTqcLM+O^Vp|J$H*YW0ubxlV@qsdBO6|K zR@q}rdvd#KWZEp2R?OOHHXE~*t*y39%Q71_+P14|rm$;z(z@8qt8B|Pc(riPJEIwt z_2Z(v9nQ^FjMOt)*cmj&W}CBZEww|=ROww&ftn9_FP1knHa>b#iqa3ugwo$a$ZCRsj zwpN;^nrUU(-1q06Ynf|Jc+Qw=v9Q%?UYW;O{?>V$Dt^peYFV|5F-?kTV#7T$u1wac za~oV)t=sZ^Ge6W{@g=Lo_EYBPx#;Bj&yWtMs%XS=tjD|H!K3lBGjVEii`#E!Yk9Ugb zT6x!}n`Vw-wr@JFs(ejpl?;Ib0=T?W>_7$Ia{fH@XkLA)=ADK@eKmSaHj>Pw!xl87 zF^wq4Tq~L@(p!n4#tG%`7j@ohD=5{1qq-F2l>h9SOThrM) z)5lGfo}AG|soQ$;JIUiz*~Tku?^lZ`)=XX`hA&;?mf_^@Hx_qhk>zZ)ZJ3^Ob#qg- zbm6l*c$p&tG%_fxaI6tPC0;@IiUce{gIaNjB2|XiLyQ8ZAqVjXCc?vrWL#vBfjsF) z&`UjsI0fOqh=)-NxekgjF)=Kjz|Is%ZVA$I6ee2Vs{;fGtWoMhFkpXtR@%iECHDHM zsQupxQ1^^EU}7*1fbfz4j{W7`9)yI2Yv7pK^C5~axW@soIt3I0Q!$vN!Hf&g-?X8k zTp(ZtBO*&e7#AiMR!^pNlmr=7fx1R848{Z?F#u513Q{S7!`Sx#_*N*VD4yN>+9xU< zY#-gxR+>v#D0_$oh($<5@iVi@e_5~an0|aOhNfgi?2P)Ep>70-Q}Ds)iTSjA+eq)% z&@^Q=5U(68B)Q&M2h0fgM+uQ))-&!3Y~_`Z;5HbtDm7^UA=87-fEmN9lie zQrM|-=WJW_9UW7*TEjzIHPe45>8HM~u^FTwqStXtPoI!9r!h805qWpg2ZTV}F-1Ap zJq#1t=JGl_$5YXZteTHf(Flf)1vM1MIuXz;hM@4)X~(k=@r!6)!rWK!zrnL>7}#rT zX8hKfCEiGGXoV=Bs6a$vl|A~Vz~^lth`y&EtGKoMe>X4XAKlWP;lGnXwHm4|{*}#W zW>S2wm|xD7?QO9FZ$PK*_XVK)7#yJkLWn`v z&9RK-0;6a^LOVk?B45(96>$o%DS$1Efb=mCXk4@#RH|1!f5xBkSu;uV`JtN3_0F2v z-0Wdbl6m^){7je9Jyq@#`PzrkU*=<}75@*>p|uU6tlHBXR@tGLtTMUudYW0?R$q4E zVa_g0yBvh$D&Vip4DByoZ+`F>nyPr!P??GR|3Q5?%&cU#ttNq)Xxi3VjbWI7FXjG^ z*Ze(^?;0#3Kw}0V!V{_JF${Z(@RtB1r`28$#Ha4Ut(2n~ls=!Plr|G$(q)opHH}Zx zR4!ydG~{@|4?yD5^__$W5FkK`=01wNT}j$Z)Xa>sjKH=rirGdpFt%+{#;InNYPCx+ zVUn`7O322oQZ^yShC2N-_tO2*{w0&9LpK;g3?M~e5)gz)d=Tw$^_TfJ#%g3`H8Ra+ zWvf|49i7%iC6c`;n&T9jp(-<*S zeJK1=I=)FdPu|0u_Br!*p(3?4vqk4KSN!keL;EA7iJqE}`kXvK?*p+8+vqy^Ws|xa zOpVezfKHQizqlUwNn;y#@87%B_0exTl)>$#*`%;jZsWw1h91MtkVv(UlhZ9pEv*B9 zQbDq=1t~G(fdXJiWvK*=>Okv;Zd?+;91LKwK(G?&0Ht1c$hlFNG5|of*1-$HFF1MJ zO7NB3E0tc2OU&A*J&T^BXD7cX_v@#-JDPWSab%XUG64VJg^`Q2SjcG5!3*pFkjVg- z!^U0~`bQ1s!V(iO!`|r8c2QIccB=&E2)FCn(#7Ofg5s9V)~66tSU^b$+!}3Opvq>n zMEfID)4oRz6<}>dXk`V}!jP9IzZe51WzTL@^HJ@dUYpV8I%hC2rW-2q<}+<&vlDYZ zUP;cuaAzb6eikemOmv&ls)j@MZjhIaL}0@Bwbzi!aUZ-pX#&zV&X^#~< z`OCO91{+?v+K{1-69gNT-JfF%ig7a7lPoIaMCiG4h|*`pnF(+hL1S+Bq$5=8r|~p0 z!yK?v{>StjTC~729PN`hvu5%sH#Ncol+SSh#C1{u_IDM<`xJVIFw16H)NJQ2C%YrLM?DQpSIR6!>@Kzqf8+1fK?={WolpK zI7(v)I;BME*kJ(wRJI}rHy|Sro2JQ_7*W0e)G4DA`p)d ztlAOZ?DIEnV<J9cF5o{ne-5Z5K86uE~YJ@2w30iW$9xK!DAZGDENpS_eq*M+C~~R;>65T{6TY?BC5D8!2=A>k0NqH4MW7L&V>`TH zGZ2?%pysJ5_kyu*NM99}5HHglO+c6(0=6r*55>q@5iAHG^J}XmjS5{-8849OXglkK z>`7~IzM>f*KEHKQd^JX6`=uOv<*Od#ZkcMy|Un4Uy|Cf8{VwvCYO>A9umh;~9C(350gnBmNa zI$P%eL|_z2#i*N{+KmjvjYKiVA|N4XM~VcaX!SFeHhONeU6)T>y4kU?= z(lnPt7{+PHM}lc#DAR!QUqY5P>*FTV5Rs)qZ+@rCwzyI5KyHy9iZwKTL- z1W5o}WHFX`RDwVmJA$k~xWSt&@*!-26!ycFc?0;L#_g-^_xhmW{5(iNeU!` z*wT+FyxANHRRo9pwB=J%^D*I#;}PJ zRok}aL)V<;;KM-NAX9;&;k&ef5QNN{%DQ31MU{Q&I zgItC};fS$}7BDfD1A-t3#JHft1KTh)6A2U5q<|F*6^hZC@r$}v3Jh2*Rx$vr35Z1N z@HNv0G$qeTg%>c6njpl%4x)>gLOMl$h*JtOT#&XmbU+D#@~}CMC-)bayOn~gCYKvc z)0NBUh5%s&0nd#vY!F}<4R&0!lc$ChU6w)x2dG#g4G{CMxpnji!EEHxmH?}2?imUb z+JrJetObS*38sKV8#1U^l(6W?RetF*j7>LA@7=RmECw?i^0Lbn^T8c%T$cI7S9N_@_tZzBa7r+cGETf}V z8H184uRmVLhWYD~(qh)#`^p~&i7egWXh~@U0$3*i=!YW{9FgFF z4Z&kKD(wtfm%c2HMT(^>fuUEB$Z!-CIox;9*$_fIkX`kH!7N*`Y+a!!5|zo7uvXlx zp+q3JMGJ9h20(44R#r`-u<66AAAia5@;=Z4hFl##E-?78_1RRk`VntxO$oFL5dR_@K7k?q`Csvd zcn*-UKfeVvI+YMVw2&Y1q*H!Blz-k2$JzLp;}r>~llw)!f$K4dgeOkknB` zA*QQuGr6HSf>ER6->JRapQjV((SGCezMm2n zD-h+5F#toa`4pkmt;47cUj0XU?FB!$7Yasd#9}*x3_4XHwP5Sx!FGs25QxOLp09HJ z=jLnlzKrMU{_BR&d8@T1Wp5ue?i`K>DioIj1g%tmhCqOPmx^=dan36pqV|~;>0|b)`0hjB)L_dV_ zYRybC8fmOw4JtGTtU!a=k%{jvdisFt2uLFc5?gG{*w|{*%_nL$n>L~_ope^CP;ta4 z_JsqIuXN{#hPVx)At19K8zL2fY&gE9dd1XaK#+>K4qc~J%#Kez7-3O3r;H9OA`y$o z)f1{QjXg+_!rTl&v=BJ#rqBZvfT_wvPO^ER_4zvdEmh%=|Ihik@r>5Zn$@(!6XSWu zDSjTmGCsn?`kyx)@ioP84EZ^J#=>$yFnhv;OkZKNkXAIBLAahrA;9iSp3VYkEDPNg z6QUxSgib|c7>CxcKG=&Knm9x%D{i=fK>$(%U>bdo+hx)EZAxXopqa4;A9#huIkRC% z;~m71zE3wb?d+;xhXger(EwzO2+EeOh^Tzi=pJ;Q@jTd*XKmA?c;(~El^dApH*`}O zWY+4AYSt{bWLi9F_ti^Ks6Tg zW>eYmpfv>Axuq_d%~nyjMs_w4Bv8LQ$EW$8p_jGrj_cz@;NX%j4h#5v_-^<7b3JoDhPeo zoDS74VcAOL_x@)`;lG=Tam1Z2n87{4?dLPqBx! zg^adLz(~OuGAlkJQ4K&qJI%Nc@PAZ(pth(Rrh`yEU&E57Y+A+Us>10!@iti0v1PR_Y93AP@$6T$u&qB~ zuiu0&2+;}AxY)EsS2F{s5;B`CDn}&~LrsF9H%g#6GGLbC$_vSZ3X~&FK`&L1aIRNY z32Ruw0^u4Uwn42>V9SyYL6O2}d3tA!T&?ZtZ%E!~GSk!D)jeq?>oC_-u5rldvf3_| z5gj7}(kqe(5Ljftw{8n1JCi{#ZyPRa$+2VZ#mxG6ozzkgNJ1j|5f0KR%zWq${<_f- z>^XauvG5BC#CQd}q5NAq0H6a5Ffra5<)XuX#5^+u)I%Z==24^QobO5`I;U`gS!Df@ ze#vQFWZA>MBNgo0_o*ll!Bp)N1@0r`5bc6mZBDVSfTOq+?DvO9ZXwlft(wdvl1`7( z6bCOW(xsI+kRD+i)s$wtlamzMs~QBi$H=?y$stEj zs6P?*2qEY(1pSD^0s*K)V+Mq4DsTHY*x}wv0mdn(B86K5Ngv4c0@@o*p!5@_1t`cc zNr7O)^*x_JfV6`5N6-#)8~}*Pqw>yqp&_)R1LUq8Sy)C5s{QQf^HD|s9Td<=Tn)LS zoSa*j|IHO0f($pI+Ai{MNx$c50}&k&6Db%?M}tARMX8b&M+pU^K+r+`$!1s+Mo>4U zNy5j4h}gph2qQ+A0_)u9Q7wRChKLkR7@>Nq3=wh!8h3>W%a&GG)OkI!@v2xFSHiui zUTW=LKcavRpcjs89R}&HFoL!t1>+*nxE`qrh>K#xRHcSW+Q3`_iEB`x7kB+03J&0K zCgq#F?%{-ROycx)B4il&4+~cC%u%VBwpCP8gwxT9k!)!2bQcBWDf{JJG90v2K*q=E z0qETB#87j3B|gjGcSX>5G}gpgDC~9|5gUNuvJ}U}Fj50u!CmNM z-1DPh&@W>H3^N2)Y|3LReNA;Jvy*|-5wh88bXsNeu^sSSL@`d*VN?fX63`1Q(F)lP1hZ%wYYf$jSdpbz6*3L8eFh7nD767x z;7g?t=*H81g{|>7LQw#SQp+*hh(S4MKoF)$n>>rKft5wzrcwquJjFR80?@;4(?h6X zlPL)>Q;pWu&dEpod>PO!+Q~BaO4Eu=Tb} z21o%kb-srwrItu@+mb>PGcrx1Zg~eaCGtSf_Bp~13>J)DRn4xeC-Dk%Lcs%*@ zp2gwfuBns7lToHwB0#J>7$&gRC|X<_u~$jPODm9(lv?s&a82}%bfCZE1D*NKTtrmS z%9!S4O8KIQrro4+7}M^-m{L)P1dn5b4}&p+%nJhwP!3o=_Gcg3}X}Cx9dut!QbO zNyk-Z3^sX0B)o&jVqSK(iJ0x>5s8niSHZwAY}_&9H1XJ6bt#Zx?&4 zCJ5H--pWTXS>tBa#0d~gjh&`%cybX`EMb^|WN>8?Ds;-pPBKt+kiuZ&Bb9c*!p8EV zrr5%qiHbG~HieP6)Dk5EG-?};?NC^WMM4;C!A8rbOlug^s3eCt7=a{VxXM9r25B;E zV`?#+FEbDY5GgJ+a#zSK1CmZV>`I8`u!bT+29BKLAvLPF&DO6WxR_1&@FOvXK{x1o z5rhX)#!V|_4i!~95HZ80uF5D7Sj;%qDw#ktRSb$YY+#*lSsZU?xM0oj-MJu0NCO7P z){lQ+IC5cx?9{G16!1O0M7+jrJcx7#`2SEpCRHPx#6gnYU zXnhEM4}=Ub?0~k5o$Au@7>;rgutOr-V%VZ(K}Vs95LOOYXwk-lSab!_G&HWk(MCpx0CXbYF_EGY z4W2gy3o>Y%g(x}&Y}io3Kulz4&nVT$t)05*?4NfYr>#-xn><@Bmx~~13IH&zqHoKR zXoUxH(u0B~!MahP!CH)j0%To^9os3WNPtF($+{R?+kI;$Dsd~e3kwoL5t|D7F!D7u zsTQ@^gS`)_BjCz{pUet>mGlZdE7>1*W(HU9o!KJj6eiv!)(Btb#a>kl6<)=Bm@npl zjt@iNO*Yurl-T&%YMc=fN0_FLC|!Mi_LX=+{gLv3apP(+J-0pvj(p6tN%rBQ^_=px zIYlIpd7~nt278x@6d96iHmfyE&&hq``{U8-Tk~B`7OCFS{kg=jkisD>AhkHdbn?vsEwD{(rH3=7e@#2GIj(Ab$-UmZwm$$te`0cCTA^Z9@~= zs%++~Yuep6n}L>+rW8nL6(b@@jpBrJ5eOTyc`|xWXD)i?)aE-am#plphMA4Dt20!o zFd;ZXUQgO&MjQdagXcIo`<92)n2N+2$b`mNuNWgC3068W<4+phHlGIzf#N)dzxOh9cgZq5_Yi zPkVubXnHQnj02|75=2JU@V`i*$i>QFv}s%{G@#=QNQw)x0MizMg#!kNE=cMwSk?<+ zbj(V&m7)cZGYd4^JBs-PK`~KM2#_Kh538cPe%cHb(k{{{2GZ9Px5AFu#ByJ8oggSu z+uku7(+;k^K=hM};Cj-An2d=CM9k9$OfjNDtp9J5Pm>FT%2n=E1`55f;b>6<&bSVT*tgP7h-|C99aWgSM6(L{{I8W>DSWrjd*^7Q=D}YhK1P7| zWUJwpXg&2s@u;u;iol-VCDB^Z@oK4i;ZLvXs7@FIiq{OyZdk zMHZsJt$$?#WI-~B8zKw6(r*+_qA8*^5D_#iKtFmalP-{j=m%LINWa1DF7ak&31%gf zgp4@gJ-*iw_mZET`mFrQ>$92M&*Ep9=WW;fjGdEJt6sY1{W-b`dt~ypb3*Cur#G3V zd?u;sV?l5bSdGMA5WSTbn~f+hF%o`uzS7BlKYvjdwkFfGeWa+Nx$G(%28G^rkt7*l z9fp$!@G%6?N4}<7tkS32>U^S$`|MxJW$j^NQ;+3)-SuBb$vZMdm`FV-@2XodHCTGW z_K%11{yyDo=S$dX*_pKNajY?xv_d45lvGl8O~)-24*m})`>wW~6KL)>o~Mso^#d2* z9fr|^lu8jLju?%tqTg5z8J`Ietqd!7a?4s#mT02^@|ZD-M+1RP4zj!vB@_|@(iuu_ z31oyw6;d)KL>KIVaaztB96J?uR@aSfRP7C~T3$DcHsd;OZnB>G=2wip@tJtfS@O>s z_RCp0oz5(@)14;DV@->_ryfU);M#|~uDvs?ovdb@5M&%(xG*e=Qx*&f1Q{VD1qxz` zQRXX9QPgoAl!gcv_|EM*%IQj#y3{?Io|UgLIq9}+&1%}rW;V>Mm~BNY73I2yymIin zndafB#|jRB#=*8ZK~-ZA)F9%8$nLsy+jfRyVcO+)H>6^~ki$$`!*yh62!L_{km0cy zCbZ%Z@q*OeJ*5`0iW;1tL5`(~t$04GRm(?1&Mib+KHT0?Dff)eh`jxE*e=xf^&NeD zT`J@*!-_#R5<98cbw3nQ{X_k?>Z*RT?FxS!C>&rp5mS69fF{FmP^)Mw)dsYpy|NX4 zTo1W^Q>43l3*+SSwyR}d%B?+Q2gae+C&rZdX+BsN&|FCO{R=EC!J>_usRMja*TLw1#{083Cyz5h1~NiOsUpFH%`m}4&u8Hl@~LgX<1zf!9aB(+JF4J@k$e5dla?`Y71WC0`sVFE2FNeSsq3X_+KfWK* zk6}-a@IoV&SJ#J}OY&RF>3y0eTJY+xvS~G*Bc%H^Sn?TH*$sFDO0R*j3EnWZMkuGa z77R~&P*|XEfQt@57lIr|fSdsi85|m|55AadH4nY1V;OqVW_|Q%VY8YS-&RJ3O;fNh zzKsJ_q|`Xd`{PNbadf4ckG`!*mRd&x7L}EfufEY*tM4#nZAo1F-3B>>@2XejVX5ck zgvEbI!sI7O?K;S+KtHG_f?j?^x0Mxc+;+1Q|F%zFDPvCQ{9n|)Z}0zA8oqm4)BUOc zreij?Wwy3WZ4FYXwNN%+05h%l4g;*DSXQjH!x2C7MvdD6JeyhX;=0rAE?*#p$J4c2}~l#Sc02( z5Bl!xVX)ects2fpSv8+4Q6^J#NJHL=7~Ks8q=Z`l@_l+!CaW+s!L%8bw35Hh>4U0= z!hgB_k5s3zV#`wv&1Q*@oh_}Zj!(>;|5D7%O-40h(QT7kENYIw8U^>?eoa;$pD$FW zDbt^7MK_Tee}tf60p}0XM=uMZ#j+gbgX(~`>Fbh6MnGt@%t1L=FTw|eK9j{RkWKzwTUebORi`~Cu{nC7~Mpk4(1OXdGQJ>c2QQE6S zD#W>T-i^aOGBEw=9xqYq%6n%#8dk1SBra_KQ4|9Z48*WqA`Y$)lk17Yi}NgC+D%F9 z9Fc#`hVY0z$C`S0J?Z|7TTQf3*v4whT4rf89{t$I;W>D<9zRz7zw-J^*7S_43|f2X zjJmC5v1O}k77BYH5=Z;V2G*qeMZ&O( zuz{d}s~fBK3uPAMQ#m38mx=kH&b-_VGSjY4?hmOy>7H2RE~QK+-C9ju*$b}`;_fNr zBPxaYAC*NYZrty+Wp9cJaJmYGu;qH39#ZK8`ZMr$oB$ZIXF zi}~g3fIJcL5-A9gC$Pyildct1K4?;eU3haG=-OpA<()9voI?S0+fj3XTCfp`Oa$@c z8#KvF{3GsRV@rx3!&yJSYjgRLnxdSp~8d9 z`{%FNK!h0VP5_JeNz-RtsTv38I8UuMGu!D3+p1@*1git>->wRIhaTP*w83;jj z7x;Sxe}Y)Z5s7(*rRu6LOrX)j1VA(3Apb2$xHiO;n=1iF zMNooLG*QM$R|F_ET*X93Xu{D}HCqZe(oHK61W+VSj4EOw3`mz|HWWGzia;-k0e_K> zQY#rgW`ug;0)4b6)L8>sKBq`34y)2oa86r?p^By#E@c3VkbuafNF>o=vu4`S-@AU_ z?f66B_xKcBp(`P%IQPY+Ocd0J2CjVWLNQ!}88_saSwQdQ<+1XDH|ncIKYB$6l4yYT ziI+8~=_7eFt6A?4MZR{YWdpEfW@xI~HifOZ+sU$Wa&gBTna+vo__XZ+C_IEisVZ!_>k-pb`^6k4yLr0yc`EH~8Qu zMX6i#yRgWABnk)(&8H5nr;iu{A=kPN@`Tz@&=E)X7c_MMl)bLcVA(rT3D*GR(vgCc ztJeWHXG5sUkPITj3RNERXn+se-*@D6e5|A!D)+MX$7Hq#6B3Y2AaRJcW8*)-AdbBh zq9(E;u!0Uz@rVX-1B6lMVy?_h;CG-H-_0z52T=gH04vl}m@I+ih&Vwrh;oV`#SNr* zkwn+Y5qObT<33*0{-ImRVA#I}BJ1SxJd->beHLCO`K>B1lBwUwy1^ZH;j8$V$lNEC zAp!m45Xk1e#_CgA1eiolqCYv>tZ~RX33dq0b{^B^vRw-5V90@} z2tj(|3{VCkh!~{4UP)(~S(&6{WfCaFba%lipJ{w$m%~jhHCNkhUo5qn7UB?1$_unb z+XPv(1;m};=LpgPGUlR3YkzZ)xBjaeHhKdW+NnWdEB zeLiaFK;;#|pj{*g0}>)kGOZ?MS!B~>WYud`ZMMK=q|##2WvOV32q*ri7$7M48UQ3N zMJKHAx7YUtUZ5I75^4J^7w$6TK#V4i8Be!I2Ea35;A+9Ob^JE-fX#rJwMt5KtvcU0 z!kM%hClOjji8g=*3j+a2IayjI+;x0;SA)t`s?~doV%>nS47?E&cP?*vMzGjI*yzp; zR4M_?qJHqW)W$f3dFNz(c{o&W__uE*k)@E3od5@&UH(cW$O82o~Y!(y4e zRg zay_>AcJaH}zr@?Dq6Zd>%u17|9*AF(gFq5n({Uxq{T>_un9)T(#K8&026!UPSkPdeL zjOxvcn6l0hz3!fV5PPQKKYpy31T*F7)nrF>y03+gNdj`*Ysjs4Xv88wjgdNk)*_J`Q~E& zdvpDinYy*lux2W($bEh#y8P?kw)Fv9XpUn7ACdRj-o5{}MFdag#hEi6KjY^z z3jBCMxnJw6KWT>?x82p%WN&5XUKjR+?ddDt4^!%&+vNrz8Zh*V5?`pH{`m5Mz?BBopvKy8M zoR6`U=!eJ=oCzv+gfEhOcQ>m$8tFa4yxkZjP2NQ>l$M=TIi5s$B(N{@YD zYqDe0vmtxXxg&cZ{-lxstb8W)S(+>DjnT^Mr^^fP{{BCC!o_v`6c>0os(;GE_AA$k z2g(n)&%JuU#nq4II$53ifD3KPReCw8R_ndOwFg{U|D-;}m6qP&;Bs=&SOJ%cE!Xk?l(|%{a!c|ZmHWTK&BgW4fB#;zK|eT(YIS?&le`D7dXCug^*#}+ z;`+Dt%>ShSuc+8c6l8#IiwLjkCj_#QQza zbg0J>lPc>+7*uzs-Hr?5Dn3ZpY7vbMtX=8{d9^mFvV+ zzN=g&kN@%e_oxil@vFy%OMy236XfCo-9BMzW5adw0TlRzpX=Bl7gs&kKc&>#-m7OG zdg890yXdKLMghkAuhoMKu1}PyeEiRjs=-zMiuT}Xwz4q#LAjmMKiN-?l5GCBbCn+) zd*FQ(uKYfjpx z{v&K6>dp0q`_dEcqc-qCu5zUw&4MH0hHyQxx#0S*7MKf&Bc3Wh(y$S|I-t#UG;KZ} z^}$8T(ewUCj!_@|TLAqc$NR*aOXLjKzh-oN1k_5y;Az&Nfq5-Wfb0KP5j^TbF36GY zk$3R_wZX+jJ+i_}i~mo9>%EOuL zyRC#&C%&M-R_skR7xdT9Lv1OJPv6kQMy)bDLW=UQ~Sq~2d z?HP*>{fC|sSoYuN!B*;tx|lj0TUPR+)tDmjv5Te0%LB(`E0G^*(}TC9UKSI6`9wet zJGUje7P|ZHcPD>ZGWbTw&nhQX0O!s6CsI+;&1ZMT>fnxJmoeq~fx(K3qOZftUpUJA zW*&&q`6z16FX`$-+ksD?VMxkv*`QGwjWGZ7T@!zA8TVt}jgEhV?@GLKxY==crwG{a zW0k$Q_uPkUD);vTD(3q2TYpXWzIwf3e)-CVvL#xQq>gwG-R%X)PK5OC{G<*@|ED5u z5gkjZXI02`@{f9f(=}dwU)0F%jv67m5>u@C0!`H$9hw>>h5}G!k;7D!u;bvJHtli-XX_@*Sgtmac1dXekH#id2#F8 zVnebB;`MguR#anTgGMp|@tpJ0(Y3xazpnFj(N|fXCDh*6`eNkJ^jK(Je_u6+M9l-wHY4);(-sHu#xa`tAGr$uv9J$@TyGZ6r$EzZr`Fct)07iM_-gC{c&asvSft{KHThGBhE5>gPh{a8z0>s6of|9Kr`uQNPh(eZO8OUIK#O#8j9u;rz*xa&n4xsCi$fk%!pE?KcIj+Ne%|J~NSx{168T3cItzH)EUqE6T8w82ol zjQV9Qr=+r?vu)WV`#DTf$)8{Dsx1RSNtZyY#Qs9yo*mW~2uDY)ul^cHekUk?@GErL zyW$&DqQDBNVEp&f=t*Ao-+_f8Nd@GON}z$V#h$XC#lAC0wr*yia&r7PFraz}#Ftl* zhXP;k?awNzZ@s&KnQt&ddZnwtS>z+UQ(w#C4|Lh@AK~-}0`hq+{FAcTJicXFN5$EhxWtZs~hY zx|exjrnJ)Z-TWJ!gk%Z9bC*2Y2C|-Zs~}1@V+Ql@kC@UvlgxcwVE~27UL2Nj+6Im9 zL-~a7Ny%8}>L}5~L;Fqd3_wCSsBK#oL7D9D96hn5SkIXr>u}2#3mGZkb zYMrtlD?QNaZFi@9+n75;2j$V8$GKAo>8da3kclGZ>Kp_m=S@XpYF9Y>snAGFE|baU ziZEBzGaxMcwHMgERP}cbWJ9NEH&z;3Xt&-b$w-nGR%+@pF7C^yuH^g0H)<6bS)@(}e3z}9YMbxsgE_kaOtdP%PV&(8*Q7+o??VqI6(ayc zTR$*kpJYChPs%KXB9T&`$1{kd=`7d$(T5B6CvRD}?yuvQvng>Ni!*dv!k@fFU-{H1X4LGwGW1 ziVl`;UxPImopv+Nse6XG<-fziUOIG>3kB^&o$Jetwpt|Tx~*-=adBo}iY}`YV1aGA zH5*kMK5qp=yIC(oZ^_B1s?_LtM>kpL$gL~&2b3WRUZ|8sdYrAaD(Mi;OXuN{?k@hI zUpbYepyP~F{7PX__jSTu8^DeGB`0ZVCaVsk-7fjCtUCSIVREFeCAXf@)xRtKT)cZ~ z9eC-UvN1FN?%tq$7b`;s!{p63L#aR#TGf-}!xmlRvOHE1;^+WMvTAwl=$Q%npnAy= z`AL&Q)--#ZqpwFqivN!(2S>*eej)na7a)ixuwiU*BOtn`5ihNvlaY1B=`PWV6(I$ ztNU5fcW~Wv&#<|5{qeL?k8q8-`^%`Pq0HT4Xrpi6M&Qd`@i)BFXyi<5z&|j2x>(8P zA);%U%48bw)6F_P1x?dAl~Gc6Q{cuUm=I$aIwVH8q@6ttbAf!f5->M1X{u4I+V>ah zj8}o?%)ZOol0|URItJ-M@AFhqhCf1RnqU-LgB?db=p0QUTJJJCRl7h*GW}=DzE(pT zdsCXgo{A_Hk+n}9_|DXjF7LpUt{KWoU${T=2t(z>oRinKK8UF++!et610m(S#uiUR1%Ug8cowICq!R;XHW zwfcB}E@6_eR}$ZE{z_9(rgyIZFB>XDuNiyE4HOa?@j<%HpAVT(Di^cT3yKoWJj~_k0B^UPPKi3l&{Jm4tla(n``hq3WzM#x%R8!0 zrYD^lnLH8mw%KWdFXZv2*l_3Q1H1$mA?g1GO%scT>d~0PDxTo zr7q-!MtjS5L6VNm`XEJ~x=y@}euSz^S+@er_0Gbq$%TI$k-YlSU{3slz>lMIu(rdc zS{=W5*t}WD$Ycs|X4ly(=X_|Kp`FaJnMTL+y7z^8HxcDBB7SLFGO32Qj^`Mjj-nqA z)J-vvG#Jtc<2^v3u+HTfCTZG%7C(IS3fZ)|4`W-`8Nr?;R z6r@O;hU#jJ%CJEpqH3K9U!-pOCHuf3m>T9n1En{25nz$0fGCS%uJS_+xcQs2!fGXm zwiOxZcjmqAa=(2EbYfG#p*wIFk?Zj)rkY84^T?Z0Gqk==rPGHKmHxWBTl3D9-96PU zlCtYy)Hqcg>%I};IFJu_>T}|5^|Y;a=nc}8KM1J14 zF7B#|xs)TTETMdM>{9Y?(NJ1e%~sXU=Df+Senri%`4>EYl)O{~|5yvF{% zY22sRFJPDS@?;=R;Pgqe)P5P7OEQx0ew*Q9o4z5&V)f_^sV0z$8DEh}4vnyDeX8r2 zGrmff!e+>~<@jZ(f9hu&mldS9&kDjFZI+BQ*5&)m6jN$BkYr-%au-x5a0_%nJlLR* zFcnyDzv&;ki9LWZ+lwq#$>g80sl@%W?>YFuR<#)4`@hmsLvO72OILhZ-ZTtrT-YVa zFa2TWv2v7FgEDQyqeZ6r%2ccS~F$Py+Yr zp6xRT>)e#4U9xynxsZx*Mkj|^&CMQ9hn{g z%`q-jaU3WTe<$7G$`zTyXo(;OJ&APZ%Unn)Q=nPEKuZ;OZGz|cYLKqrg>a=A%)`}{ zRW_-Ewpt*SrlBo4^z>fXN`KZtQ_RK4Z2kqyg|6!)1yiNHfjPIhlvb)qhcd(?>GA1w zYOL<}L_5ukx1Rej0B;k`jo&Hhx-Q*id8$Z$a3y~Je7E2EhCR@m<`Ax^W~rh9N~$fN zytI>79<1^efhyLvcMIvujn{d!DPHzNrMvshTjNoQ-_F;70PYKmQTRScsJBDS#SL(@ zOo61C_XtM%0yXmL^HlN!UG-Q9rGFA0OW0HbZ zaW|EJM+OQ!zH{&FtB$W>j)-p|GIx0@migtaJ`psOQeN(Zv4pLvHeoypJOJ98+n2G& zt+nb!$3FWhH&OIf*Xx`~8C>BtG}2+BWi+}!E~voFi5yU~5FRUm4qft>j3c#~{C)2; z0e+Q;d1$ntMrhP(baHgYTxe%m_FvFaK-7wxgDQQ_CK@Brhf2Nzd-(|6GRj$}S zTq0DOAu?4;;!{_?@26(UsLO>grzP~6u*K3{pfZ?Fl6^|t|2oNT`Z;Sn7Pwsuo>%ydRbl^F*tj% z0g;oa6zyf^=m(CyAPdunjjqH_|MjJf8B(*JWVP=uts>Rk|H)sr>2v&g|MRe6a=v~S z`d+8Gh;Yb_SJp^DDZznZiL+&<7aR*@<6$XVn8jJ^TlOeI&A7gyUSw2L$Ps(uE1OoP z8ov=vriea6%}3^*sJ12IKj?J9S;}BxZi3?WwFp2ieZrv-q=~^^IDlXBy=#R!x2imkjELy{}JLVG`439z*fS2QGpxAq<6=W zt@O!J>SicC8&ZEGv{3e}rpPS&+wtK$k_M_Z%-a3)1_sgA1fD@hB#+lLhe?X_k80M? zI18*u%f9qMNf~twpIL~SH<-+xi(*>oNE4oPlW0S6P63`RGVow&El%Dx`lck7B1F5Y{$*u}LL38tmcGY(+j~VXN+Lz+4-~iEEc3a?^LqkkR>L4=)+Y))E#w7I z38}-AwiE?337qBK@VCfB*!LAoZk!r#c1n_6@af53|Eyb#A7ON3rJu>Ki9cTmB`5oY z{1(szUt!2?wcy8ONXw;g%l65VzUa^jVjn3yQ!+nIx#TaP67G9^c31oR&&;)m`IO@D z=qD=#wAq+8fw!!xHDIK5Cd7~?cX^IU>@H5z9MPzU-byv_1_ z2OIB^x)s&`N9OQj#!H?j5m`FJinSj$soW%=f-vz1$8hx*5yq^2+2QgE#Wm&!HE3zrlrgb>- z&6^1lQ&Hxp+fD2%}dTBikkGUS_drnB{zF4FOP*ZQ+G*GG#Y!-vj+zog!S84KUG8(sL2=U3a__NERAQj?5u{95{QsBrDkyYUJkf%RK%n%Efx*Df_*0BNoJM@V=xgF+Di(`IpKo2!Lek}tMV0?NX9 zQ}{u1wn-*f%U)n>0%?_63~UR`%oGZyjecV6N`vDsi|DA%taz+PSf@)~7EbI!HXVWP z&k;QBJpYgl7$ zVW0v~*$PACppt~sY2VVB#ID7B1aP*tSwAAntpzrd|I5o7ICL>4$D&r$t{aHQ`{W;#4Y(}$JysV18@mkk`z=|Mg3lMhf!M8Iufwb z6>vOf;L}glEefCc_-g6rTfcYMl19^{;FGC@+0U}dM&Ak<`@H^{Jzoj{n_}Uv$|k)g z`y#6zL7KaaO0@&*_RZ$t(czT6#O4_I{gRRr5{ET;bl%?Am5}L}&_^qb(3c46#wqCB z=8yp@G1Vj{adv1)_r8QAm0sdevz`!X>8kCJbUKaXI4j0F=!|pd^IIf8V*4OQVeN9N zJ=POFNjX0~hH7kGq-P1bybxcQp%T1@CAli_Pj}D~u z;m@}E{Xz5TzgPBGViU~$zNEi#O|Jf0L2^3Ym5lEuQW@G&22t(0)U17J@YlKdWaR5E zF|sqAznMm4D>gAxXVr?H5fBnOrOQ6vA>}e3`aYF5&;j&(&bsWBQyIo68}!g>_|;Bz z7DX#^<5FJ%q4O&sfpfHc6IM!?)%*AJ9R9}9sf)Tsr3re|n#LwuU-e7yA;WE2$ZB`q z1?x|xy#`%wR~`l-6Un`YHNdIGX{GF?c$Rj7O9$_4_h=ofCoX-f@N=|6M;fqsyi;&q zQ&5D;^e6Zq!5MOrNF&h7=N#Eic8lP3DN~rzYUW5~4mh=6$A)Ty7B@asas#I*+g@PI zN~dH$4I-d6{n&MqISN2Ce1vzAk8Aw3wYHKwY724)X1VM?Vh8h(vY#yc0xVz99Y;9wnlTb;X;q zAAfoLRqbLmVFA)^-G_WwR-xHQOUijE{C5bC5+cGjN91+Tvar5E8nz(Wp8i zTIGtb>%Ogr6dH+HR82$nLc^FG|JXI=cTV@4(bYDcZ>js)yOS_}x zd5X!;xPVqyL42rgbJILa6tJ+x<`^sTra@T_wiE@60!xKFplDv%P(BvRU}RJl4&SMh zFErY4Y;?(S9UF{qaZ!61xVVVThgkO|b0Z)m+|`l%WC+&$9_@NQGhu0}1IeAs^N7Xf z!$Z9(@H|aG&%z-&$(?fN0y^fK7eZSx{U)DPbtum2v@x&mWz%P;Z6%!R;L&VHMWBz( zt=`iFo&_pCpE^r?`JPSb%GW9%Qa`JQxmMO$)j~QcVfcJ=Yi+<`vc!Dz&&uLz4YPL_ zc2VXGnJ})JA3u(jHgsQH5?5kxM0Z~ZTrV<`Pgsq(ZvAwtvGEO{{XC`$>G79iTNJR8ZV$Xl6dK`Nbtav=!0f6HGSOSL7d*;>m=)Pa_kAOp)}y2~-Pu zLCf4T>70ycY!vX$a}eSwADjmMzBXvvmI^I!6Hf$Qu1VL5IXTnAer+WYSu*c`A4>5B z6N+4vX+i&`oW9g~XiPXsTtE6$D=F5+9bVi4wLaOD6DV$qjD=(t7)l`%V#(ETQwvVQ z*+joxLubvKzO?Pb9EZ1X9T=-Fs@wF%PcIS&4-1PpOPd*Z`LP4M(Y3y zn!rP7(Y4Z|Dv(JB&A!|~Ln!;9nEAwbi?k7Y_4mH-zG$4jj#M#5Ma#k5aB*q7%&84^ z*9Ew^rAHACM#2{V&b4`7Tse@vzx8QPt;F!l_}@K139x{izF!2r%V&NiKQWbPm?~9; z`^(pm81XKb^QSB%r-Y{PCO+|X(4+3T3>{s7{Q|kWNQpETR4N1xH1e>1O|1ZKc%5-Ooi#u=;(b!hERJ;-)rN*l(Y7y5m%-LGAL+c=E}FUqk# zCOl5F%D$)z%;0BYPnUji zJ>4v8BCuqBrqtX&qofoeC%OmmIz{Q=Q3~~=aHOB7-qk;?aP7&rwYuEoILec$OP^k+ z3A(JVlmv5-PivEV1`H%tNj1O`M;r_ekZ+R$0BQZa<-{^#nzgJs@Q+T#U%^|I+wpn2 z@%ivTO7)}Zm-dD_+OLWN!;5o8(oA0rElNWp7p9|J2ASs-mhAPKM?zzr?pK*#TH#n) ze>G)XLYInG6c`|0r%P+hU;~?dlS7u_*oQaw(ce_~faZs9>v!)7{n@v6K@yk1YOZ(f z4#w52?X<&g&9I*eon}*vbACDFzT{jPm7WDd<+}i(+*`!v`H1A_)qj3NrYAZa@#gnl z%uF}V13S>+PMddM&foBNm;}|xZ^ph8dgH8QYqjh2`Me4X0YWGa;S#N2+7lQX*3-A8 zm5jP~ro)aGO$%@b&fxLT(QBoR^KA7nHHS3P_Ri690lHu2*r%=+-m8u?{hw)hbywJ` z2jo$;%SVtWWkGdK(CbSR5>^!r$^3V!|C-nAId`#>4qm!ftzW+0&Ds^y1w34+jP~z} zt~TCc!Ks%%UsjM!uNQ6%cj${SwA}#kt{aTWB>y%tRu6zxca7Dwj*Jr5&4m#941(9i zd6LYBoA(t(D5N7m6Eo`@?`iBH*TqdVnLxK5*127YA=~GNRB-˪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 x@jqGZ{?pC|zV{15-)?ntK!5*GgWw&2f+m~;RD literal 196750 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�|cv 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

xj%s-gM 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 + +## Requirements -_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._ +Kubernetes: `^1.25.0-0` ## Installing the Chart -To install the chart with the release name `my-release`: +### OCI Registry + +OCI registries are preferred in Helm as they implement unified storage, distribution, and improved security. ```console -helm install my-release grafana-community/grafana +helm install RELEASE-NAME oci://ghcr.io/grafana-community/helm-charts/grafana +``` + +### HTTP Registry + +```console +helm repo add grafana-community https://grafana-community.github.io/helm-charts +helm repo update +helm install RELEASE-NAME grafana-community/grafana ``` ## Uninstalling the Chart -To uninstall/delete the my-release deployment: +To remove all of the Kubernetes objects associated with the Helm chart release: ```console -helm delete my-release +helm delete RELEASE-NAME ``` -The command removes all the Kubernetes components associated with the chart and deletes the release. +## Changelog + +See the [changelog](https://grafana-community.github.io/helm-charts/changelog/?chart=grafana). + +--- -## Upgrading an existing Release to a new major version +## Upgrading A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions. @@ -69,366 +82,6 @@ The minimum required Kubernetes version is now 1.25. All references to deprecate ## Configuration -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| "grafana.ini".analytics.check_for_updates | bool | `true` | | -| "grafana.ini".log.mode | string | `"console"` | | -| "grafana.ini".paths.data | string | `"/var/lib/grafana/"` | | -| "grafana.ini".paths.logs | string | `"/var/log/grafana"` | | -| "grafana.ini".paths.plugins | string | `"/var/lib/grafana/plugins"` | | -| "grafana.ini".paths.provisioning | string | `"/etc/grafana/provisioning"` | | -| "grafana.ini".server.domain | string | `"{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ tpl (.Values.ingress.hosts | first) . }}{{ else if (and .Values.route.main.enabled .Values.route.main.hostnames) }}{{ tpl (.Values.route.main.hostnames | first) . }}{{ else }}''{{ end }}"` | | -| "grafana.ini".unified_storage.index_path | string | `"/var/lib/grafana-search/bleve"` | | -| admin.existingSecret | string | `""` | | -| admin.passwordKey | string | `"admin-password"` | | -| admin.userKey | string | `"admin-user"` | | -| adminUser | string | `"admin"` | | -| affinity | object | `{}` | | -| alerting | object | `{}` | | -| assertNoLeakedSecrets | bool | `true` | | -| automountServiceAccountToken | bool | `true` | | -| autoscaling.behavior | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `5` | | -| autoscaling.minReplicas | int | `1` | | -| autoscaling.targetCPU | string | `"60"` | | -| autoscaling.targetMemory | string | `""` | | -| containerSecurityContext.allowPrivilegeEscalation | bool | `false` | | -| containerSecurityContext.capabilities.drop[0] | string | `"ALL"` | | -| containerSecurityContext.privileged | bool | `false` | | -| containerSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | | -| createConfigmap | bool | `true` | | -| dashboardProviders | object | `{}` | | -| dashboards | object | `{}` | | -| dashboardsConfigMaps | object | `{}` | | -| datasources | object | `{}` | | -| defaultCurlOptions | string | `"-skf"` | | -| deploymentStrategy.type | string | `"RollingUpdate"` | | -| dnsConfig | object | `{}` | | -| dnsPolicy | string | `nil` | | -| downloadDashboards.env | object | `{}` | | -| downloadDashboards.envFromSecret | string | `""` | | -| downloadDashboards.envValueFrom | object | `{}` | | -| downloadDashboards.resources | object | `{}` | | -| downloadDashboards.securityContext.allowPrivilegeEscalation | bool | `false` | | -| downloadDashboards.securityContext.capabilities.drop[0] | string | `"ALL"` | | -| downloadDashboards.securityContext.seccompProfile.type | string | `"RuntimeDefault"` | | -| downloadDashboardsImage.pullPolicy | string | `"IfNotPresent"` | | -| downloadDashboardsImage.registry | string | `"docker.io"` | The Docker registry | -| downloadDashboardsImage.repository | string | `"curlimages/curl"` | | -| downloadDashboardsImage.sha | string | `""` | | -| downloadDashboardsImage.tag | string | `"8.18.0"` | | -| enableKubeBackwardCompatibility | bool | `false` | | -| enableServiceLinks | bool | `true` | | -| env | object | `{}` | | -| envFromConfigMaps | list | `[]` | | -| envFromSecret | string | `""` | | -| envFromSecrets | list | `[]` | | -| envRenderSecret | object | `{}` | | -| envValueFrom | object | `{}` | | -| extraConfigmapMounts | list | `[]` | | -| extraContainerVolumes | list | `[]` | | -| extraContainers | string | `""` | | -| extraEmptyDirMounts | list | `[]` | | -| extraExposePorts | list | `[]` | | -| extraInitContainers | list | `[]` | | -| extraLabels | object | `{}` | | -| extraObjects | list | `[]` | | -| extraSecretMounts | list | `[]` | | -| extraVolumeMounts | list | `[]` | | -| extraVolumes | list | `[]` | | -| global.imagePullSecrets | list | `[]` | | -| global.imageRegistry | string | `nil` | Overrides the Docker registry globally for all images | -| gossipPortName | string | `"gossip"` | | -| headlessService | bool | `false` | | -| hostAliases | list | `[]` | | -| hostUsers | string | `nil` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.pullSecrets | list | `[]` | | -| image.registry | string | `"docker.io"` | The Docker registry | -| image.repository | string | `"grafana/grafana"` | Docker image repository | -| image.sha | string | `""` | | -| image.tag | string | `""` | | -| imageRenderer.affinity | object | `{}` | | -| imageRenderer.automountServiceAccountToken | bool | `false` | | -| imageRenderer.autoscaling.behavior | object | `{}` | | -| imageRenderer.autoscaling.enabled | bool | `false` | | -| imageRenderer.autoscaling.maxReplicas | int | `5` | | -| imageRenderer.autoscaling.minReplicas | int | `1` | | -| imageRenderer.autoscaling.targetCPU | string | `"60"` | | -| imageRenderer.autoscaling.targetMemory | string | `""` | | -| imageRenderer.containerSecurityContext.allowPrivilegeEscalation | bool | `false` | | -| imageRenderer.containerSecurityContext.capabilities.drop[0] | string | `"ALL"` | | -| imageRenderer.containerSecurityContext.readOnlyRootFilesystem | bool | `true` | | -| imageRenderer.containerSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | | -| imageRenderer.deploymentStrategy | object | `{}` | | -| imageRenderer.enabled | bool | `false` | | -| imageRenderer.env.HTTP_HOST | string | `"0.0.0.0"` | | -| imageRenderer.env.XDG_CACHE_HOME | string | `"/tmp/.chromium"` | | -| imageRenderer.env.XDG_CONFIG_HOME | string | `"/tmp/.chromium"` | | -| imageRenderer.envValueFrom | object | `{}` | | -| imageRenderer.extraConfigmapMounts | list | `[]` | | -| imageRenderer.extraSecretMounts | list | `[]` | | -| imageRenderer.extraVolumeMounts | list | `[]` | | -| imageRenderer.extraVolumes | list | `[]` | | -| imageRenderer.grafanaProtocol | string | `"http"` | | -| imageRenderer.grafanaSubPath | string | `""` | | -| imageRenderer.hostAliases | list | `[]` | | -| imageRenderer.hostUsers | string | `nil` | | -| imageRenderer.image.pullPolicy | string | `"Always"` | | -| imageRenderer.image.pullSecrets | list | `[]` | | -| imageRenderer.image.registry | string | `"docker.io"` | The Docker registry | -| imageRenderer.image.repository | string | `"grafana/grafana-image-renderer"` | | -| imageRenderer.image.sha | string | `""` | | -| imageRenderer.image.tag | string | `"latest"` | | -| imageRenderer.networkPolicy.extraIngressSelectors | list | `[]` | | -| imageRenderer.networkPolicy.limitEgress | bool | `false` | | -| imageRenderer.networkPolicy.limitIngress | bool | `true` | | -| imageRenderer.nodeSelector | object | `{}` | | -| imageRenderer.podAnnotations | object | `{}` | | -| imageRenderer.podPortName | string | `"http"` | | -| imageRenderer.priorityClassName | string | `""` | | -| imageRenderer.renderingCallbackURL | string | `""` | | -| imageRenderer.replicas | int | `1` | | -| imageRenderer.resources | object | `{}` | | -| imageRenderer.revisionHistoryLimit | int | `10` | | -| imageRenderer.securityContext | object | `{}` | | -| imageRenderer.serverURL | string | `""` | | -| imageRenderer.service.appProtocol | string | `""` | | -| imageRenderer.service.enabled | bool | `true` | | -| imageRenderer.service.port | int | `8081` | | -| imageRenderer.service.portName | string | `"http"` | | -| imageRenderer.service.targetPort | int | `8081` | | -| imageRenderer.serviceAccountName | string | `""` | | -| imageRenderer.serviceMonitor.enabled | bool | `false` | | -| imageRenderer.serviceMonitor.interval | string | `"1m"` | | -| imageRenderer.serviceMonitor.labels | object | `{}` | | -| imageRenderer.serviceMonitor.path | string | `"/metrics"` | | -| imageRenderer.serviceMonitor.relabelings | list | `[]` | | -| imageRenderer.serviceMonitor.scheme | string | `"http"` | | -| imageRenderer.serviceMonitor.scrapeTimeout | string | `"30s"` | | -| imageRenderer.serviceMonitor.targetLabels | list | `[]` | | -| imageRenderer.serviceMonitor.tlsConfig | object | `{}` | | -| imageRenderer.tolerations | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.extraPaths | list | `[]` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.labels | object | `{}` | | -| ingress.path | string | `"/"` | | -| ingress.pathType | string | `"Prefix"` | | -| ingress.tls | list | `[]` | | -| initChownData.enabled | bool | `true` | | -| initChownData.image.pullPolicy | string | `"IfNotPresent"` | | -| initChownData.image.registry | string | `"docker.io"` | The Docker registry | -| initChownData.image.repository | string | `"library/busybox"` | | -| initChownData.image.sha | string | `""` | | -| initChownData.image.tag | string | `"1.37.0"` | | -| initChownData.resources | object | `{}` | | -| initChownData.securityContext.capabilities.add[0] | string | `"CHOWN"` | | -| initChownData.securityContext.capabilities.drop[0] | string | `"ALL"` | | -| initChownData.securityContext.readOnlyRootFilesystem | bool | `false` | | -| initChownData.securityContext.runAsNonRoot | bool | `false` | | -| initChownData.securityContext.runAsUser | int | `0` | | -| initChownData.securityContext.seccompProfile.type | string | `"RuntimeDefault"` | | -| ldap.config | string | `""` | | -| ldap.enabled | bool | `false` | | -| ldap.existingSecret | string | `""` | | -| lifecycleHooks | object | `{}` | | -| livenessProbe.failureThreshold | int | `10` | | -| livenessProbe.httpGet.path | string | `"/api/health"` | | -| livenessProbe.httpGet.port | string | `"grafana"` | | -| livenessProbe.initialDelaySeconds | int | `60` | | -| livenessProbe.timeoutSeconds | int | `30` | | -| namespaceOverride | string | `""` | | -| networkPolicy.allowExternal | bool | `true` | | -| networkPolicy.egress.blockDNSResolution | bool | `false` | | -| networkPolicy.egress.enabled | bool | `false` | | -| networkPolicy.egress.ports | list | `[]` | | -| networkPolicy.egress.to | list | `[]` | | -| networkPolicy.enabled | bool | `false` | | -| networkPolicy.explicitNamespacesSelector | object | `{}` | | -| networkPolicy.ingress | bool | `true` | | -| nodeSelector | object | `{}` | | -| notifiers | object | `{}` | | -| persistence.accessModes[0] | string | `"ReadWriteOnce"` | | -| persistence.disableWarning | bool | `false` | | -| persistence.enabled | bool | `false` | | -| persistence.extraPvcLabels | object | `{}` | | -| persistence.finalizers[0] | string | `"kubernetes.io/pvc-protection"` | | -| persistence.inMemory.enabled | bool | `false` | | -| persistence.lookupVolumeName | bool | `true` | | -| persistence.size | string | `"10Gi"` | | -| persistence.type | string | `"pvc"` | | -| persistence.volumeName | string | `""` | | -| plugins | list | `[]` | | -| podDisruptionBudget | object | `{}` | | -| podPortName | string | `"grafana"` | | -| rbac.create | bool | `true` | | -| rbac.extraClusterRoleRules | list | `[]` | | -| rbac.extraRoleRules | list | `[]` | | -| rbac.namespaced | bool | `false` | | -| rbac.pspEnabled | bool | `false` | | -| rbac.pspUseAppArmor | bool | `false` | | -| readinessProbe.httpGet.path | string | `"/api/health"` | | -| readinessProbe.httpGet.port | string | `"grafana"` | | -| replicas | int | `1` | | -| resources | object | `{}` | | -| revisionHistoryLimit | int | `10` | | -| route | object | `{"main":{"additionalRules":[],"annotations":{},"apiVersion":"gateway.networking.k8s.io/v1","enabled":false,"filters":[],"hostnames":[],"httpsRedirect":false,"kind":"HTTPRoute","labels":{},"matches":[{"path":{"type":"PathPrefix","value":"/"}}],"parentRefs":[]}}` | BETA: Configure the gateway routes for the chart here. More routes can be added by adding a dictionary key like the 'main' route. Be aware that this is an early beta of this feature, kube-prometheus-stack does not guarantee this works and is subject to change. Being BETA this can/will change in the future without notice, do not use unless you want to take that risk [[ref]](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2fv1alpha2) | -| route.main.apiVersion | string | `"gateway.networking.k8s.io/v1"` | Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2 | -| route.main.enabled | bool | `false` | Enables or disables the route | -| route.main.kind | string | `"HTTPRoute"` | Set the route kind Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute | -| securityContext.fsGroup | int | `472` | | -| securityContext.runAsGroup | int | `472` | | -| securityContext.runAsNonRoot | bool | `true` | | -| securityContext.runAsUser | int | `472` | | -| service.annotations | object | `{}` | | -| service.appProtocol | string | `""` | | -| service.enabled | bool | `true` | | -| service.ipFamilies | list | `[]` | | -| service.ipFamilyPolicy | string | `""` | | -| service.labels | object | `{}` | | -| service.loadBalancerClass | string | `""` | | -| service.loadBalancerIP | string | `""` | | -| service.loadBalancerSourceRanges | list | `[]` | | -| service.port | int | `80` | | -| service.portName | string | `"service"` | | -| service.sessionAffinity | string | `""` | | -| service.targetPort | int | `3000` | | -| service.trafficDistribution | string | `""` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.automountServiceAccountToken | bool | `false` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.labels | object | `{}` | | -| serviceAccount.name | string | `nil` | | -| serviceAccount.nameTest | string | `nil` | | -| serviceMonitor.basicAuth | object | `{}` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceMonitor.interval | string | `"30s"` | | -| serviceMonitor.labels | object | `{}` | | -| serviceMonitor.metricRelabelings | list | `[]` | | -| serviceMonitor.path | string | `"/metrics"` | | -| serviceMonitor.relabelings | list | `[]` | | -| serviceMonitor.scheme | string | `"http"` | | -| serviceMonitor.scrapeTimeout | string | `"30s"` | | -| serviceMonitor.targetLabels | list | `[]` | | -| serviceMonitor.tlsConfig | object | `{}` | | -| shareProcessNamespace | bool | `false` | | -| sidecar.alerts.enabled | bool | `false` | | -| sidecar.alerts.env | object | `{}` | | -| sidecar.alerts.envValueFrom | object | `{}` | | -| sidecar.alerts.extraMounts | list | `[]` | | -| sidecar.alerts.initAlerts | bool | `false` | | -| sidecar.alerts.label | string | `"grafana_alert"` | | -| sidecar.alerts.labelValue | string | `""` | | -| sidecar.alerts.reloadURL | string | `"http://localhost:3000/api/admin/provisioning/alerting/reload"` | | -| sidecar.alerts.resource | string | `"both"` | | -| sidecar.alerts.resourceName | string | `""` | | -| sidecar.alerts.script | string | `nil` | | -| sidecar.alerts.searchNamespace | string | `nil` | | -| sidecar.alerts.sizeLimit | string | `""` | | -| sidecar.alerts.skipReload | bool | `false` | | -| sidecar.alerts.watchMethod | string | `"WATCH"` | | -| sidecar.dashboards.SCProvider | bool | `true` | | -| sidecar.dashboards.defaultFolderName | string | `nil` | | -| sidecar.dashboards.enabled | bool | `false` | | -| sidecar.dashboards.env | object | `{}` | | -| sidecar.dashboards.envValueFrom | object | `{}` | | -| sidecar.dashboards.extraMounts | list | `[]` | | -| sidecar.dashboards.folder | string | `"/tmp/dashboards"` | | -| sidecar.dashboards.folderAnnotation | string | `nil` | | -| sidecar.dashboards.initDashboards | bool | `false` | | -| sidecar.dashboards.label | string | `"grafana_dashboard"` | | -| sidecar.dashboards.labelValue | string | `""` | | -| sidecar.dashboards.provider.allowUiUpdates | bool | `false` | | -| sidecar.dashboards.provider.disableDelete | bool | `false` | | -| sidecar.dashboards.provider.folder | string | `""` | | -| sidecar.dashboards.provider.folderUid | string | `""` | | -| sidecar.dashboards.provider.foldersFromFilesStructure | bool | `false` | | -| sidecar.dashboards.provider.name | string | `"sidecarProvider"` | | -| sidecar.dashboards.provider.orgid | int | `1` | | -| sidecar.dashboards.provider.type | string | `"file"` | | -| sidecar.dashboards.reloadURL | string | `"http://localhost:3000/api/admin/provisioning/dashboards/reload"` | | -| sidecar.dashboards.resource | string | `"both"` | | -| sidecar.dashboards.resourceName | string | `""` | | -| sidecar.dashboards.script | string | `nil` | | -| sidecar.dashboards.searchNamespace | string | `nil` | | -| sidecar.dashboards.sizeLimit | string | `""` | | -| sidecar.dashboards.skipReload | bool | `false` | | -| sidecar.dashboards.watchMethod | string | `"WATCH"` | | -| sidecar.datasources.enabled | bool | `false` | | -| sidecar.datasources.env | object | `{}` | | -| sidecar.datasources.envValueFrom | object | `{}` | | -| sidecar.datasources.extraMounts | list | `[]` | | -| sidecar.datasources.initDatasources | bool | `false` | | -| sidecar.datasources.label | string | `"grafana_datasource"` | | -| sidecar.datasources.labelValue | string | `""` | | -| sidecar.datasources.reloadURL | string | `"http://localhost:3000/api/admin/provisioning/datasources/reload"` | | -| sidecar.datasources.resource | string | `"both"` | | -| sidecar.datasources.resourceName | string | `""` | | -| sidecar.datasources.script | string | `nil` | | -| sidecar.datasources.searchNamespace | string | `nil` | | -| sidecar.datasources.sizeLimit | string | `""` | | -| sidecar.datasources.skipReload | bool | `false` | | -| sidecar.datasources.watchMethod | string | `"WATCH"` | | -| sidecar.enableUniqueFilenames | bool | `false` | | -| sidecar.image.registry | string | `"quay.io"` | The Docker registry | -| sidecar.image.repository | string | `"kiwigrid/k8s-sidecar"` | | -| sidecar.image.sha | string | `""` | | -| sidecar.image.tag | string | `"2.5.0"` | | -| sidecar.imagePullPolicy | string | `"IfNotPresent"` | | -| sidecar.livenessProbe | object | `{}` | | -| sidecar.notifiers.enabled | bool | `false` | | -| sidecar.notifiers.env | object | `{}` | | -| sidecar.notifiers.extraMounts | list | `[]` | | -| sidecar.notifiers.initNotifiers | bool | `false` | | -| sidecar.notifiers.label | string | `"grafana_notifier"` | | -| sidecar.notifiers.labelValue | string | `""` | | -| sidecar.notifiers.reloadURL | string | `"http://localhost:3000/api/admin/provisioning/notifications/reload"` | | -| sidecar.notifiers.resource | string | `"both"` | | -| sidecar.notifiers.resourceName | string | `""` | | -| sidecar.notifiers.script | string | `nil` | | -| sidecar.notifiers.searchNamespace | string | `nil` | | -| sidecar.notifiers.sizeLimit | string | `""` | | -| sidecar.notifiers.skipReload | bool | `false` | | -| sidecar.notifiers.watchMethod | string | `"WATCH"` | | -| sidecar.plugins.enabled | bool | `false` | | -| sidecar.plugins.env | object | `{}` | | -| sidecar.plugins.extraMounts | list | `[]` | | -| sidecar.plugins.initPlugins | bool | `false` | | -| sidecar.plugins.label | string | `"grafana_plugin"` | | -| sidecar.plugins.labelValue | string | `""` | | -| sidecar.plugins.reloadURL | string | `"http://localhost:3000/api/admin/provisioning/plugins/reload"` | | -| sidecar.plugins.resource | string | `"both"` | | -| sidecar.plugins.resourceName | string | `""` | | -| sidecar.plugins.script | string | `nil` | | -| sidecar.plugins.searchNamespace | string | `nil` | | -| sidecar.plugins.sizeLimit | string | `""` | | -| sidecar.plugins.skipReload | bool | `false` | | -| sidecar.plugins.watchMethod | string | `"WATCH"` | | -| sidecar.readinessProbe | object | `{}` | | -| sidecar.resources | object | `{}` | | -| sidecar.securityContext.allowPrivilegeEscalation | bool | `false` | | -| sidecar.securityContext.capabilities.drop[0] | string | `"ALL"` | | -| sidecar.securityContext.seccompProfile.type | string | `"RuntimeDefault"` | | -| smtp.existingSecret | string | `""` | | -| smtp.passwordKey | string | `"password"` | | -| smtp.userKey | string | `"user"` | | -| testFramework.containerSecurityContext | object | `{}` | | -| testFramework.enabled | bool | `true` | | -| testFramework.image.registry | string | `"docker.io"` | The Docker registry | -| testFramework.image.repository | string | `"bats/bats"` | | -| testFramework.image.tag | string | `"1.13.0"` | | -| testFramework.imagePullPolicy | string | `"IfNotPresent"` | | -| testFramework.resources | object | `{}` | | -| testFramework.securityContext | object | `{}` | | -| tolerations | list | `[]` | | -| topologySpreadConstraints | list | `[]` | | -| useStatefulSet | bool | `false` | | - ### Example ingress with path With grafana 6.3 and above @@ -500,6 +153,7 @@ dashboards: file: dashboards/custom-dashboard.json prometheus-stats: # Ref: https://grafana.com/dashboards/2 + # title: My Custom Title # optional; when set for a downloaded dashboard (gnetId or url), overrides the title displayed in Grafana gnetId: 2 revision: 2 datasource: Prometheus @@ -526,15 +180,15 @@ dashboards: ## BASE64 dashboards -Dashboards could be stored on a server that does not return JSON directly and instead of it returns a Base64 encoded file (e.g. Gerrit) -A new parameter has been added to the url use case so if you specify a b64content value equals to true after the url entry a Base64 decoding is applied before save the file to disk. +Dashboards could be stored on a server that does not return JSON directly and instead of it returns a base64 encoded file (e.g. Gerrit) +A new parameter has been added to the URL use case so if you specify a b64content value equals to true after the URL entry a base64 decoding is applied before save the file to disk. If this entry is not set or is equals to false not decoding is applied to the file before saving it to disk. ### Gerrit use case Gerrit API for download files has the following schema: where {project-name} and -{file-id} usually has '/' in their values and so they MUST be replaced by %2F so if project-name is user/repo, branch-id is master and file-id is equals to dir1/dir2/dashboard -the url value is +{file-id} usually has '/' in their values and so they MUST be replaced by %2F so if project-name is user/repository, branch-id is master and file-id is equals to dir1/dir2/dashboard +the URL value is ## Sidecar for dashboards @@ -566,7 +220,7 @@ data: If the parameter `sidecar.datasources.enabled` is set, an init container is deployed in the grafana pod. This container lists all secrets (or configmaps, though not recommended) in the cluster and filters out the ones with a label as defined in `sidecar.datasources.label`. The files defined in -those secrets are written to a folder and accessed by grafana on startup. Using these yaml files, +those secrets are written to a folder and accessed by grafana on startup. Using these YAML files, the data sources in grafana can be imported. Should you aim for reloading datasources in Grafana each time the config is changed, set `sidecar.datasources.skipReload: false` and adjust `sidecar.datasources.reloadURL` to `http://..svc.cluster.local/api/admin/provisioning/datasources/reload`. @@ -658,7 +312,7 @@ datasources: If the parameter `sidecar.notifiers.enabled` is set, an init container is deployed in the grafana pod. This container lists all secrets (or configmaps, though not recommended) in the cluster and filters out the ones with a label as defined in `sidecar.notifiers.label`. The files defined in -those secrets are written to a folder and accessed by grafana on startup. Using these yaml files, +those secrets are written to a folder and accessed by grafana on startup. Using these YAML files, the notification channels in grafana can be imported. The secrets must be created before `helm install` so that the notifiers init container can list the secrets. @@ -912,4 +566,18 @@ grafana.ini: ``` ### Installing plugins -For installing plugins please see the [official documentation](https://grafana.com/docs/grafana/latest/administration/plugin-management/#install-plugins-using-the-grafana-helm-chart). + +If you want to install a Grafana plugin using the helm chart, you can do so by using the identifier of the plugin, for example `digirich-bubblechart-panel` will install [Bubble Chart](https://grafana.com/grafana/plugins/digrich-bubblechart-panel/). + +You can also install a plugin and a specific version by specifying the version and URL of the download file as shown in the example below : + +```yaml +plugins: + - digrich-bubblechart-panel + - grafana-clock-panel + ## You can also use other plugin download URL, as long as they are valid zip files, + ## and specify the name of the plugin as prefix, with an version. Like this: + # - marcusolsson-json-datasource@1.3.24@https://grafana.com/api/plugins/marcusolsson-json-datasource/versions/1.3.24/download +``` + +Generic documentation about plugins can be found in the [official documentation](https://grafana.com/docs/grafana/latest/administration/plugin-management/). diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/_config.tpl b/charts/kube-prometheus-stack/charts/grafana/templates/_config.tpl index 4e71c338f4..a3181991d1 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/_config.tpl +++ b/charts/kube-prometheus-stack/charts/grafana/templates/_config.tpl @@ -132,6 +132,14 @@ download_dashboards.sh: | {{- if $value.b64content }} | base64 -d \ {{- end }} + {{- /* + Overrides original title with a custom title. + Deterministic search as title is generally indented with 2 spaces, 4 spaces or a tab. + Escape characters that may be wrongly interpreted by sed: backslash (\), double backslash (\\), and ampersand (&). + */}} + {{- if $value.title }} + | sed -E '/^(\t| | )"title":/ s#"title": *"[^"]*"#"title": "{{ $value.title | replace "\\" "\\\\" | replace "\"" "\\\"" | replace "&" "\\&" }}"#' \ + {{- end }} > "{{- if $dpPath -}}{{ $dpPath }}{{- else -}}/var/lib/grafana/dashboards/{{ $provider }}{{- end -}}/{{ $key }}.json" {{ end }} {{- end }} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl b/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl index 5f0d7c0aad..30322c7a2e 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl +++ b/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl @@ -83,6 +83,15 @@ app.kubernetes.io/name: {{ include "grafana.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} +{{/* +Create a fully qualified name for image-renderer resources. +We truncate at 47 chars to reserve space for the longest suffix (-image-renderer, 16 chars) +so the Service name stays within the 63-char DNS label limit. +*/}} +{{- define "grafana.imageRenderer.fullname" -}} +{{- include "grafana.fullname" . | trunc 47 | trimSuffix "-" }} +{{- end }} + {{/* Common labels */}} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl b/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl index b73250f38b..de204db4f2 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl +++ b/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl @@ -1299,7 +1299,7 @@ containers: {{- with .Values.datasources }} {{- $datasources := . }} {{- range (keys . | sortAlpha) }} - {{- if (or (hasKey (index $datasources .) "secret")) }} {{/*check if current datasource should be handeled as secret */}} + {{- if (or (hasKey (index $datasources .) "secret")) }} {{/*check if current datasource should be handled as secret */}} - name: config-secret mountPath: "/etc/grafana/provisioning/datasources/{{ . }}" subPath: {{ . | quote }} @@ -1313,7 +1313,7 @@ containers: {{- with .Values.notifiers }} {{- $notifiers := . }} {{- range (keys . | sortAlpha) }} - {{- if (or (hasKey (index $notifiers .) "secret")) }} {{/*check if current notifier should be handeled as secret */}} + {{- if (or (hasKey (index $notifiers .) "secret")) }} {{/*check if current notifier should be handled as secret */}} - name: config-secret mountPath: "/etc/grafana/provisioning/notifiers/{{ . }}" subPath: {{ . | quote }} @@ -1327,7 +1327,7 @@ containers: {{- with .Values.alerting }} {{- $alertingmap := .}} {{- range (keys . | sortAlpha) }} - {{- if (or (hasKey (index $.Values.alerting .) "secret") (hasKey (index $.Values.alerting .) "secretFile")) }} {{/*check if current alerting entry should be handeled as secret */}} + {{- if (or (hasKey (index $.Values.alerting .) "secret") (hasKey (index $.Values.alerting .) "secretFile")) }} {{/*check if current alerting entry should be handled as secret */}} - name: config-secret mountPath: "/etc/grafana/provisioning/alerting/{{ . }}" subPath: {{ . | quote }} @@ -1442,7 +1442,7 @@ containers: {{- if .Values.imageRenderer.serverURL }} value: {{ .Values.imageRenderer.serverURL | quote }} {{- else }} - value: http://{{ include "grafana.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render + value: http://{{ include "grafana.imageRenderer.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render {{- end }} - name: GF_RENDERING_CALLBACK_URL {{- if .Values.imageRenderer.renderingCallbackURL }} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-deployment.yaml b/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-deployment.yaml index 9f035d620b..20ddff4bb6 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-deployment.yaml +++ b/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-deployment.yaml @@ -86,7 +86,7 @@ spec: protocol: TCP livenessProbe: httpGet: - path: / + path: {{ .Values.imageRenderer.healthcheckPath }} port: {{ .Values.imageRenderer.service.portName }} env: - name: HTTP_PORT diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-service.yaml b/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-service.yaml index c27be5c33d..ffa72d0ebe 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-service.yaml +++ b/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "grafana.fullname" . }}-image-renderer + name: {{ include "grafana.imageRenderer.fullname" . }}-image-renderer namespace: {{ include "grafana.namespace" . }} labels: {{- include "grafana.imageRenderer.labels" . | nindent 4 }} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/networkpolicy.yaml b/charts/kube-prometheus-stack/charts/grafana/templates/networkpolicy.yaml index 4cd3ed6976..07a9d7de16 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/networkpolicy.yaml +++ b/charts/kube-prometheus-stack/charts/grafana/templates/networkpolicy.yaml @@ -52,6 +52,10 @@ spec: - namespaceSelector: {{- toYaml . | nindent 12 }} {{- end }} + {{- range .Values.networkPolicy.explicitIpBlocks }} + - ipBlock: + cidr: {{ . | quote }} + {{- end }} - podSelector: matchLabels: {{- include "grafana.labels" . | nindent 14 }} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/route.yaml b/charts/kube-prometheus-stack/charts/grafana/templates/route.yaml index 8b309312e7..1c75b7b871 100644 --- a/charts/kube-prometheus-stack/charts/grafana/templates/route.yaml +++ b/charts/kube-prometheus-stack/charts/grafana/templates/route.yaml @@ -6,7 +6,7 @@ kind: {{ $route.kind | default "HTTPRoute" }} metadata: {{- with $route.annotations }} annotations: - {{- toYaml . | nindent 4 }} + {{- tpl (toYaml .) $ | nindent 4 }} {{- end }} name: {{ template "grafana.fullname" $ }}{{ if ne $name "main" }}-{{ $name }}{{ end }} namespace: {{ template "grafana.namespace" $ }} @@ -49,6 +49,10 @@ spec: matches: {{- toYaml . | nindent 8 }} {{- end }} + {{- with $route.timeouts }} + timeouts: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} {{- end }} {{- end }} diff --git a/charts/kube-prometheus-stack/charts/grafana/templates/vpa.yaml b/charts/kube-prometheus-stack/charts/grafana/templates/vpa.yaml new file mode 100644 index 0000000000..01c8b9aab3 --- /dev/null +++ b/charts/kube-prometheus-stack/charts/grafana/templates/vpa.yaml @@ -0,0 +1,56 @@ +{{- if and .Values.verticalPodAutoscaler.enabled (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1/VerticalPodAutoscaler") }} + +{{- $vpa := .Values.verticalPodAutoscaler }} +{{- $resources := $vpa.controlledResources | default dict }} +{{- $target := $vpa.target | default dict }} +{{- $container := $vpa.container | default dict }} + +{{- /* Match deployment.yaml condition */ -}} +{{- $isDeployment := and (not .Values.useStatefulSet) (or (not .Values.persistence.enabled) (eq .Values.persistence.type "pvc")) -}} + +{{- /* Derived defaults */ -}} +{{- $defaultApiVersion := "apps/v1" -}} +{{- $defaultKind := ternary "Deployment" "StatefulSet" $isDeployment -}} +{{- $defaultName := include "grafana.fullname" . -}} + +{{- /* Optional override (ONLY if you document it in values.yaml/schema) */ -}} +{{- $t := $vpa.targetRef | default dict -}} +{{- $apiVersion := default $defaultApiVersion $t.apiVersion -}} +{{- $kind := default $defaultKind $t.kind -}} +{{- $name := default $defaultName $t.name -}} + +apiVersion: autoscaling.k8s.io/v1 +kind: VerticalPodAutoscaler +metadata: + name: {{ include "grafana.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "grafana.labels" . | nindent 4 }} +spec: + targetRef: + apiVersion: {{ $apiVersion | quote }} + kind: {{ $kind | quote }} + name: {{ $name | quote }} + updatePolicy: + updateMode: {{ default "Off" $vpa.updateMode | quote }} + resourcePolicy: + containerPolicies: + - containerName: "grafana" +{{- if or (get $resources "cpu") (get $resources "memory") }} + controlledResources: +{{- if (get $resources "cpu") }} + - "cpu" +{{- end }} +{{- if (get $resources "memory") }} + - "memory" +{{- end }} +{{- end }} +{{- with $vpa.minAllowed }} + minAllowed: +{{ toYaml . | nindent 10 }} +{{- end }} +{{- with $vpa.maxAllowed }} + maxAllowed: +{{ toYaml . | nindent 10 }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/kube-prometheus-stack/charts/grafana/values.yaml b/charts/kube-prometheus-stack/charts/grafana/values.yaml index 1b256fbd8a..cae873e7c8 100644 --- a/charts/kube-prometheus-stack/charts/grafana/values.yaml +++ b/charts/kube-prometheus-stack/charts/grafana/values.yaml @@ -34,8 +34,8 @@ rbac: # verbs: [] serviceAccount: create: true - name: - nameTest: + name: "" + nameTest: "" ## ServiceAccount labels. labels: {} ## Service account annotations. Can be templated. @@ -272,9 +272,9 @@ serviceMonitor: targetLabels: [] extraExposePorts: [] - # - name: keycloak - # port: 8080 - # targetPort: 8080 + # - name: keycloak + # port: 8080 + # targetPort: 8080 # overrides pod.spec.hostAliases in the grafana deployment's pods hostAliases: [] @@ -341,6 +341,12 @@ route: type: PathPrefix value: / + ## Timeouts define the timeouts that can be configured for an HTTP request. + ## Ref. https://gateway-api.sigs.k8s.io/api-types/httproute/#timeouts-optional + timeouts: {} + # request: 10s + # backendRequest: 5s + ## Filters define the filters that are applied to requests that match this rule. filters: [] @@ -657,8 +663,8 @@ plugins: [] # - digrich-bubblechart-panel # - grafana-clock-panel ## You can also use other plugin download URL, as long as they are valid zip files, - ## and specify the name of the plugin after the semicolon. Like this: - # - https://grafana.com/api/plugins/marcusolsson-json-datasource/versions/1.3.2/download;marcusolsson-json-datasource + ## and specify the name of the plugin as prefix, with an version. Like this: + # - marcusolsson-json-datasource@1.3.24@https://grafana.com/api/plugins/marcusolsson-json-datasource/versions/1.3.24/download ## Configure grafana datasources ## ref: http://docs.grafana.org/administration/provisioning/#datasources @@ -829,6 +835,8 @@ defaultCurlOptions: "-skf" ## ref: https://grafana.com/dashboards ## ## dashboards per provider, use provider name as key. +## For dashboards downloaded via gnetId or url, the optional "title" key overrides +## the dashboard title in the downloaded JSON so the UI displays your custom title. ## dashboards: {} # default: @@ -838,6 +846,7 @@ dashboards: {} # custom-dashboard: # file: dashboards/custom-dashboard.json # prometheus-stats: + # title: My Custom Dashboard Title # optional; overrides the dashboard title in the downloaded JSON # gnetId: 2 # revision: 2 # datasource: Prometheus @@ -890,21 +899,21 @@ grafana.ini: unified_storage: index_path: /var/lib/grafana-search/bleve ## grafana Authentication can be enabled with the following values on grafana.ini - # server: - # The full public facing url you use in browser, used for redirects and emails - # root_url: - # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana - # auth.github: - # enabled: false - # allow_sign_up: false - # scopes: user:email,read:org - # auth_url: https://github.com/login/oauth/authorize - # token_url: https://github.com/login/oauth/access_token - # api_url: https://api.github.com/user - # team_ids: - # allowed_organizations: - # client_id: - # client_secret: + # server: + # The full public facing url you use in browser, used for redirects and emails + # root_url: + # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana + # auth.github: + # enabled: false + # allow_sign_up: false + # scopes: user:email,read:org + # auth_url: https://github.com/login/oauth/authorize + # token_url: https://github.com/login/oauth/access_token + # api_url: https://api.github.com/user + # team_ids: + # allowed_organizations: + # client_id: + # client_secret: ## LDAP Authentication can be enabled with the following values on grafana.ini ## NOTE: Grafana will fail to start if the value for ldap.toml is invalid # auth.ldap: @@ -961,7 +970,7 @@ sidecar: # -- The Docker registry registry: quay.io repository: kiwigrid/k8s-sidecar - tag: 2.5.0 + tag: 2.5.5 sha: "" imagePullPolicy: IfNotPresent resources: {} @@ -1439,7 +1448,7 @@ namespaceOverride: "" ## revisionHistoryLimit: 10 -## Add a seperate remote image renderer deployment/service +## Add a separate remote image renderer deployment/service imageRenderer: deploymentStrategy: {} # Enable the image-renderer deployment & service @@ -1514,6 +1523,8 @@ imageRenderer: hostAliases: [] # image-renderer deployment priority class priorityClassName: '' + # Path to the healthcheck endpoint. On Image Renderer v5.0.0 or newer, this is '/healthz'. Older versions use '/'. + healthcheckPath: '/healthz' service: # Enable the image-renderer service enabled: true @@ -1596,69 +1607,73 @@ imageRenderer: extraVolumes: [] networkPolicy: - ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. - ## + # -- networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. enabled: false - ## @param networkPolicy.allowExternal Don't require client label for connections - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to grafana port defined. - ## When true, grafana will accept connections from any source - ## (with the correct destination port). - ## + # --networkPolicy.allowExternal Don't require client label for connections + # The Policy model to apply. When set to false, only pods with the correct + # client label will have network access to grafana port defined. + # When true, grafana will accept connections from any source + # (with the correct destination port). + # ingress: true - ## @param networkPolicy.ingress When true enables the creation - ## an ingress network policy - ## + # -- networkPolicy.ingress When true enables the creation + # an ingress network policy allowExternal: true - ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed - ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace - ## and that match other criteria, the ones that have the good label, can reach the grafana. - ## But sometimes, we want the grafana to be accessible to clients from other namespaces, in this case, we can use this - ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added. - ## - ## Example: - ## explicitNamespacesSelector: - ## matchLabels: - ## role: frontend - ## matchExpressions: - ## - {key: role, operator: In, values: [frontend]} - ## + # -- networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed + # If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace + # and that match other criteria, the ones that have the good label, can reach the grafana. + # But sometimes, we want the grafana to be accessible to clients from other namespaces, in this case, we can use this + # LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added. + #
+ # + # Example: + # + # ``` + # explicitNamespacesSelector: + # matchLabels: + # role: frontend + # matchExpressions: + # - {key: role, operator: In, values: [frontend]} + # ``` explicitNamespacesSelector: {} - ## - ## - ## - ## - ## - ## + # -- networkPolicy.explicitIpBlocks List of CIDR blocks allowed as ingress sources. + # Each entry must be a valid CIDR notation string (e.g. 10.0.0.0/8). + # When defined, the specified CIDR ranges are added to the ingress `from` rules + # using `ipBlock` entries and complement the other configured ingress sources. + #
+ # + # Example: + # + # ``` + # explicitIpBlocks: + # - 35.191.0.0/16 + # - 130.211.0.0/22 + # ``` + # + explicitIpBlocks: [] + egress: - ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be - ## created allowing grafana to connect to external data sources from kubernetes cluster. + # -- networkPolicy.egress.enabled When enabled, an egress network policy will be + # created allowing grafana to connect to external data sources from kubernetes cluster. enabled: false - ## - ## @param networkPolicy.egress.blockDNSResolution When enabled, DNS resolution will be blocked - ## for all pods in the grafana namespace. + # -- networkPolicy.egress.blockDNSResolution When enabled, DNS resolution will be blocked + # for all pods in the grafana namespace. blockDNSResolution: false - ## - ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress + # -- networkPolicy.egress.ports Add individual ports to be allowed by the egress ports: [] - ## Add ports to the egress by specifying - port: - ## E.X. - ## - port: 80 - ## - port: 443 - ## - ## @param networkPolicy.egress.to Allow egress traffic to specific destinations + # Add ports to the egress by specifying - port: + # E.X. + # - port: 80 + # - port: 443 + # + # -- networkPolicy.egress.to Allow egress traffic to specific destinations to: [] - ## Add destinations to the egress by specifying - ipBlock: - ## E.X. - ## to: - ## - namespaceSelector: - ## matchExpressions: - ## - {key: role, operator: In, values: [grafana]} - ## - ## - ## - ## - ## + # -- destinations to the egress by specifying - ipBlock: + # E.X. + # to: + # - namespaceSelector: + # matchExpressions: + # - {key: role, operator: In, values: [grafana]} # Enable backward compatibility of kubernetes where version below 1.13 doesn't have the enableServiceLinks option enableKubeBackwardCompatibility: false @@ -1699,3 +1714,25 @@ extraObjects: [] # Alternatively, if you wish to allow secret values to be exposed in the rendered grafana.ini configmap, # you can disable this check by setting assertNoLeakedSecrets to false. assertNoLeakedSecrets: true + +# updateMode options are: +# Off: n the Off update mode, the VPA recommender still analyzes resource usage and generates recommendations, but these recommendations are not automatically applied to Pods. The recommendations are only stored in the VPA object's .status field. +# Initial: In Initial mode, VPA only sets resource requests when Pods are first created. It does not update resources for already running Pods, even if recommendations change over time. The recommendations apply only during Pod creation. +# Recreate: In Recreate mode, VPA actively manages Pod resources by evicting Pods when their current resource requests differ significantly from recommendations. When a Pod is evicted, the workload controller (managing a Deployment, StatefulSet, etc) creates a replacement Pod, and the VPA admission controller applies the updated resource requests to the new Pod. +# InPlaceOrRecreate: In Recreate mode, VPA actively manages Pod resources by evicting Pods when their current resource requests differ significantly from recommendations. When a Pod is evicted, the workload controller (managing a Deployment, StatefulSet, etc) creates a replacement Pod, and the VPA admission controller applies the updated resource requests to the new Pod. +# Auto (deprecated): The Auto update mode is deprecated since VPA version 1.4.0. Use Recreate for eviction-based updates, or InPlaceOrRecreate for in-place updates with eviction fallback. +verticalPodAutoscaler: + enabled: false + updateMode: "Off" + controlledResources: + cpu: true + memory: true + + # Default safety bounds + minAllowed: + cpu: "25m" + memory: "128Mi" + + maxAllowed: + cpu: "1000m" + memory: "1Gi" diff --git a/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml b/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml index 9cd93e8520..b8dc96a112 100644 --- a/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml +++ b/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml @@ -26,4 +26,4 @@ name: kube-state-metrics sources: - https://github.com/kubernetes/kube-state-metrics/ type: application -version: 7.1.0 +version: 7.2.2 diff --git a/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml b/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml index 43d2aec964..9f71fbb165 100644 --- a/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml +++ b/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml @@ -106,7 +106,7 @@ kubeRBACProxy: image: registry: quay.io repository: brancz/kube-rbac-proxy - tag: v0.20.2 + tag: v0.21.2 sha: "" pullPolicy: IfNotPresent diff --git a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml index 2c8bdd4c3f..b016fb6876 100644 --- a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml +++ b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml @@ -4,7 +4,7 @@ annotations: - name: Chart Source url: https://github.com/prometheus-community/helm-charts apiVersion: v2 -appVersion: 1.10.2 +appVersion: 1.11.1 description: A Helm chart for prometheus node-exporter home: https://github.com/prometheus/node_exporter/ icon: https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/prometheus/icon/color/prometheus-icon-color.svg @@ -26,4 +26,4 @@ name: prometheus-node-exporter sources: - https://github.com/prometheus/node_exporter/ type: application -version: 4.51.1 +version: 4.53.1 diff --git a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml index 3c82f732ba..9ab71b8404 100644 --- a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml +++ b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml @@ -38,9 +38,56 @@ spec: {{- with .Values.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- with .Values.extraInitContainers }} + {{- $fixes := .Values.permissionInitContainer.fixes -}} + {{- $fixesEnabled := or $fixes.rapl $fixes.slabinfo (not (empty .Values.permissionInitContainer.extraCommands)) -}} + {{- if or .Values.extraInitContainers $fixesEnabled }} initContainers: - {{- toYaml . | nindent 8 }} + {{- if .Values.extraInitContainers }} + {{- toYaml .Values.extraInitContainers | nindent 8 }} + {{- end }} + {{- if $fixesEnabled }} + - name: permission-fix + {{- with .Values.permissionInitContainer.image }} + {{- if .sha }} + image: "{{ $.Values.global.imageRegistry | default .registry}}/{{ .repository }}:{{ .tag }}@sha256:{{ .sha }}" + {{- else }} + image: "{{ $.Values.global.imageRegistry | default .registry}}/{{ .repository }}:{{ .tag }}" + {{- end }} + {{- end }} + imagePullPolicy: {{ .Values.permissionInitContainer.image.pullPolicy }} + securityContext: + {{- toYaml .Values.permissionInitContainer.securityContext | nindent 12 }} + command: + - /bin/sh + - -c + - | + {{- if $fixes.rapl }} + powercap_path="/host/sys/devices/virtual/powercap" + if [ -d "$powercap_path" ]; then + find "$powercap_path" -name energy_uj -exec chown root:{{ .Values.securityContext.runAsGroup }} {} + -exec chmod g+r -R {} + + fi + {{- end }} + {{- if $fixes.slabinfo }} + slabinfo_path="/host/proc/slabinfo" + if [ -f "$slabinfo_path" ]; then + chown root:{{ .Values.securityContext.runAsGroup }} "$slabinfo_path" && chmod g+r "$slabinfo_path" + fi + {{- end }} + {{- range .Values.permissionInitContainer.extraCommands }} + {{ . }} + {{- end }} + volumeMounts: + {{- if $fixes.rapl }} + - name: sys + mountPath: /host/sys + readOnly: false + {{- end }} + {{- if $fixes.slabinfo }} + - name: proc + mountPath: /host/proc + readOnly: false + {{- end }} + {{- end }} {{- end }} serviceAccountName: {{ include "prometheus-node-exporter.serviceAccountName" . }} {{- with .Values.terminationGracePeriodSeconds }} diff --git a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml index 1bf81846a5..c58ee4e687 100644 --- a/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml +++ b/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml @@ -45,7 +45,7 @@ kubeRBACProxy: image: registry: quay.io repository: brancz/kube-rbac-proxy - tag: v0.20.2 + tag: v0.21.2 sha: "" pullPolicy: IfNotPresent @@ -543,6 +543,28 @@ sidecarHostVolumeMounts: [] ## extraInitContainers: [] +## Additional InitContainer to fix hostfile permissions required for some exporters. All fixes are disabled by default. +## +permissionInitContainer: + image: + registry: quay.io + repository: prometheus/busybox + tag: latest + sha: "" + pullPolicy: IfNotPresent + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + fixes: + # Fixes /sys/devices/virtual/powercap/*/energy_uj + # Collector enabled by default + rapl: false + # Fixes /proc/slabinfo + # Collector disabled by default + slabinfo: false + extraCommands: [] + ## Liveness probe ## livenessProbe: diff --git a/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml b/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml index c3f5051373..8ee580fa33 100644 --- a/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml +++ b/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 0.31.3 +appVersion: 0.31.6 description: A Helm chart for prometheus windows-exporter home: https://github.com/prometheus-community/windows_exporter/ icon: https://raw.githubusercontent.com/cncf/artwork/master/prometheus/icon/color/prometheus-icon-color.svg @@ -16,4 +16,4 @@ name: prometheus-windows-exporter sources: - https://github.com/prometheus-community/windows_exporter/ type: application -version: 0.12.3 +version: 0.12.6 diff --git a/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml b/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml index a9c12e4ed6..791db3480e 100644 --- a/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml +++ b/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml @@ -100,6 +100,9 @@ spec: securityContext: {{ toYaml .Values.alertmanager.alertmanagerSpec.securityContext | indent 4 }} {{- end }} +{{- if kindIs "bool" .Values.alertmanager.alertmanagerSpec.hostUsers }} + hostUsers: {{ .Values.alertmanager.alertmanagerSpec.hostUsers }} +{{- end }} {{- if .Values.alertmanager.alertmanagerSpec.dnsConfig }} dnsConfig: {{ toYaml .Values.alertmanager.alertmanagerSpec.dnsConfig | indent 4 }} @@ -201,6 +204,17 @@ spec: {{- if .Values.alertmanager.alertmanagerSpec.minReadySeconds }} minReadySeconds: {{ .Values.alertmanager.alertmanagerSpec.minReadySeconds }} {{- end }} +{{- if .Values.alertmanager.alertmanagerSpec.podManagementPolicy }} + podManagementPolicy: {{ .Values.alertmanager.alertmanagerSpec.podManagementPolicy }} +{{- end }} +{{- if .Values.alertmanager.alertmanagerSpec.updateStrategy }} + updateStrategy: +{{ toYaml .Values.alertmanager.alertmanagerSpec.updateStrategy | indent 4 }} +{{- end }} + hostNetwork: {{ .Values.alertmanager.alertmanagerSpec.hostNetwork }} +{{- if .Values.alertmanager.alertmanagerSpec.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.alertmanager.alertmanagerSpec.terminationGracePeriodSeconds }} +{{- end }} {{- with .Values.alertmanager.alertmanagerSpec.additionalConfig }} {{- tpl (toYaml .) $ | nindent 2 }} {{- end }} diff --git a/charts/kube-prometheus-stack/templates/alertmanager/podDisruptionBudget.yaml b/charts/kube-prometheus-stack/templates/alertmanager/podDisruptionBudget.yaml index 5df7d9b928..e136f88787 100644 --- a/charts/kube-prometheus-stack/templates/alertmanager/podDisruptionBudget.yaml +++ b/charts/kube-prometheus-stack/templates/alertmanager/podDisruptionBudget.yaml @@ -8,12 +8,7 @@ metadata: app: {{ template "kube-prometheus-stack.name" . }}-alertmanager {{ include "kube-prometheus-stack.labels" . | indent 4 }} spec: - {{- if .Values.alertmanager.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.alertmanager.podDisruptionBudget.minAvailable }} - {{- end }} - {{- if .Values.alertmanager.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.alertmanager.podDisruptionBudget.maxUnavailable }} - {{- end }} +{{- toYaml (omit .Values.alertmanager.podDisruptionBudget "enabled") | nindent 2 }} selector: matchLabels: app.kubernetes.io/name: alertmanager diff --git a/charts/kube-prometheus-stack/templates/alertmanager/route.yaml b/charts/kube-prometheus-stack/templates/alertmanager/route.yaml index 167c058a74..2426822ee1 100644 --- a/charts/kube-prometheus-stack/templates/alertmanager/route.yaml +++ b/charts/kube-prometheus-stack/templates/alertmanager/route.yaml @@ -40,7 +40,10 @@ spec: statusCode: 301 {{- else }} - backendRefs: - - name: {{ $serviceName }} + - group: "" + kind: Service + weight: 1 + name: {{ $serviceName }} port: {{ $servicePort }} {{- with $route.filters }} filters: diff --git a/charts/kube-prometheus-stack/templates/alertmanager/verticalpodautoscaler.yaml b/charts/kube-prometheus-stack/templates/alertmanager/verticalpodautoscaler.yaml new file mode 100644 index 0000000000..60c665a5a4 --- /dev/null +++ b/charts/kube-prometheus-stack/templates/alertmanager/verticalpodautoscaler.yaml @@ -0,0 +1,41 @@ +{{- if and .Values.alertmanager.enabled .Values.alertmanager.verticalPodAutoscaler.enabled }} +apiVersion: autoscaling.k8s.io/v1 +kind: VerticalPodAutoscaler +metadata: + name: {{ template "kube-prometheus-stack.fullname" . }}-alertmanager + namespace: {{ template "kube-prometheus-stack-alertmanager.namespace" . }} + labels: + app: {{ template "kube-prometheus-stack.name" . }}-alertmanager + {{- include "kube-prometheus-stack.labels" . | nindent 4 }} +spec: + {{- with .Values.alertmanager.verticalPodAutoscaler.recommenders }} + recommenders: + {{- toYaml . | nindent 4 }} + {{- end }} + resourcePolicy: + containerPolicies: + - containerName: alertmanager + {{- with .Values.alertmanager.verticalPodAutoscaler.controlledResources }} + controlledResources: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.alertmanager.verticalPodAutoscaler.controlledValues }} + controlledValues: {{ .Values.alertmanager.verticalPodAutoscaler.controlledValues }} + {{- end }} + {{- if .Values.alertmanager.verticalPodAutoscaler.maxAllowed }} + maxAllowed: + {{- toYaml .Values.alertmanager.verticalPodAutoscaler.maxAllowed | nindent 8 }} + {{- end }} + {{- if .Values.alertmanager.verticalPodAutoscaler.minAllowed }} + minAllowed: + {{- toYaml .Values.alertmanager.verticalPodAutoscaler.minAllowed | nindent 8 }} + {{- end }} + targetRef: + apiVersion: monitoring.coreos.com/v1 + kind: Alertmanager + name: {{ template "kube-prometheus-stack.alertmanager.crname" . }} + {{- with .Values.alertmanager.verticalPodAutoscaler.updatePolicy }} + updatePolicy: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/alertmanager-overview.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/alertmanager-overview.yaml index 1c60620044..4b81d6cdf5 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/alertmanager-overview.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/alertmanager-overview.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'alertmanager-overview' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'alertmanager-overview' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/apiserver.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/apiserver.yaml index a356397e1c..01b7e35a75 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/apiserver.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/apiserver.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'apiserver' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'apiserver' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/cluster-total.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/cluster-total.yaml index 8f3f715774..dfc1fe9699 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/cluster-total.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/cluster-total.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'cluster-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'cluster-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/controller-manager.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/controller-manager.yaml index fb7e5aa229..3bdddb6aaf 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/controller-manager.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/controller-manager.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'controller-manager' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'controller-manager' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/grafana-overview.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/grafana-overview.yaml index 25925df045..31296665ff 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/grafana-overview.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/grafana-overview.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'grafana-overview' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'grafana-overview' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-cluster.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-cluster.yaml index 976a244d17..8aae688c6f 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-cluster.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-cluster.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-cluster' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-cluster' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-multicluster.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-multicluster.yaml index e476a2f8fd..abcd7bf205 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-multicluster.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-multicluster.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-multicluster' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-multicluster' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-namespace.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-namespace.yaml index e24cc6aeed..ad5b1b2854 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-namespace.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-namespace.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-namespace' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-namespace' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-node.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-node.yaml index 95688b9ac3..163e8a56a1 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-node.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-node.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-node' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-node' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-pod.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-pod.yaml index 21f417edf1..3e427a4c72 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-pod.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-pod.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-pod' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-pod' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workload.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workload.yaml index 7d47319362..542accdaf4 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workload.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workload.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-workload' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-workload' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workloads-namespace.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workloads-namespace.yaml index 7e6d8a084a..8b61e27a66 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workloads-namespace.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/k8s-resources-workloads-namespace.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'k8s-resources-workloads-namespace' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'k8s-resources-workloads-namespace' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/kubelet.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/kubelet.yaml index 2ad153669e..322b92f008 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/kubelet.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/kubelet.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'kubelet' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'kubelet' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-pod.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-pod.yaml index 272e329e7c..a02d94a872 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-pod.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-pod.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'namespace-by-pod' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'namespace-by-pod' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-workload.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-workload.yaml index 30dd35fa17..4d94d1b3aa 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-workload.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/namespace-by-workload.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'namespace-by-workload' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'namespace-by-workload' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-cluster-rsrc-use.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-cluster-rsrc-use.yaml index 8ea86923b1..daa979e255 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-cluster-rsrc-use.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-cluster-rsrc-use.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'node-cluster-rsrc-use' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'node-cluster-rsrc-use' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-rsrc-use.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-rsrc-use.yaml index 6e1d9c96de..d8c98e739e 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-rsrc-use.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/node-rsrc-use.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'node-rsrc-use' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'node-rsrc-use' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} @@ -20,7 +20,7 @@ metadata: {{- include "kube-prometheus-stack.labels" $ | nindent 4 }} data: node-rsrc-use.json: |- - {{`{"graphTooltip":1,"panels":[{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":1,"panels":[],"title":"CPU","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":1},"id":2,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_cpu_utilisation:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Utilisation"}],"title":"CPU Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":12,"y":1},"id":3,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_load1_per_cpu:ratio{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Saturation"}],"title":"CPU Saturation (Load1 per CPU)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":8},"id":4,"panels":[],"title":"Memory","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":9},"id":5,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_memory_utilisation:ratio{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Utilisation"}],"title":"Memory Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"rds"}},"gridPos":{"h":7,"w":12,"x":12,"y":9},"id":6,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_vmstat_pgmajfault:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Major page Faults"}],"title":"Memory Saturation (Major Page Faults)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":16},"id":7,"panels":[],"title":"Network","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"Bps"},"overrides":[{"matcher":{"id":"byRegexp","options":"/Transmit/"},"properties":[{"id":"custom.transform","value":"negative-Y"}]}]},"gridPos":{"h":7,"w":12,"x":0,"y":17},"id":8,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_receive_bytes_excluding_lo:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Receive"},{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_transmit_bytes_excluding_lo:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Transmit"}],"title":"Network Utilisation (Bytes Receive/Transmit)","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"Bps"},"overrides":[{"matcher":{"id":"byRegexp","options":"/Transmit/"},"properties":[{"id":"custom.transform","value":"negative-Y"}]}]},"gridPos":{"h":7,"w":12,"x":12,"y":17},"id":9,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_receive_drop_excluding_lo:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Receive"},{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_transmit_drop_excluding_lo:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Transmit"}],"title":"Network Saturation (Drops Receive/Transmit)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":24},"id":10,"panels":[],"title":"Disk IO","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":25},"id":11,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance_device:node_disk_io_time_seconds:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"{{device}}"}],"title":"Disk IO Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":12,"y":25},"id":12,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance_device:node_disk_io_time_weighted_seconds:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"{{device}}"}],"title":"Disk IO Saturation","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":34},"id":13,"panels":[],"title":"Disk Space","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":24,"x":0,"y":35},"id":14,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"sort_desc(1 -\n (\n max without (mountpoint, fstype) (node_filesystem_avail_bytes{job=\"node-exporter\", fstype!=\"\", instance=\"$instance\", cluster=~\"$cluster\"})\n /\n max without (mountpoint, fstype) (node_filesystem_size_bytes{job=\"node-exporter\", fstype!=\"\", instance=\"$instance\", cluster=~\"$cluster\"})\n ) != 0\n)\n","legendFormat":"{{device}}"}],"title":"Disk Space Utilisation","type":"timeseries"}],"refresh":"30s","schemaVersion":39,"tags":["node-exporter-mixin"],"templating":{"list":[{"name":"datasource","query":"prometheus","type":"datasource"},{"allValue":".*","datasource":{"type":"prometheus","uid":"${datasource}"},"hide":`}}{{ if .Values.grafana.sidecar.dashboards.multicluster.global.enabled }}0{{ else }}2{{ end }}{{`,"includeAll":true,"name":"cluster","query":"label_values(node_time_seconds, cluster)","refresh":2,"sort":1,"type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"name":"instance","query":"label_values(node_exporter_build_info{job=\"node-exporter\", cluster=~\"$cluster\"}, instance)","refresh":2,"sort":1,"type":"query"}]},"time":{"from":"now-1h","to":"now"},"timezone": "`}}{{ .Values.grafana.defaultDashboardsTimezone }}{{`","title":"Node Exporter / USE Method / Node","uid":"fac67cfbe174d3ef53eb473d73d9212f"}`}} + {{`{"graphTooltip":1,"panels":[{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":1,"panels":[],"title":"CPU","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":1},"id":2,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_cpu_utilisation:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Utilisation"}],"title":"CPU Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":12,"y":1},"id":3,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_load1_per_cpu:ratio{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Saturation"}],"title":"CPU Saturation (Load1 per CPU)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":8},"id":4,"panels":[],"title":"Memory","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":9},"id":5,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_memory_utilisation:ratio{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Utilisation"}],"title":"Memory Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"rds"}},"gridPos":{"h":7,"w":12,"x":12,"y":9},"id":6,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_vmstat_pgmajfault:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Major page Faults"}],"title":"Memory Saturation (Major Page Faults)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":16},"id":7,"panels":[],"title":"Network","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"Bps"},"overrides":[{"matcher":{"id":"byRegexp","options":"/Transmit/"},"properties":[{"id":"custom.transform","value":"negative-Y"}]}]},"gridPos":{"h":7,"w":12,"x":0,"y":17},"id":8,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_receive_bytes_physical:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Receive"},{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_transmit_bytes_physical:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Transmit"}],"title":"Network Utilisation (Bytes Receive/Transmit)","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"Bps"},"overrides":[{"matcher":{"id":"byRegexp","options":"/Transmit/"},"properties":[{"id":"custom.transform","value":"negative-Y"}]}]},"gridPos":{"h":7,"w":12,"x":12,"y":17},"id":9,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_receive_drop_physical:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Receive"},{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance:node_network_transmit_drop_physical:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"Transmit"}],"title":"Network Saturation (Drops Receive/Transmit)","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":24},"id":10,"panels":[],"title":"Disk IO","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":0,"y":25},"id":11,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance_device:node_disk_io_time_seconds:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"{{device}}"}],"title":"Disk IO Utilisation","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":12,"x":12,"y":25},"id":12,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"instance_device:node_disk_io_time_weighted_seconds:rate5m{job=\"node-exporter\", instance=\"$instance\", cluster=~\"$cluster\"} != 0","legendFormat":"{{device}}"}],"title":"Disk IO Saturation","type":"timeseries"},{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":34},"id":13,"panels":[],"title":"Disk Space","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"defaults":{"custom":{"fillOpacity":100,"showPoints":"never","stacking":{"mode":"normal"}},"unit":"percentunit"}},"gridPos":{"h":7,"w":24,"x":0,"y":35},"id":14,"options":{"legend":{"showLegend":false},"tooltip":{"mode":"multi","sort":"desc"}},"pluginVersion":"v11.4.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"sort_desc(1 -\n (\n max without (mountpoint, fstype) (node_filesystem_avail_bytes{job=\"node-exporter\", fstype!=\"\", instance=\"$instance\", cluster=~\"$cluster\"})\n /\n max without (mountpoint, fstype) (node_filesystem_size_bytes{job=\"node-exporter\", fstype!=\"\", instance=\"$instance\", cluster=~\"$cluster\"})\n ) != 0\n)\n","legendFormat":"{{device}}"}],"title":"Disk Space Utilisation","type":"timeseries"}],"refresh":"30s","schemaVersion":39,"tags":["node-exporter-mixin"],"templating":{"list":[{"name":"datasource","query":"prometheus","type":"datasource"},{"allValue":".*","datasource":{"type":"prometheus","uid":"${datasource}"},"hide":`}}{{ if .Values.grafana.sidecar.dashboards.multicluster.global.enabled }}0{{ else }}2{{ end }}{{`,"includeAll":true,"name":"cluster","query":"label_values(node_time_seconds, cluster)","refresh":2,"sort":1,"type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"name":"instance","query":"label_values(node_exporter_build_info{job=\"node-exporter\", cluster=~\"$cluster\"}, instance)","refresh":2,"sort":1,"type":"query"}]},"time":{"from":"now-1h","to":"now"},"timezone": "`}}{{ .Values.grafana.defaultDashboardsTimezone }}{{`","title":"Node Exporter / USE Method / Node","uid":"fac67cfbe174d3ef53eb473d73d9212f"}`}} {{- end }} --- {{- if and .Values.grafana.operator.dashboardsConfigMapRefEnabled (or .Values.grafana.enabled .Values.grafana.forceDeployDashboards) (semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" $kubeTargetVersion) .Values.grafana.defaultDashboardsEnabled (or .Values.nodeExporter.enabled .Values.nodeExporter.forceDeployDashboards) }} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-aix.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-aix.yaml index e4e2e68ce6..98982bd00a 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-aix.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-aix.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'nodes-aix' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'nodes-aix' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-darwin.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-darwin.yaml index 70539f44b2..6abc654380 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-darwin.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes-darwin.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'nodes-darwin' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'nodes-darwin' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes.yaml index 87080c7a90..5b54ac8a84 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/nodes.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'nodes' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'nodes' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/persistentvolumesusage.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/persistentvolumesusage.yaml index 163a428bbe..eb52131bff 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/persistentvolumesusage.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/persistentvolumesusage.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'persistentvolumesusage' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'persistentvolumesusage' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/pod-total.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/pod-total.yaml index 9898eba6d2..035a7cc24c 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/pod-total.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/pod-total.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'pod-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'pod-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus-remote-write.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus-remote-write.yaml index 9c64bb96e7..160a76b857 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus-remote-write.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus-remote-write.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'prometheus-remote-write' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'prometheus-remote-write' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus.yaml index bda0ddf384..6457f76200 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/prometheus.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'prometheus' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'prometheus' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/proxy.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/proxy.yaml index 3da837745a..0b444e2e8e 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/proxy.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/proxy.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'proxy' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'proxy' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/scheduler.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/scheduler.yaml index 0e971d430d..eb66a0684a 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/scheduler.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/scheduler.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'scheduler' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'scheduler' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/workload-total.yaml b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/workload-total.yaml index 00f9e86146..65c20399a1 100644 --- a/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/workload-total.yaml +++ b/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/workload-total.yaml @@ -1,5 +1,5 @@ {{- /* -Generated from 'workload-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/110c59d94ccff6f3e894c55247df6c218ef6cd7a/manifests/grafana-dashboardDefinitions.yaml +Generated from 'workload-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/3425561cdfea89a8ea65194c56dfcd81b2e84afd/manifests/grafana-dashboardDefinitions.yaml Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} diff --git a/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml b/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml index 3874c2f855..c02aed688a 100644 --- a/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml @@ -1,3 +1,4 @@ +{{/* This file is based on https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/rbac.md */}} {{- if and .Values.prometheusOperator.enabled .Values.global.rbac.create }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole diff --git a/charts/kube-prometheus-stack/templates/prometheus/ciliumnetworkpolicy.yaml b/charts/kube-prometheus-stack/templates/prometheus/ciliumnetworkpolicy.yaml index c7df6c0df7..58f02d1443 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/ciliumnetworkpolicy.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/ciliumnetworkpolicy.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.prometheus.networkPolicy.enabled (eq .Values.prometheus.networkPolicy.flavor "cilium") }} +{{- if and .Values.prometheus.networkPolicy.enabled (eq .Values.prometheus.networkPolicy.flavor "cilium") .Values.prometheus.networkPolicy.cilium }} apiVersion: cilium.io/v2 kind: CiliumNetworkPolicy metadata: @@ -15,11 +15,11 @@ spec: matchExpressions: {{- include "kube-prometheus-stack.prometheus.pod-anti-affinity.matchExpressions" . | indent 6 }} {{- end }} - {{- if and .Values.prometheus.networkPolicy.cilium .Values.prometheus.networkPolicy.cilium.egress }} + {{- if .Values.prometheus.networkPolicy.cilium.egress }} egress: {{ toYaml .Values.prometheus.networkPolicy.cilium.egress | nindent 4 }} {{- end }} - {{- if and .Values.prometheus.networkPolicy.cilium .Values.prometheus.networkPolicy.cilium.ingress }} + {{- if .Values.prometheus.networkPolicy.cilium.ingress }} ingress: {{ toYaml .Values.prometheus.networkPolicy.cilium.ingress | nindent 4 }} {{- end }} diff --git a/charts/kube-prometheus-stack/templates/prometheus/podDisruptionBudget.yaml b/charts/kube-prometheus-stack/templates/prometheus/podDisruptionBudget.yaml index f165f84844..45e02e0e4e 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/podDisruptionBudget.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/podDisruptionBudget.yaml @@ -8,12 +8,7 @@ metadata: app: {{ template "kube-prometheus-stack.name" . }}-prometheus {{ include "kube-prometheus-stack.labels" . | indent 4 }} spec: - {{- if .Values.prometheus.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.prometheus.podDisruptionBudget.minAvailable }} - {{- end }} - {{- if .Values.prometheus.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.prometheus.podDisruptionBudget.maxUnavailable }} - {{- end }} +{{- toYaml (omit .Values.prometheus.podDisruptionBudget "enabled") | nindent 2 }} selector: matchLabels: {{- if .Values.prometheus.agentMode }} diff --git a/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml b/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml index 1514d7f2df..9318d80c5e 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml @@ -464,7 +464,11 @@ spec: name: "{{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) . | trunc 63 | trimSuffix "-" }}" {{- end }} {{- if .Values.prometheus.prometheusSpec.excludedFromEnforcement }} + {{- if kindIs "string" .Values.prometheus.prometheusSpec.excludedFromEnforcement }} +{{ tpl .Values.prometheus.prometheusSpec.excludedFromEnforcement . | indent 4 }} + {{- else }} {{ tpl (toYaml .Values.prometheus.prometheusSpec.excludedFromEnforcement | indent 4) . }} + {{- end }} {{- end }} {{- end }} {{- if and (not .Values.prometheus.agentMode) .Values.prometheus.prometheusSpec.queryLogFile }} @@ -500,10 +504,23 @@ spec: {{- if .Values.prometheus.prometheusSpec.minReadySeconds }} minReadySeconds: {{ .Values.prometheus.prometheusSpec.minReadySeconds }} {{- end }} +{{- if .Values.prometheus.prometheusSpec.podManagementPolicy }} + podManagementPolicy: {{ .Values.prometheus.prometheusSpec.podManagementPolicy }} +{{- end }} +{{- if .Values.prometheus.prometheusSpec.updateStrategy }} + updateStrategy: +{{ toYaml .Values.prometheus.prometheusSpec.updateStrategy | indent 4 }} +{{- end }} +{{- if .Values.prometheus.prometheusSpec.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.prometheus.prometheusSpec.terminationGracePeriodSeconds }} +{{- end }} {{- if .Values.prometheus.prometheusSpec.maximumStartupDurationSeconds }} maximumStartupDurationSeconds: {{ .Values.prometheus.prometheusSpec.maximumStartupDurationSeconds }} {{- end }} hostNetwork: {{ .Values.prometheus.prometheusSpec.hostNetwork }} +{{- if kindIs "bool" .Values.prometheus.prometheusSpec.hostUsers }} + hostUsers: {{ .Values.prometheus.prometheusSpec.hostUsers }} +{{- end }} {{- if .Values.prometheus.prometheusSpec.hostAliases }} hostAliases: {{ toYaml .Values.prometheus.prometheusSpec.hostAliases | indent 4 }} diff --git a/charts/kube-prometheus-stack/templates/prometheus/route.yaml b/charts/kube-prometheus-stack/templates/prometheus/route.yaml index 6a22d3d73b..49a1fee93b 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/route.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/route.yaml @@ -40,7 +40,10 @@ spec: statusCode: 301 {{- else }} - backendRefs: - - name: {{ $serviceName }} + - group: "" + kind: Service + weight: 1 + name: {{ $serviceName }} port: {{ $servicePort }} {{- with $route.filters }} filters: diff --git a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/general.rules.yaml b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/general.rules.yaml index 7e351134d8..e6d687068f 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/general.rules.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/general.rules.yaml @@ -110,7 +110,7 @@ spec: ' runbook_url: {{ .Values.defaultRules.runbookUrl }}/general/infoinhibitor summary: Info-level alert inhibition. - expr: ALERTS{severity = "info"} == 1 unless on ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}namespace) ALERTS{alertname != "InfoInhibitor", severity =~ "warning|critical", alertstate="firing"} == 1 + expr: group by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}namespace) (ALERTS{severity = "info"} == 1) unless on ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}namespace) group by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}namespace) (ALERTS{alertname != "InfoInhibitor", alertstate = "firing", severity =~ "warning|critical"} == 1) labels: severity: {{ dig "InfoInhibitor" "severity" "none" .Values.customRules }} {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.general }} diff --git a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-apps.yaml b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-apps.yaml index 05bf4a0947..0a988c9d51 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-apps.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-apps.yaml @@ -547,9 +547,16 @@ spec: runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubehpamaxedout summary: HPA is running at max replicas expr: |- - kube_horizontalpodautoscaler_status_current_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} - == - kube_horizontalpodautoscaler_spec_max_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} + ( + kube_horizontalpodautoscaler_status_current_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} + == + kube_horizontalpodautoscaler_spec_max_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} + ) + and on ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}namespace, horizontalpodautoscaler) ( + kube_horizontalpodautoscaler_spec_max_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} + != + kube_horizontalpodautoscaler_spec_min_replicas{job="{{ $kubeStateMetricsJob }}", namespace{{ $namespaceOperator }}"{{ $targetNamespace }}"} + ) for: {{ dig "KubeHpaMaxedOut" "for" "15m" .Values.customRules }} {{- with .Values.defaultRules.keepFiringFor }} keep_firing_for: "{{ . }}" diff --git a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-system-kubelet.yaml b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-system-kubelet.yaml index f3b5e1d970..6c93b8dceb 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-system-kubelet.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-system-kubelet.yaml @@ -452,10 +452,13 @@ spec: {{- if .Values.defaultRules.additionalRuleGroupAnnotations.kubernetesSystem }} {{ toYaml .Values.defaultRules.additionalRuleGroupAnnotations.kubernetesSystem | indent 8 }} {{- end }} - description: Kubelet has disappeared from Prometheus target discovery. + description: Kubelet has disappeared from Prometheus target discovery on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubeletdown summary: Target disappeared from Prometheus target discovery. - expr: absent(up{job="{{ $kubeletJob }}", metrics_path="/metrics"}) + expr: |- + count by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster) (kube_node_info{job="{{ $kubeStateMetricsJob }}"}) + unless on ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster) + count by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster) (up{job="{{ $kubeletJob }}", metrics_path="/metrics"} == 1) for: {{ dig "KubeletDown" "for" "15m" .Values.customRules }} {{- with .Values.defaultRules.keepFiringFor }} keep_firing_for: "{{ . }}" diff --git a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.rules.yaml b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.rules.yaml index aeaa80231c..58cd220400 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.rules.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.rules.yaml @@ -185,4 +185,60 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} {{- end }} + - expr: |- + sum without (device) ( + rate(node_network_receive_bytes_total{job="node-exporter", device!~"lo|veth.+"}[5m]) + ) + record: instance:node_network_receive_bytes_physical:rate5m + {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + labels: + {{- with .Values.defaultRules.additionalRuleLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- end }} + - expr: |- + sum without (device) ( + rate(node_network_transmit_bytes_total{job="node-exporter", device!~"lo|veth.+"}[5m]) + ) + record: instance:node_network_transmit_bytes_physical:rate5m + {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + labels: + {{- with .Values.defaultRules.additionalRuleLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- end }} + - expr: |- + sum without (device) ( + rate(node_network_receive_drop_total{job="node-exporter", device!~"lo|veth.+"}[5m]) + ) + record: instance:node_network_receive_drop_physical:rate5m + {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + labels: + {{- with .Values.defaultRules.additionalRuleLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- end }} + - expr: |- + sum without (device) ( + rate(node_network_transmit_drop_total{job="node-exporter", device!~"lo|veth.+"}[5m]) + ) + record: instance:node_network_transmit_drop_physical:rate5m + {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + labels: + {{- with .Values.defaultRules.additionalRuleLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.defaultRules.additionalRuleGroupLabels.nodeExporterRecording }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/charts/kube-prometheus-stack/templates/prometheus/service.yaml b/charts/kube-prometheus-stack/templates/prometheus/service.yaml index 5eace9cefd..60bb39214f 100644 --- a/charts/kube-prometheus-stack/templates/prometheus/service.yaml +++ b/charts/kube-prometheus-stack/templates/prometheus/service.yaml @@ -52,6 +52,9 @@ spec: {{- if semverCompare "> 1.20.0-0" $kubeTargetVersion }} appProtocol: http {{- end }} + {{- if and (eq .Values.prometheus.service.type "NodePort") (not (empty .Values.prometheus.service.reloaderWebNodePort)) }} + nodePort: {{ .Values.prometheus.service.reloaderWebNodePort }} + {{- end }} port: {{ .Values.prometheus.service.reloaderWebPort }} targetPort: reloader-web {{- end }} diff --git a/charts/kube-prometheus-stack/templates/prometheus/verticalpodautoscaler.yaml b/charts/kube-prometheus-stack/templates/prometheus/verticalpodautoscaler.yaml new file mode 100644 index 0000000000..ec35eec7a9 --- /dev/null +++ b/charts/kube-prometheus-stack/templates/prometheus/verticalpodautoscaler.yaml @@ -0,0 +1,46 @@ +{{- if and .Values.prometheus.enabled .Values.prometheus.verticalPodAutoscaler.enabled }} +apiVersion: autoscaling.k8s.io/v1 +kind: VerticalPodAutoscaler +metadata: + name: {{ template "kube-prometheus-stack.fullname" . }}-prometheus + namespace: {{ template "kube-prometheus-stack.namespace" . }} + labels: + app: {{ template "kube-prometheus-stack.name" . }}-prometheus + {{- include "kube-prometheus-stack.labels" . | nindent 4 }} +spec: + {{- with .Values.prometheus.verticalPodAutoscaler.recommenders }} + recommenders: + {{- toYaml . | nindent 4 }} + {{- end }} + resourcePolicy: + containerPolicies: + - containerName: prometheus + {{- with .Values.prometheus.verticalPodAutoscaler.controlledResources }} + controlledResources: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.prometheus.verticalPodAutoscaler.controlledValues }} + controlledValues: {{ .Values.prometheus.verticalPodAutoscaler.controlledValues }} + {{- end }} + {{- if .Values.prometheus.verticalPodAutoscaler.maxAllowed }} + maxAllowed: + {{- toYaml .Values.prometheus.verticalPodAutoscaler.maxAllowed | nindent 8 }} + {{- end }} + {{- if .Values.prometheus.verticalPodAutoscaler.minAllowed }} + minAllowed: + {{- toYaml .Values.prometheus.verticalPodAutoscaler.minAllowed | nindent 8 }} + {{- end }} + targetRef: + {{- if .Values.prometheus.agentMode }} + apiVersion: monitoring.coreos.com/v1alpha1 + kind: PrometheusAgent + {{- else }} + apiVersion: monitoring.coreos.com/v1 + kind: Prometheus + {{- end }} + name: {{ template "kube-prometheus-stack.prometheus.crname" . }} + {{- with .Values.prometheus.verticalPodAutoscaler.updatePolicy }} + updatePolicy: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/kube-prometheus-stack/templates/thanos-ruler/podDisruptionBudget.yaml b/charts/kube-prometheus-stack/templates/thanos-ruler/podDisruptionBudget.yaml index 4fe0e0482a..0b42c2c711 100644 --- a/charts/kube-prometheus-stack/templates/thanos-ruler/podDisruptionBudget.yaml +++ b/charts/kube-prometheus-stack/templates/thanos-ruler/podDisruptionBudget.yaml @@ -8,12 +8,7 @@ metadata: app: {{ template "kube-prometheus-stack.thanosRuler.name" . }} {{ include "kube-prometheus-stack.labels" . | indent 4 }} spec: - {{- if .Values.thanosRuler.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.thanosRuler.podDisruptionBudget.minAvailable }} - {{- end }} - {{- if .Values.thanosRuler.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.thanosRuler.podDisruptionBudget.maxUnavailable }} - {{- end }} +{{- toYaml (omit .Values.thanosRuler.podDisruptionBudget "enabled") | nindent 2 }} selector: matchLabels: app.kubernetes.io/name: thanos-ruler diff --git a/charts/kube-prometheus-stack/templates/thanos-ruler/route.yaml b/charts/kube-prometheus-stack/templates/thanos-ruler/route.yaml index d7999f4c0f..3038df3ffc 100644 --- a/charts/kube-prometheus-stack/templates/thanos-ruler/route.yaml +++ b/charts/kube-prometheus-stack/templates/thanos-ruler/route.yaml @@ -40,7 +40,10 @@ spec: statusCode: 301 {{- else }} - backendRefs: - - name: {{ $serviceName }} + - group: "" + kind: Service + weight: 1 + name: {{ $serviceName }} port: {{ $servicePort }} {{- with $route.filters }} filters: diff --git a/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml b/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml index b857dc69d9..8c7d9c8213 100644 --- a/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml +++ b/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml @@ -107,6 +107,9 @@ spec: {{- if .Values.thanosRuler.thanosRulerSpec.routePrefix }} routePrefix: "{{ .Values.thanosRuler.thanosRulerSpec.routePrefix }}" {{- end }} +{{- if kindIs "bool" .Values.thanosRuler.thanosRulerSpec.hostUsers }} + hostUsers: {{ .Values.thanosRuler.thanosRulerSpec.hostUsers }} +{{- end }} {{- if .Values.thanosRuler.thanosRulerSpec.securityContext }} securityContext: {{ toYaml .Values.thanosRuler.thanosRulerSpec.securityContext | indent 4 }} @@ -193,6 +196,16 @@ spec: {{ toYaml .Values.thanosRuler.thanosRulerSpec.alertDropLabels | indent 4 }} {{- end }} portName: {{ .Values.thanosRuler.thanosRulerSpec.portName }} +{{- if .Values.thanosRuler.thanosRulerSpec.podManagementPolicy }} + podManagementPolicy: {{ .Values.thanosRuler.thanosRulerSpec.podManagementPolicy }} +{{- end }} +{{- if .Values.thanosRuler.thanosRulerSpec.updateStrategy }} + updateStrategy: +{{ toYaml .Values.thanosRuler.thanosRulerSpec.updateStrategy | indent 4 }} +{{- end }} +{{- if .Values.thanosRuler.thanosRulerSpec.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.thanosRuler.thanosRulerSpec.terminationGracePeriodSeconds }} +{{- end }} {{- with .Values.thanosRuler.thanosRulerSpec.additionalConfig }} {{- tpl (toYaml .) $ | nindent 2 }} {{- end }} diff --git a/charts/kube-prometheus-stack/values.yaml b/charts/kube-prometheus-stack/values.yaml index f3fb35f916..25e16d633d 100644 --- a/charts/kube-prometheus-stack/values.yaml +++ b/charts/kube-prometheus-stack/values.yaml @@ -132,6 +132,10 @@ crds: labels: {} automountServiceAccountToken: true + ## Automounting API credentials for upgrade crd job pod. + ## + automountServiceAccountToken: true + ## Container-specific security context configuration ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ ## @@ -501,6 +505,37 @@ alertmanager: # maxUnavailable: "" unhealthyPodEvictionPolicy: AlwaysAllow + ## Enable vertical pod autoscaler support for Alertmanager + ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler + ## + verticalPodAutoscaler: + enabled: false + + # Recommender responsible for generating recommendation for the object. + # List should be empty (then the default recommender will generate the recommendation) + # or contain exactly one recommender. + # recommenders: + # - name: custom-recommender-performance + + # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory + controlledResources: [] + # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits. + # controlledValues: RequestsAndLimits + + # Define the max allowed resources for the pod + maxAllowed: {} + # cpu: 200m + # memory: 100Mi + # Define the min allowed resources for the pod + minAllowed: {} + # cpu: 200m + # memory: 100Mi + + updatePolicy: + # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates + # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate". + updateMode: Recreate + ## Alertmanager configuration directives ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file ## https://prometheus.io/webtools/alerting/routing-tree-editor/ @@ -1119,6 +1154,10 @@ alertmanager: seccompProfile: type: RuntimeDefault + ## Use the host's user namespace for Alertmanager pods. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/ + hostUsers: ~ + ## DNS configuration for Alertmanager. ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig dnsConfig: {} @@ -1127,6 +1166,9 @@ alertmanager: ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias dnsPolicy: "" + ## Enable hostNetwork for Alertmanager. + hostNetwork: false + ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP. ## Note this is only for the Alertmanager UI, not the gossip communication. ## @@ -1137,7 +1179,7 @@ alertmanager: containers: [] # containers: # - name: oauth-proxy - # image: quay.io/oauth2-proxy/oauth2-proxy:v7.14.2 + # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.1 # args: # - --upstream=http://127.0.0.1:9093 # - --http-address=0.0.0.0:8081 @@ -1201,6 +1243,21 @@ alertmanager: ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). minReadySeconds: 0 + ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies + podManagementPolicy: "" + + ## Update strategy for the StatefulSet. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + updateStrategy: {} + # type: RollingUpdate + # rollingUpdate: + # maxUnavailable: 1 + + ## Duration in seconds the pod needs to terminate gracefully. + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination + terminationGracePeriodSeconds: ~ + ## Additional configuration which is not covered by the properties above. (passed through tpl) additionalConfig: {} @@ -1220,7 +1277,7 @@ alertmanager: # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c. -## Using default values from https://github.com/grafana/helm-charts/blob/main/charts/grafana/values.yaml +## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml ## grafana: enabled: true @@ -2934,7 +2991,7 @@ prometheusOperator: image: registry: ghcr.io repository: jkroepke/kube-webhook-certgen - tag: 1.7.7 + tag: 1.8.0 sha: "" pullPolicy: IfNotPresent resources: {} @@ -3320,8 +3377,8 @@ prometheusOperator: # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction # minReplicas: 1 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates - # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto". - updateMode: Auto + # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate". + updateMode: Recreate ## Prometheus-operator image ## @@ -3583,6 +3640,11 @@ prometheus: ## reloaderWebPort: 8080 + ## Port to expose for Prometheus Reloader + ## Only used if service.type is 'NodePort' + ## + reloaderWebNodePort: null + ## List of IP addresses at which the Prometheus server service is available ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips ## @@ -3679,6 +3741,37 @@ prometheus: # maxUnavailable: "" unhealthyPodEvictionPolicy: AlwaysAllow + ## Enable vertical pod autoscaler support for Prometheus + ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler + ## + verticalPodAutoscaler: + enabled: false + + # Recommender responsible for generating recommendation for the object. + # List should be empty (then the default recommender will generate the recommendation) + # or contain exactly one recommender. + # recommenders: + # - name: custom-recommender-performance + + # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory + controlledResources: [] + # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits. + # controlledValues: RequestsAndLimits + + # Define the max allowed resources for the pod + maxAllowed: {} + # cpu: 200m + # memory: 100Mi + # Define the min allowed resources for the pod + minAllowed: {} + # cpu: 200m + # memory: 100Mi + + updatePolicy: + # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates + # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate". + updateMode: Recreate + # Ingress exposes thanos sidecar outside the cluster thanosIngress: enabled: false @@ -4045,7 +4138,7 @@ prometheus: image: registry: quay.io repository: prometheus/prometheus - tag: v3.9.1 + tag: v3.11.1 sha: "" pullPolicy: IfNotPresent @@ -4565,7 +4658,7 @@ prometheus: containers: [] # containers: # - name: oauth-proxy - # image: quay.io/oauth2-proxy/oauth2-proxy:v7.14.2 + # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.1 # args: # - --upstream=http://127.0.0.1:9090 # - --http-address=0.0.0.0:8081 @@ -4675,12 +4768,20 @@ prometheus: ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). minReadySeconds: 0 + ## Duration in seconds the pod needs to terminate gracefully. + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination + terminationGracePeriodSeconds: ~ + # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it. # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically. hostNetwork: false + ## Use the host's user namespace for Prometheus pods. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/ + hostUsers: ~ + # HostAlias holds the mapping between IP and hostnames that will be injected # as an entry in the pod's hosts file. hostAliases: [] @@ -4697,6 +4798,17 @@ prometheus: ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role. serviceDiscoveryRole: "" + ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies + podManagementPolicy: "" + + ## Update strategy for the StatefulSet. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + updateStrategy: {} + # type: RollingUpdate + # rollingUpdate: + # maxUnavailable: 1 + ## Additional configuration which is not covered by the properties above. (passed through tpl) additionalConfig: {} @@ -5392,6 +5504,10 @@ thanosRuler: seccompProfile: type: RuntimeDefault + ## Use the host's user namespace for ThanosRuler pods. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/ + hostUsers: ~ + ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP. ## Note this is only for the ThanosRuler UI, not the gossip communication. ## @@ -5419,10 +5535,25 @@ thanosRuler: ## portName: "web" + ## Duration in seconds the pod needs to terminate gracefully. + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination + terminationGracePeriodSeconds: ~ + ## WebTLSConfig defines the TLS parameters for HTTPS ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec web: {} + ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies + podManagementPolicy: "" + + ## Update strategy for the StatefulSet. + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + updateStrategy: {} + # type: RollingUpdate + # rollingUpdate: + # maxUnavailable: 1 + ## Additional configuration which is not covered by the properties above. (passed through tpl) additionalConfig: {}