From f45dd5c676ab70f453b3f95215c254bf7cfaa422 Mon Sep 17 00:00:00 2001 From: Michael Mattsson Date: Fri, 7 Apr 2023 09:57:46 -0700 Subject: [PATCH] Add HPE storage exporters and CSI driver cleanup Signed-off-by: Michael Mattsson --- assets/hpe/hpe-array-exporter-1.0.1.tgz | Bin 0 -> 6288 bytes assets/hpe/hpe-csi-info-metrics-1.0.1.tgz | Bin 0 -> 5734 bytes charts/hpe/hpe-array-exporter/Chart.yaml | 30 +++ charts/hpe/hpe-array-exporter/README.md | 99 +++++++++ charts/hpe/hpe-array-exporter/app-readme.md | 3 + charts/hpe/hpe-array-exporter/questions.yml | 99 +++++++++ .../hpe-array-exporter/templates/NOTES.txt | 2 + .../hpe-array-exporter/templates/_helpers.tpl | 31 +++ .../templates/hpe-array-exporter.yaml | 116 +++++++++++ .../tests/test-hpe-array-exporter.yaml | 22 ++ .../hpe/hpe-array-exporter/values.schema.json | 190 ++++++++++++++++++ charts/hpe/hpe-array-exporter/values.yaml | 65 ++++++ charts/hpe/hpe-csi-info-metrics/Chart.yaml | 32 +++ charts/hpe/hpe-csi-info-metrics/README.md | 96 +++++++++ charts/hpe/hpe-csi-info-metrics/app-readme.md | 3 + charts/hpe/hpe-csi-info-metrics/questions.yml | 94 +++++++++ .../hpe-csi-info-metrics/templates/NOTES.txt | 2 + .../templates/hpe-csi-info-metrics.yaml | 136 +++++++++++++ .../tests/test-hpe-csi-info-metrics.yaml | 19 ++ .../hpe-csi-info-metrics/values.schema.json | 180 +++++++++++++++++ charts/hpe/hpe-csi-info-metrics/values.yaml | 60 ++++++ index.yaml | 73 +++++++ .../hpe-array-exporter/overlay/app-readme.md | 3 + .../hpe-array-exporter/overlay/questions.yml | 99 +++++++++ packages/hpe/hpe-array-exporter/upstream.yaml | 6 + .../hpe/hpe-csi-driver/overlay/questions.yml | 4 +- packages/hpe/hpe-csi-driver/upstream.yaml | 2 +- .../overlay/app-readme.md | 3 + .../overlay/questions.yml | 94 +++++++++ .../hpe/hpe-csi-info-metrics/upstream.yaml | 7 + 30 files changed, 1567 insertions(+), 3 deletions(-) create mode 100644 assets/hpe/hpe-array-exporter-1.0.1.tgz create mode 100644 assets/hpe/hpe-csi-info-metrics-1.0.1.tgz create mode 100644 charts/hpe/hpe-array-exporter/Chart.yaml create mode 100644 charts/hpe/hpe-array-exporter/README.md create mode 100644 charts/hpe/hpe-array-exporter/app-readme.md create mode 100644 charts/hpe/hpe-array-exporter/questions.yml create mode 100644 charts/hpe/hpe-array-exporter/templates/NOTES.txt create mode 100644 charts/hpe/hpe-array-exporter/templates/_helpers.tpl create mode 100644 charts/hpe/hpe-array-exporter/templates/hpe-array-exporter.yaml create mode 100644 charts/hpe/hpe-array-exporter/templates/tests/test-hpe-array-exporter.yaml create mode 100644 charts/hpe/hpe-array-exporter/values.schema.json create mode 100644 charts/hpe/hpe-array-exporter/values.yaml create mode 100644 charts/hpe/hpe-csi-info-metrics/Chart.yaml create mode 100644 charts/hpe/hpe-csi-info-metrics/README.md create mode 100644 charts/hpe/hpe-csi-info-metrics/app-readme.md create mode 100644 charts/hpe/hpe-csi-info-metrics/questions.yml create mode 100644 charts/hpe/hpe-csi-info-metrics/templates/NOTES.txt create mode 100644 charts/hpe/hpe-csi-info-metrics/templates/hpe-csi-info-metrics.yaml create mode 100644 charts/hpe/hpe-csi-info-metrics/templates/tests/test-hpe-csi-info-metrics.yaml create mode 100644 charts/hpe/hpe-csi-info-metrics/values.schema.json create mode 100644 charts/hpe/hpe-csi-info-metrics/values.yaml create mode 100644 packages/hpe/hpe-array-exporter/overlay/app-readme.md create mode 100644 packages/hpe/hpe-array-exporter/overlay/questions.yml create mode 100644 packages/hpe/hpe-array-exporter/upstream.yaml create mode 100644 packages/hpe/hpe-csi-info-metrics/overlay/app-readme.md create mode 100644 packages/hpe/hpe-csi-info-metrics/overlay/questions.yml create mode 100644 packages/hpe/hpe-csi-info-metrics/upstream.yaml diff --git a/assets/hpe/hpe-array-exporter-1.0.1.tgz b/assets/hpe/hpe-array-exporter-1.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3740f213acfc57f5e170291fdc679b17ea1cc7dd GIT binary patch literal 6288 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 Y^gKOJ&qF`|7XSeN|5}NiQ~-Ja0OPVIwg3PC literal 0 HcmV?d00001 diff --git a/charts/hpe/hpe-array-exporter/Chart.yaml b/charts/hpe/hpe-array-exporter/Chart.yaml new file mode 100644 index 000000000..4983f65ea --- /dev/null +++ b/charts/hpe/hpe-array-exporter/Chart.yaml @@ -0,0 +1,30 @@ +annotations: + artifacthub.io/containsSecurityUpdates: "true" + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://hpe-storage.github.io/array-exporter + artifacthub.io/prerelease: "false" + artifacthub.io/recommendations: | + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-info-metrics + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: HPE Storage Array Exporter for Prometheus + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: hpe-array-exporter +apiVersion: v2 +appVersion: 1.0.1 +description: A Helm chart for installing the HPE Storage Array Exporter for Prometheus +home: https://hpe.com/storage/containers +icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png +keywords: +- HPE +- Storage +- Prometheus +maintainers: +- email: hpe-containers-dev@hpe.com + name: rkumpf +name: hpe-array-exporter +sources: +- https://github.com/hpe-storage/co-deployments +version: 1.0.1 diff --git a/charts/hpe/hpe-array-exporter/README.md b/charts/hpe/hpe-array-exporter/README.md new file mode 100644 index 000000000..9222481ae --- /dev/null +++ b/charts/hpe/hpe-array-exporter/README.md @@ -0,0 +1,99 @@ +# HPE Storage Array Exporter for Prometheus Helm chart + +The [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter) provides storage system information in the form of [Prometheus](https://prometheus.io/) metrics. It can be used in combination with [HPE CSI Info Metrics Provider for Prometheus](https://scod.hpedev.io/csi_driver/metrics.html) metrics to focus on storage resources used within a Kubernetes cluster. + +## Prerequisites + +- Kubernetes 1.18+ (most distributions) +- Helm 3 (3.2.0+) + +## Configuration + +The chart has these configurable parameters and default values. + +| Parameter | Description | Default | +|---------------------------|------------------------------------------------------------------------|------------------| +| acceptEula | Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to `true`. | `false` | +| arraySecret | The name of a Secret in the same namespace as the Helm chart installation providing storage array access information: `address` (or `backend`), `username`, and `password`. | hpe-backend | +| image.registry | The registry from which to pull container images. | `quay.io` | +| image.pullPolicy | Container image pull policy (`Always`, `IfNotPresent`, `Never`). | `IfNotPresent` | +| logLevel | Minimum severity of messages to output (`info`, `debug`, `trace`, `warn`, `error`). | `info` | +| metrics.disableIntrospection | Exclude metrics about the metrics provider itself, with prefixes such as `promhttp`, `process`, and `go`. | `false` | +| service.type | The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster (`ClusterIP`, `NodePort`). | `ClusterIP` | +| service.port | The TCP port at which to expose access to storage array metrics within the cluster. | `9090` | +| service.nodePort | The TCP port at which to expose access to storage array metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired. | *none* | +| service.labels | Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration. | `{}` | +| service.annotations | Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration. | `{}` | +| serviceMonitor.enable | Create a ServiceMonitor custom resource (used with the Prometheus Operator). | `false` | +| serviceMonitor.targetLabels | List of labels on the service to add to the scraped metric. | `[]` | + +The `arraySecret` parameter is required and has no default value. A Secret used by the [HPE CSI Driver for Kubernetes](https://scod.hpedev.io/csi_driver/index.html) can be reused without modification. Otherwise, use [this example](https://github.com/hpe-storage/co-deployments/blob/master/yaml/array-exporter/edge/hpe-array-exporter-secret.yaml) to create a new one. + +The `acceptEula` value must be set to `true`, confirming your acceptance of the [HPE End User License Agreement](https://www.hpe.com/us/en/software/licensing.html). + +## Installation + +It's beneficial to understand how certain `Service` annotations and labels affect the deployment of the HPE Storage Array Exporter. Visit the [official documentation](https://hpe-storage.github.io/array-exporter) to learn more. + +### Add the HPE Storage Helm Repo + +``` +helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/ +helm repo update +``` + +### Customize Settings + +Use of a values.yaml file is recommended. Retrieve the values.yaml file for the [latest version](https://github.com/hpe-storage/co-deployments/blob/master/helm/charts/hpe-array-exporter/values.yaml) or for the specific version you will install: + +``` +helm show values hpe-storage/hpe-array-exporter --version X.Y.Z > myvalues.yaml +``` + +Edit the values according to the deployment environment, including identifying (or creating) an `arraySecret` and setting `acceptEula` to confirm your acceptance of the [HPE End User License Agreement](https://www.hpe.com/us/en/software/licensing.html). + +### Install + +The latest release is installed by default. Add a `--version` or `--devel` option to install a specific version or the latest pre-release chart. + +Use a customized values.yaml file: + +``` +kubectl create ns hpe-storage +helm install [RELEASE_NAME] hpe-storage/hpe-array-exporter -n hpe-storage -f myvalues.yaml +``` + +Or use command line options: + +``` +helm install [RELEASE_NAME] hpe-storage/hpe-array-exporter -n hpe-storage \ + --set acceptEula=xxxx,arraySecret=my-array-secret +``` + +## Uninstallation + +``` +helm uninstall [RELEASE_NAME] -n hpe-storage +``` + +## Using the HPE Storage Array Exporter + +Visit the official documentation for guidance on usage. + +- [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter) + +## Support + +The HPE Storage Array Exporter for Prometheus Helm chart is fully supported by HPE. A formal support facility for HPE storage products can be found at [SCOD](https://scod.hpedev.io/legal/support). + +## Community + +Submit issues, questions, and feature requests [here](https://github.com/hpe-storage/co-deployments/issues). However, see [SCOD](https://scod.hpedev.io/legal/support) for support inquiries related to your HPE storage product. You may also join our Slack community to chat with HPE folks close to this project. We hang out in `#Alletra`, `#NimbleStorage`, `#3par-primera`, and `#Kubernetes`. Sign up at [slack.hpedev.io](https://slack.hpedev.io/) and login at [hpedev.slack.com](https://hpedev.slack.com/). + +## Contributing + +We value feedback and contributions. If you find an issue or want to contribute, please open an issue or file a PR as described in [CONTRIBUTING.md](https://github.com/hpe-storage/co-deployments/blob/master/CONTRIBUTING.md). + +## License + +This chart is open source software licensed using the Apache License 2.0. See the [LICENSE](https://github.com/hpe-storage/co-deployments/blob/master/LICENSE) for details. diff --git a/charts/hpe/hpe-array-exporter/app-readme.md b/charts/hpe/hpe-array-exporter/app-readme.md new file mode 100644 index 000000000..779fa53c6 --- /dev/null +++ b/charts/hpe/hpe-array-exporter/app-readme.md @@ -0,0 +1,3 @@ +# HPE Storage Array Exporter for Prometheus + +The [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter) provides storage system information in the form of [Prometheus](https://prometheus.io/) metrics. It can be used in combination with [HPE CSI Info Metrics Provider for Prometheus](https://scod.hpedev.io/csi_driver/metrics.html) metrics to focus on storage resources used within a Kubernetes cluster. diff --git a/charts/hpe/hpe-array-exporter/questions.yml b/charts/hpe/hpe-array-exporter/questions.yml new file mode 100644 index 000000000..8946c7222 --- /dev/null +++ b/charts/hpe/hpe-array-exporter/questions.yml @@ -0,0 +1,99 @@ +labels: + io.rancher.certified: partner +questions: +- variable: acceptEula + label: "Accept EULA" + description: "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true." + type: boolean + default: false + required: true + group: "Exporter settings" +- variable: arraySecret + label: "Array Secret name" + description: "The name of a Secret in the same namespace as the Helm chart installation providing storage array access information: address (or backend), username, and password." + type: secret + default: hpe-backend + group: "Exporter configuration" +- variable: image.registry + label: "The registry from which to pull container images." + default: quay.io + group: "Image parameters" +- variable: image.pullPolicy + label: imagePullPolicy + description: "Container image pull policy." + default: IfNotPresent + type: enum + options: + - "IfNotPresent" + - "Always" + - "Never" + group: "Image settings" +- variable: logLevel + label: "Log level" + description: "Minimum severity of messages to output." + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + group: "Debug parameters" +- variable: metrics.disableIntrospection + label: "Disable introspection" + description: "Exclude metrics about the metrics provider itself, with prefixes such as promhttp, process, and go." + type: boolean + default: false + group: "Debug parameters" +- variable: service.type + label: "Service type" + description: "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster." + type: enum + default: NodePort + options: + - "ClusterIP" + - "NodePort" + group: "Service configuration" +- variable: service.port + label: "Service port" + description: "The TCP port at which to expose access to storage array metrics within the cluster." + type: int + default: 9090 + min: 1024 + max: 65535 + group: "Service configuration" +- variable: service.nodePort + label: "Service node port" + description: "The TCP port at which to expose access to storage array metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired." + type: int + default: 9090 + min: 1024 + max: 65535 + show_if: service.type=NodePort + group: "Service configuration" +- variable: service.labels + label: "Service labels" + description: "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration." + default: "{}" + type: multiline + group: "Service configuration" +- variable: service.annotations + label: "Service annotations" + description: "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration." + default: "{}" + type: multiline + group: "Service configuration" +- variable: serviceMonitor.enable + label: "Enable ServiceMonitor" + description: "Create a ServiceMonitor custom resource (required for Rancher Monitoring)" + type: boolean + default: true + required: true + group: "ServiceMonitor settings" +- variable: serviceMonitor.targetLabels + label: "Service labels" + description: "List of labels on the Service to add to the scraped metric." + type: array + default: "[]" + group: "ServiceMonitor settings" diff --git a/charts/hpe/hpe-array-exporter/templates/NOTES.txt b/charts/hpe/hpe-array-exporter/templates/NOTES.txt new file mode 100644 index 000000000..c9fcfc56d --- /dev/null +++ b/charts/hpe/hpe-array-exporter/templates/NOTES.txt @@ -0,0 +1,2 @@ +Use of this software is governed by the HPE End User License Agreement at +https://www.hpe.com/us/en/software/licensing.html. diff --git a/charts/hpe/hpe-array-exporter/templates/_helpers.tpl b/charts/hpe/hpe-array-exporter/templates/_helpers.tpl new file mode 100644 index 000000000..e9f22a9ab --- /dev/null +++ b/charts/hpe/hpe-array-exporter/templates/_helpers.tpl @@ -0,0 +1,31 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "hpe-array-exporter.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "hpe-array-exporter.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version for use in the chart label. +*/}} +{{- define "hpe-array-exporter.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/charts/hpe/hpe-array-exporter/templates/hpe-array-exporter.yaml b/charts/hpe/hpe-array-exporter/templates/hpe-array-exporter.yaml new file mode 100644 index 000000000..78365e682 --- /dev/null +++ b/charts/hpe/hpe-array-exporter/templates/hpe-array-exporter.yaml @@ -0,0 +1,116 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ template "hpe-array-exporter.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "hpe-array-exporter.name" . }} + chart: {{ template "hpe-array-exporter.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} +spec: + selector: + matchLabels: + app: hpe-array-exporter + replicas: 1 + template: + metadata: + labels: + app: {{ template "hpe-array-exporter.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: array-exporter + image: {{ .Values.image.registry }}/hpestorage/array-exporter:v1.0.1 + ports: + - containerPort: 8080 + args: + - "--telemetry.addr=:8080" + - "--telemetry.path=/metrics" + {{- if eq .Values.acceptEula true }} + - "--accept-eula" + {{- else }} + {{- fail "\n\nERROR: The acceptEula value must be set to true to confirm acceptance.\n\n" }} + {{- end }} + {{- if .Values.metrics }} + {{- if .Values.metrics.disableIntrospection }} + - "--metrics.disable-introspection" + {{- end }} + {{- end }} + - "/etc/config" + env: + - name: LOG_LEVEL + value: {{ .Values.logLevel }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + volumeMounts: + - name: storage-system-config + mountPath: /etc/config + volumes: + - name: storage-system-config + secret: + secretName: {{ .Values.arraySecret | quote }} + +--- +{{- $service := .Values.service | default dict }} +kind: Service +apiVersion: v1 +metadata: + name: {{ template "hpe-array-exporter.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "hpe-array-exporter.name" . }} + chart: {{ template "hpe-array-exporter.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + {{- with $service.labels }} +{{ toYaml . | indent 4 }} + {{- end }} + annotations: + {{- with $service.annotations }} +{{ toYaml . | indent 4 }} + {{- end }} +spec: + {{- $serviceType := $service.type | default "ClusterIP" }} + type: {{ $serviceType | quote }} + ports: + - name: http-metrics + port: {{ $service.port | default 9090 }} + {{- if eq $serviceType "NodePort" }} + {{- if $service.nodePort }} + nodePort: {{ $service.nodePort }} + {{- end }} + {{- end }} + protocol: TCP + targetPort: 8080 + selector: + app: {{ template "hpe-array-exporter.name" . }} + release: {{ .Release.Name }} +{{- if .Values.serviceMonitor.enable }} +{{- $targetlabels := .Values.serviceMonitor.targetLabels | default list }} +--- +kind: ServiceMonitor +apiVersion: monitoring.coreos.com/v1 +metadata: + name: {{ template "hpe-array-exporter.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + k8s-app: prometheus + release: prometheus + app: {{ template "hpe-array-exporter.name" . }} + chart: {{ template "hpe-array-exporter.chart" . }} +spec: + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + app: {{ template "hpe-array-exporter.name" . }} + endpoints: + - port: http-metrics + scheme: http + interval: 1m + targetLabels: + {{- with $targetlabels }} +{{ toYaml . | indent 4 }} + {{- end }} +{{- end }} diff --git a/charts/hpe/hpe-array-exporter/templates/tests/test-hpe-array-exporter.yaml b/charts/hpe/hpe-array-exporter/templates/tests/test-hpe-array-exporter.yaml new file mode 100644 index 000000000..6182f38d1 --- /dev/null +++ b/charts/hpe/hpe-array-exporter/templates/tests/test-hpe-array-exporter.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ template "hpe-array-exporter.fullname" . }}-test" + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "hpe-array-exporter.name" . }} + chart: {{ template "hpe-array-exporter.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: array-exporter-test + image: busybox + imagePullPolicy: "IfNotPresent" + command: ['wget'] + args: + - "-O-" + - '{{ include "hpe-array-exporter.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.service.port }}/metrics' + restartPolicy: Never diff --git a/charts/hpe/hpe-array-exporter/values.schema.json b/charts/hpe/hpe-array-exporter/values.schema.json new file mode 100644 index 000000000..7c3123f7c --- /dev/null +++ b/charts/hpe/hpe-array-exporter/values.schema.json @@ -0,0 +1,190 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "http://example.com/example.json", + "title": "HPE Storage Array Exporter for Prometheus Helm Chart JSON Schema", + "type": "object", + "default": + { + "acceptEula": false, + "image": { + "registry": "quay.io", + "pullPolicy": "IfNotPresent" + }, + "logLevel": "info", + "service": { + "type": "ClusterIP", + "port": "9090" + } + }, + "required": [ + "acceptEula", + "arraySecret", + "image", + "logLevel", + "metrics", + "service" + ], + "properties": { + "acceptEula": { + "$id": "#/properties/acceptEula", + "title": "Accept the HPE End User License Agreement", + "description": "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true.", + "type": "boolean", + "default": false + }, + "arraySecret": { + "$id": "#/properties/arraySecret", + "title": "Storage array access Secret", + "description": "The name of a Secret in the same namespace as the Helm chart installation providing storage array access information: \"address\" (or \"backend\"), \"username\", and \"password\".", + "type": "string", + "pattern": "[a-z0-9]([-a-z0-9]*[a-z0-9])?", + "minLength": 1, + "maxLength": 63 + }, + "image": { + "$id": "#/properties/image", + "title": "Container image configuration", + "type": "object", + "default": { + "registry": "quay.io", + "pullPolicy": "IfNotPresent" + }, + "required": [ + "registry", + "pullPolicy" + ], + "properties": { + "registry": { + "$id": "#/properties/image/properties/registry", + "title": "Container image registry", + "description": "The registry from which to pull container images.", + "type": "string", + "default": "quay.io" + }, + "pullPolicy": { + "$id": "#/properties/image/properties/pullPolicy", + "title": "Container image pull policy", + "type": "string", + "default": "IfNotPresent", + "enum": [ "Always", "IfNotPresent", "Never" ] + } + }, + "additionalProperties": false + }, + "logLevel": { + "$id": "#/properties/logLevel", + "title": "Logging level", + "description": "Minimum severity of messages to output.", + "type": "string", + "default": "info", + "enum": [ "info", "debug", "trace", "warn", "error" ] + }, + "metrics": { + "$id": "#/properties/metrics", + "title": "Metrics customization", + "description": "Customization of the metrics provided.", + "type": "object", + "default": { + "disableIntrospection": false + }, + "required": [ + "disableIntrospection" + ], + "properties": { + "disableIntrospection": { + "$id": "#/properties/metrics/properties/disableIntrospection", + "title": "Disable introspection metrics", + "description": "Exclude metrics about the metrics provider itself, with prefixes such as \"promhttp\", \"process\", and \"go\".", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "service": { + "$id": "#/properties/service", + "title": "Service settings", + "description": "Settings for the Service providing access to storage array metrics.", + "type": "object", + "default": { + "type": "ClusterIP", + "port": "9090" + }, + "required": [ + "type", + "port" + ], + "properties": { + "type": { + "$id": "#/properties/service/properties/type", + "title": "Service type", + "description": "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster.", + "type": "string", + "default": "ClusterIP", + "enum": [ "ClusterIP", "NodePort" ] + }, + "port": { + "$id": "#/properties/service/properties/port", + "title": "Service port", + "description": "The TCP port at which to expose access to storage array metrics within the cluster.", + "type": "integer", + "default": 9090, + "minimum": 0, + "maximum": 65535 + }, + "nodePort": { + "$id": "#/properties/service/properties/nodePort", + "title": "Node port", + "description": "The TCP port at which to expose access to storage array metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired.", + "type": "integer", + "minimum": 0, + "maximum": 65535 + }, + "labels": { + "$id": "#/properties/service/properties/labels", + "title": "Custom labels", + "description": "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration.", + "type": "object", + "additionalProperties": true + }, + "annotations": { + "$id": "#/properties/service/properties/annotations", + "title": "Custom annotations", + "description": "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration.", + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false + }, + "serviceMonitor": { + "$id": "#/properties/serviceMonitor", + "title": "ServiceMonitor settings", + "description": "Settings for the ServiceMonitor scraped by the Prometheus Operator.", + "type": "object", + "default": { + "enable": false, + "targetLabels": [] + }, + "properties": { + "enable": { + "$id": "#/properties/serviceMonitor/properties/enable", + "title": "Enable ServiceMonitor for Array Exporter", + "description": "description", + "type": "boolean", + "additionalProperties": true + }, + "targetLabels": { + "$id": "#/properties/serviceMonitor/properties/targetLabels", + "title": "Service target labels", + "description": "Labels from the Service to add to the scraped metric labels.", + "type": "array", + "additionalProperties": true + } + }, + "additionalProperties": false + }, + "global": {} + }, + "additionalProperties": false +} diff --git a/charts/hpe/hpe-array-exporter/values.yaml b/charts/hpe/hpe-array-exporter/values.yaml new file mode 100644 index 000000000..657145d2b --- /dev/null +++ b/charts/hpe/hpe-array-exporter/values.yaml @@ -0,0 +1,65 @@ +# Settings for the HPE Storage Array Exporter for Prometheus Helm chart + +# IMPORTANT: +# Confirm your acceptance of the HPE End User License Agreement at +# https://www.hpe.com/us/en/software/licensing.html by setting this +# value to true. +acceptEula: false + +# The name of a Secret in the same namespace as the Helm chart installation +# providing storage array access information: "address" (or "backend"), +# "username", and "password". +arraySecret: hpe-backend + +image: + # Container image registry + registry: "quay.io" + + # Container image pull policy + pullPolicy: "IfNotPresent" + +# Minimum severity of messages to output +logLevel: "info" + +# Customization of the metrics provided. +metrics: + # Exclude metrics about the metrics provider itself, with prefixes + # such as "promhttp", "process", and "go". + disableIntrospection: false + +# Settings for the Service providing access to storage array metrics. +service: + # The type of Service to create, ClusterIP (the default) for access + # solely from within the cluster or NodePort to provide access from + # outside the cluster. + type: "ClusterIP" + + # The TCP port at which to expose access to storage array metrics within + # the cluster (default 9090). + port: 9090 + + # The TCP port at which to expose access to storage array metrics + # externally at each cluster node, if the Service type is NodePort and + # automatic assignment is not desired. + #nodePort: + + # Labels to add to the Service, for example to include target labels + # in a ServiceMonitor scrape configuration. + labels: {} + # array: 192.168.0.1 + + # Annotations to add to the Service, for example to configure it as + # a scrape target when using the Prometheus Helm chart's default + # configuration. + annotations: {} + # "prometheus.io/scrape": "true" + +# A Service Monitor can enable a Prometheus Operator within the cluster +# to discover the HPE Storage Array Exporter for Prometheus as a scrape +# target. +serviceMonitor: + enable: false + + # Corresponding labels on the Array Exporter service are added to + # the scraped metrics + targetLabels: [] diff --git a/charts/hpe/hpe-csi-info-metrics/Chart.yaml b/charts/hpe/hpe-csi-info-metrics/Chart.yaml new file mode 100644 index 000000000..502fcc439 --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/Chart.yaml @@ -0,0 +1,32 @@ +annotations: + artifacthub.io/containsSecurityUpdates: "true" + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://scod.hpedev.io/ + artifacthub.io/prerelease: "false" + artifacthub.io/recommendations: | + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-array-exporter + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: HPE CSI Info Metrics Provider for Prometheus + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/namespace: hpe-storage + catalog.cattle.io/release-name: hpe-csi-info-metrics +apiVersion: v2 +appVersion: 1.0.1 +description: A Helm chart for installing the HPE CSI Info Metrics Provider for Prometheus +home: https://hpe.com/storage/containers +icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png +keywords: +- HPE +- Storage +- CSI +- Prometheus +maintainers: +- email: hpe-containers-dev@hpe.com + name: rkumpf +name: hpe-csi-info-metrics +sources: +- https://github.com/hpe-storage/co-deployments +version: 1.0.1 diff --git a/charts/hpe/hpe-csi-info-metrics/README.md b/charts/hpe/hpe-csi-info-metrics/README.md new file mode 100644 index 000000000..0c38f375a --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/README.md @@ -0,0 +1,96 @@ +# HPE CSI Info Metrics Provider for Prometheus Helm chart + +The [HPE CSI Info Metrics Provider for Prometheus](https://scod.hpedev.io/csi_driver/metrics.html) provides [HPE CSI Driver for Kubernetes](https://scod.hpedev.io/csi_driver/index.html) information in the form of [Prometheus](https://prometheus.io/) metrics. It can be used in combination with [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter) metrics to focus on storage resources used within a Kubernetes cluster. + +## Prerequisites + +- HPE CSI Driver for Kubernetes version 2.0.0+ +- Kubernetes 1.18+ (most distributions) +- Helm 3 (3.2.0+) + +## Configuration + +The chart has these configurable parameters and default values. + +| Parameter | Description | Default | +|---------------------------|------------------------------------------------------------------------|------------------| +| acceptEula | Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to `true`. | `false` | +| image.registry | The registry from which to pull container images. | `quay.io` | +| image.pullPolicy | Container image pull policy (`Always`, `IfNotPresent`, `Never`). | `IfNotPresent` | +| logLevel | Minimum severity of messages to output (`info`, `debug`, `trace`, `warn`, `error`). | `info` | +| metrics.disableIntrospection | Exclude metrics about the metrics provider itself, with prefixes such as `promhttp`, `process`, and `go`. | `false` | +| service.type | The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster (`ClusterIP`, `NodePort`). | `ClusterIP` | +| service.port | The TCP port at which to expose access to info metrics within the cluster. | `9090` | +| service.nodePort | The TCP port at which to expose access to info metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired. | *none* | +| service.labels | Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration. | `{}` | +| service.annotations | Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration. | `{}` | +| serviceMonitor.enable | Create a ServiceMonitor custom resource (used with the Prometheus Operator). | `false` | +| serviceMonitor.targetLabels | List of labels on the service to add to the scraped metric. | `[]` | + +The `acceptEula` value must be set to `true`, confirming your acceptance of the [HPE End User License Agreement](https://www.hpe.com/us/en/software/licensing.html). + +## Installation + +It's beneficial to understand how certain `Service` annotations and labels affect the deployment of the HPE CSI Info Metrics Provider. Visit the [official documentation](https://scod.hpedev.io/csi_driver/metrics.html) to learn more. + +### Add the HPE Storage Helm Repo + +``` +helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/ +helm repo update +``` + +### Customize Settings + +Use of a values.yaml file is recommended. Retrieve the values.yaml file for the [latest version](https://github.com/hpe-storage/co-deployments/blob/master/helm/charts/hpe-csi-info-metrics/values.yaml) or for the specific version you will install: + +``` +helm show values hpe-storage/hpe-csi-info-metrics --version X.Y.Z > myvalues.yaml +``` + +Edit the values according to the deployment environment, including setting `acceptEula` to confirm your acceptance of the [HPE End User License Agreement](https://www.hpe.com/us/en/software/licensing.html). + +### Install + +The latest release is installed by default. Add a `--version` or `--devel` option to install a specific version or the latest pre-release chart. + +Use a customized values.yaml file: + +``` +kubectl create ns hpe-storage +helm install [RELEASE_NAME] hpe-storage/hpe-csi-info-metrics -n hpe-storage -f myvalues.yaml +``` + +Or use command line options: + +``` +helm install [RELEASE_NAME] hpe-storage/hpe-csi-info-metrics -n hpe-storage --set acceptEula=xxxx +``` + +## Uninstallation + +``` +helm uninstall [RELEASE_NAME] -n hpe-storage +``` + +## Using CSI Info Metrics Provider + +Visit the HPE Storage Container Orchestration Documentation (SCOD) for more information. + +- [HPE CSI Info Metrics Provider for Prometheus](https://scod.hpedev.io/csi_driver/metrics.html) on SCOD + +## Support + +The HPE CSI Info Metrics Provider for Prometheus Helm chart is fully supported by HPE. A formal support facility for HPE storage products can be found at [SCOD](https://scod.hpedev.io/legal/support). + +## Community + +Submit issues, questions, and feature requests [here](https://github.com/hpe-storage/co-deployments/issues). However, see [SCOD](https://scod.hpedev.io/legal/support) for support inquiries related to your HPE storage product. You may also join our Slack community to chat with HPE folks close to this project. We hang out in `#Alletra`, `#NimbleStorage`, `#3par-primera`, and `#Kubernetes`. Sign up at [slack.hpedev.io](https://slack.hpedev.io/) and login at [hpedev.slack.com](https://hpedev.slack.com/). + +## Contributing + +We value feedback and contributions. If you find an issue or want to contribute, please open an issue or file a PR as described in [CONTRIBUTING.md](https://github.com/hpe-storage/co-deployments/blob/master/CONTRIBUTING.md). + +## License + +This chart is open source software licensed using the Apache License 2.0. See the [LICENSE](https://github.com/hpe-storage/co-deployments/blob/master/LICENSE) for details. diff --git a/charts/hpe/hpe-csi-info-metrics/app-readme.md b/charts/hpe/hpe-csi-info-metrics/app-readme.md new file mode 100644 index 000000000..0c49dd748 --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/app-readme.md @@ -0,0 +1,3 @@ +# HPE CSI Info Metrics Provider for Prometheus + +The [HPE CSI Driver for Kubernetes](https://github.com/hpe-storage/csi-driver) may be accompanied by a [Prometheus](https://prometheus.io/) metrics endpoint to provide metadata about the volumes provisioned by the CSI driver and supporting backends. It's conventionally deployed with [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter/) to provide a richer set of metrics from the backend storage systems. diff --git a/charts/hpe/hpe-csi-info-metrics/questions.yml b/charts/hpe/hpe-csi-info-metrics/questions.yml new file mode 100644 index 000000000..495293daf --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/questions.yml @@ -0,0 +1,94 @@ +labels: + io.rancher.certified: partner +questions: +- variable: acceptEula + label: "Accept EULA" + description: "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true." + type: boolean + default: false + required: true + group: "Exporter settings" +- variable: image.registry + label: "The registry from which to pull container images." + default: quay.io + group: "Image parameters" +- variable: image.pullPolicy + label: imagePullPolicy + description: "Container image pull policy." + default: IfNotPresent + type: enum + options: + - "IfNotPresent" + - "Always" + - "Never" + group: "Image parameters" +- variable: logLevel + label: "Log level" + description: "Minimum severity of messages to output." + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + group: "Debug parameters" +- variable: metrics.disableIntrospection + label: "Disable introspection" + description: "Exclude metrics about the metrics provider itself, with prefixes such as promhttp, process, and go." + type: boolean + default: false + group: "Debug parameters" +- variable: service.type + label: "Service type" + description: "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster." + type: enum + default: NodePort + options: + - "ClusterIP" + - "NodePort" + group: "Service configuration" +- variable: service.port + label: "Service port" + description: "The TCP port at which to expose access to info metrics within the cluster." + type: int + default: 9090 + min: 1024 + max: 65535 + group: "Service configuration" + show_if: service.type=ClusterIP +- variable: service.nodePort + label: "Service node port" + description: "The TCP port at which to expose access to info metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired." + type: int + default: 9090 + min: 1024 + max: 65535 + show_if: service.type=NodePort + group: "Service configuration" +- variable: service.labels + label: "Service labels" + description: "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration." + type: multiline + default: "{}" + group: "Service configuration" +- variable: service.annotations + label: "Service annotations" + description: "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration." + type: multiline + default: "{}" + group: "Service configuration" +- variable: serviceMonitor.enable + label: "Enable ServiceMonitor" + description: "Create a ServiceMonitor custom resource (required for Rancher Monitoring)" + type: boolean + default: true + required: true + group: "ServiceMonitor settings" +- variable: serviceMonitor.targetLabels + label: "Service labels" + description: "List of labels on the Service to add to the scraped metric." + type: array + default: "[]" + group: "ServiceMonitor settings" diff --git a/charts/hpe/hpe-csi-info-metrics/templates/NOTES.txt b/charts/hpe/hpe-csi-info-metrics/templates/NOTES.txt new file mode 100644 index 000000000..c9fcfc56d --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/templates/NOTES.txt @@ -0,0 +1,2 @@ +Use of this software is governed by the HPE End User License Agreement at +https://www.hpe.com/us/en/software/licensing.html. diff --git a/charts/hpe/hpe-csi-info-metrics/templates/hpe-csi-info-metrics.yaml b/charts/hpe/hpe-csi-info-metrics/templates/hpe-csi-info-metrics.yaml new file mode 100644 index 000000000..889a697fc --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/templates/hpe-csi-info-metrics.yaml @@ -0,0 +1,136 @@ +--- +kind: ServiceAccount +apiVersion: v1 +metadata: + name: hpe-csi-info-metrics-serviceaccount + namespace: {{ .Release.Namespace }} + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-info-metrics-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-info-metrics-rolebinding +subjects: + - kind: ServiceAccount + name: hpe-csi-info-metrics-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-info-metrics-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: hpe-csi-info-metrics + namespace: {{ .Release.Namespace }} +spec: + selector: + matchLabels: + app: hpe-csi-info-metrics + replicas: 1 + template: + metadata: + labels: + app: hpe-csi-info-metrics + spec: + serviceAccount: hpe-csi-info-metrics-serviceaccount + containers: + - name: csi-info-metrics + image: {{ .Values.image.registry }}/hpestorage/csi-info-metrics:v1.0.1 + ports: + - containerPort: 9099 + args: + - "--telemetry.addr=:9099" + - "--telemetry.path=/metrics" + {{- if eq .Values.acceptEula true }} + - "--accept-eula" + {{- else }} + {{- fail "\n\nERROR: The acceptEula value must be set to true to confirm acceptance.\n\n" }} + {{- end }} + {{- if .Values.metrics }} + {{- if .Values.metrics.disableIntrospection }} + - "--metrics.disable-introspection" + {{- end }} + {{- end }} + env: + - name: LOG_LEVEL + value: {{ .Values.logLevel }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + +--- +{{- $service := .Values.service | default dict }} +kind: Service +apiVersion: v1 +metadata: + name: hpe-csi-info-metrics-service + namespace: {{ .Release.Namespace }} + labels: + app: hpe-csi-info-metrics + {{- with $service.labels }} +{{ toYaml . | indent 4 }} + {{- end }} + annotations: + {{- with $service.annotations }} +{{ toYaml . | indent 4 }} + {{- end }} +spec: + {{- $serviceType := $service.type | default "ClusterIP" }} + type: {{ $serviceType | quote }} + ports: + - name: http-metrics + port: {{ $service.port | default 9090 }} + {{- if eq $serviceType "NodePort" }} + {{- if $service.nodePort }} + nodePort: {{ $service.nodePort }} + {{- end }} + {{- end }} + protocol: TCP + targetPort: 9099 + selector: + app: hpe-csi-info-metrics +{{- if .Values.serviceMonitor.enable }} +{{- $targetlabels := .Values.serviceMonitor.targetLabels | default list }} +--- +kind: ServiceMonitor +apiVersion: monitoring.coreos.com/v1 +metadata: + name: hpe-csi-info-metrics + namespace: {{ .Release.Namespace }} + labels: + k8s-app: prometheus + release: prometheus + app: hpe-csi-info-metrics +spec: + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + app: hpe-csi-info-metrics + endpoints: + - port: http-metrics + scheme: http + interval: 1m + targetLabels: + {{- with $targetlabels }} +{{ toYaml . | indent 4 }} + {{- end }} +{{- end }} diff --git a/charts/hpe/hpe-csi-info-metrics/templates/tests/test-hpe-csi-info-metrics.yaml b/charts/hpe/hpe-csi-info-metrics/templates/tests/test-hpe-csi-info-metrics.yaml new file mode 100644 index 000000000..0d5fe0924 --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/templates/tests/test-hpe-csi-info-metrics.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "hpe-csi-info-metrics-test" + namespace: {{ .Release.Namespace }} + labels: + app: hpe-csi-info-metrics + annotations: + "helm.sh/hook": test +spec: + containers: + - name: csi-info-metrics-test + image: busybox + imagePullPolicy: "IfNotPresent" + command: ['wget'] + args: + - "-O-" + - 'hpe-csi-info-metrics-service.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.service.port }}/metrics' + restartPolicy: Never diff --git a/charts/hpe/hpe-csi-info-metrics/values.schema.json b/charts/hpe/hpe-csi-info-metrics/values.schema.json new file mode 100644 index 000000000..ee9f5f692 --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/values.schema.json @@ -0,0 +1,180 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "http://example.com/example.json", + "title": "HPE CSI Info Metrics Provider for Prometheus Helm Chart JSON Schema", + "type": "object", + "default": + { + "acceptEula": false, + "image": { + "registry": "quay.io", + "pullPolicy": "IfNotPresent" + }, + "logLevel": "info", + "service": { + "type": "ClusterIP", + "port": "9090" + } + }, + "required": [ + "acceptEula", + "image", + "logLevel", + "metrics", + "service" + ], + "properties": { + "acceptEula": { + "$id": "#/properties/acceptEula", + "title": "Accept the HPE End User License Agreement", + "description": "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true.", + "type": "boolean", + "default": false + }, + "image": { + "$id": "#/properties/image", + "title": "Container image configuration", + "type": "object", + "default": { + "registry": "quay.io", + "pullPolicy": "IfNotPresent" + }, + "required": [ + "registry", + "pullPolicy" + ], + "properties": { + "registry": { + "$id": "#/properties/image/properties/registry", + "title": "Container image registry", + "description": "The registry from which to pull container images.", + "type": "string", + "default": "quay.io" + }, + "pullPolicy": { + "$id": "#/properties/image/properties/pullPolicy", + "title": "Container image pull policy", + "type": "string", + "default": "IfNotPresent", + "enum": [ "Always", "IfNotPresent", "Never" ] + } + }, + "additionalProperties": false + }, + "logLevel": { + "$id": "#/properties/logLevel", + "title": "Logging level", + "description": "Minimum severity of messages to output.", + "type": "string", + "default": "info", + "enum": [ "info", "debug", "trace", "warn", "error" ] + }, + "metrics": { + "$id": "#/properties/metrics", + "title": "Metrics customization", + "description": "Customization of the metrics provided.", + "type": "object", + "default": { + "disableIntrospection": false + }, + "required": [ + "disableIntrospection" + ], + "properties": { + "disableIntrospection": { + "$id": "#/properties/metrics/properties/disableIntrospection", + "title": "Disable introspection metrics", + "description": "Exclude metrics about the metrics provider itself, with prefixes such as \"promhttp\", \"process\", and \"go\".", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "service": { + "$id": "#/properties/service", + "title": "Service settings", + "description": "Settings for the Service providing access to info metrics.", + "type": "object", + "default": { + "type": "ClusterIP", + "port": "9090" + }, + "required": [ + "type", + "port" + ], + "properties": { + "type": { + "$id": "#/properties/service/properties/type", + "title": "Service type", + "description": "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster.", + "type": "string", + "default": "ClusterIP", + "enum": [ "ClusterIP", "NodePort" ] + }, + "port": { + "$id": "#/properties/service/properties/port", + "title": "Service port", + "description": "The TCP port at which to expose access to info metrics within the cluster.", + "type": "integer", + "default": 9090, + "minimum": 0, + "maximum": 65535 + }, + "nodePort": { + "$id": "#/properties/service/properties/nodePort", + "title": "Node port", + "description": "The TCP port at which to expose access to info metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired.", + "type": "integer", + "minimum": 0, + "maximum": 65535 + }, + "labels": { + "$id": "#/properties/service/properties/labels", + "title": "Custom labels", + "description": "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration.", + "type": "object", + "additionalProperties": true + }, + "annotations": { + "$id": "#/properties/service/properties/annotations", + "title": "Custom annotations", + "description": "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration.", + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false + }, + "serviceMonitor": { + "$id": "#/properties/serviceMonitor", + "title": "ServiceMonitor settings", + "description": "Settings for the ServiceMonitor scraped by the Prometheus Operator.", + "type": "object", + "default": { + "enable": false, + "targetLabels": [] + }, + "properties": { + "enable": { + "$id": "#/properties/serviceMonitor/properties/enable", + "title": "Enable ServiceMonitor for CSI Info Metrics Provider", + "description": "description", + "type": "boolean", + "additionalProperties": true + }, + "targetLabels": { + "$id": "#/properties/serviceMonitor/properties/targetLabels", + "title": "Service target labels", + "description": "Labels from the Service to add to the scraped metric labels.", + "type": "array", + "additionalProperties": true + } + }, + "additionalProperties": false + }, + "global": {} + }, + "additionalProperties": false +} diff --git a/charts/hpe/hpe-csi-info-metrics/values.yaml b/charts/hpe/hpe-csi-info-metrics/values.yaml new file mode 100644 index 000000000..4a5d8da31 --- /dev/null +++ b/charts/hpe/hpe-csi-info-metrics/values.yaml @@ -0,0 +1,60 @@ +# Settings for the HPE CSI Info Metrics Provider for Prometheus Helm chart + +# IMPORTANT: +# Confirm your acceptance of the HPE End User License Agreement at +# https://www.hpe.com/us/en/software/licensing.html by setting this +# value to true. +acceptEula: false + +image: + # Container image registry + registry: "quay.io" + + # Container image pull policy + pullPolicy: "IfNotPresent" + +# Minimum severity of messages to output +logLevel: "info" + +# Customization of the metrics provided. +metrics: + # Exclude metrics about the metrics provider itself, with prefixes + # such as "promhttp", "process", and "go". + disableIntrospection: false + +# Settings for the Service providing access to info metrics. +service: + # The type of Service to create, ClusterIP (the default) for access + # solely from within the cluster or NodePort to provide access from + # outside the cluster. + type: "ClusterIP" + + # The TCP port at which to expose access to info metrics within the + # cluster (default 9090). + port: 9090 + + # The TCP port at which to expose access to info metrics externally + # at each cluster node, if the Service type is NodePort and + # automatic assignment is not desired. + #nodePort: + + # Labels to add to the Service, for example to include target labels + # in a ServiceMonitor scrape configuration. + labels: {} + # cluster: mycluster + + # Annotations to add to the Service, for example to configure it as + # a scrape target when using the Prometheus Helm chart's default + # configuration. + annotations: {} + # "prometheus.io/scrape": "true" + +# A Service Monitor can enable a Prometheus Operator within the cluster +# to discover the HPE CSI Info Metrics Provider for Prometheus as a scrape +# target. +serviceMonitor: + enable: false + + # Corresponding labels on the CSI Info Metrics Provider service are added to + # the scraped metrics + targetLabels: [] diff --git a/index.yaml b/index.yaml index 0552f102a..a1f8bfcfe 100644 --- a/index.yaml +++ b/index.yaml @@ -12829,6 +12829,41 @@ entries: urls: - assets/harbor/harbor-1.10.1.tgz version: 1.10.1 + hpe-array-exporter: + - annotations: + artifacthub.io/containsSecurityUpdates: "true" + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://hpe-storage.github.io/array-exporter + artifacthub.io/prerelease: "false" + artifacthub.io/recommendations: | + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-info-metrics + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: HPE Storage Array Exporter for Prometheus + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: hpe-array-exporter + apiVersion: v2 + appVersion: 1.0.1 + created: "2023-04-07T09:54:25.661745-07:00" + description: A Helm chart for installing the HPE Storage Array Exporter for Prometheus + digest: 9a03ca8d4c0c86d158af25f5e634e680570f91277b97b4c4aa8649b9db0c83f2 + home: https://hpe.com/storage/containers + icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png + keywords: + - HPE + - Storage + - Prometheus + maintainers: + - email: hpe-containers-dev@hpe.com + name: rkumpf + name: hpe-array-exporter + sources: + - https://github.com/hpe-storage/co-deployments + urls: + - assets/hpe/hpe-array-exporter-1.0.1.tgz + version: 1.0.1 hpe-csi-driver: - annotations: artifacthub.io/containsSecurityUpdates: "true" @@ -13042,6 +13077,44 @@ entries: urls: - assets/hpe/hpe-csi-driver-1.3.000.tgz version: 1.3.000 + hpe-csi-info-metrics: + - annotations: + artifacthub.io/containsSecurityUpdates: "true" + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://scod.hpedev.io/ + artifacthub.io/prerelease: "false" + artifacthub.io/recommendations: | + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver + - url: https://artifacthub.io/packages/helm/hpe-storage/hpe-array-exporter + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: HPE CSI Info Metrics Provider for Prometheus + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/namespace: hpe-storage + catalog.cattle.io/release-name: hpe-csi-info-metrics + apiVersion: v2 + appVersion: 1.0.1 + created: "2023-04-07T09:54:49.391911-07:00" + description: A Helm chart for installing the HPE CSI Info Metrics Provider for + Prometheus + digest: 8899618659f89b5e532fe0d6279d81dc0212d0f0f1b3b840d292a5c354f8588e + home: https://hpe.com/storage/containers + icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png + keywords: + - HPE + - Storage + - CSI + - Prometheus + maintainers: + - email: hpe-containers-dev@hpe.com + name: rkumpf + name: hpe-csi-info-metrics + sources: + - https://github.com/hpe-storage/co-deployments + urls: + - assets/hpe/hpe-csi-info-metrics-1.0.1.tgz + version: 1.0.1 hpe-flexvolume-driver: - annotations: catalog.cattle.io/certified: partner diff --git a/packages/hpe/hpe-array-exporter/overlay/app-readme.md b/packages/hpe/hpe-array-exporter/overlay/app-readme.md new file mode 100644 index 000000000..779fa53c6 --- /dev/null +++ b/packages/hpe/hpe-array-exporter/overlay/app-readme.md @@ -0,0 +1,3 @@ +# HPE Storage Array Exporter for Prometheus + +The [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter) provides storage system information in the form of [Prometheus](https://prometheus.io/) metrics. It can be used in combination with [HPE CSI Info Metrics Provider for Prometheus](https://scod.hpedev.io/csi_driver/metrics.html) metrics to focus on storage resources used within a Kubernetes cluster. diff --git a/packages/hpe/hpe-array-exporter/overlay/questions.yml b/packages/hpe/hpe-array-exporter/overlay/questions.yml new file mode 100644 index 000000000..8946c7222 --- /dev/null +++ b/packages/hpe/hpe-array-exporter/overlay/questions.yml @@ -0,0 +1,99 @@ +labels: + io.rancher.certified: partner +questions: +- variable: acceptEula + label: "Accept EULA" + description: "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true." + type: boolean + default: false + required: true + group: "Exporter settings" +- variable: arraySecret + label: "Array Secret name" + description: "The name of a Secret in the same namespace as the Helm chart installation providing storage array access information: address (or backend), username, and password." + type: secret + default: hpe-backend + group: "Exporter configuration" +- variable: image.registry + label: "The registry from which to pull container images." + default: quay.io + group: "Image parameters" +- variable: image.pullPolicy + label: imagePullPolicy + description: "Container image pull policy." + default: IfNotPresent + type: enum + options: + - "IfNotPresent" + - "Always" + - "Never" + group: "Image settings" +- variable: logLevel + label: "Log level" + description: "Minimum severity of messages to output." + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + group: "Debug parameters" +- variable: metrics.disableIntrospection + label: "Disable introspection" + description: "Exclude metrics about the metrics provider itself, with prefixes such as promhttp, process, and go." + type: boolean + default: false + group: "Debug parameters" +- variable: service.type + label: "Service type" + description: "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster." + type: enum + default: NodePort + options: + - "ClusterIP" + - "NodePort" + group: "Service configuration" +- variable: service.port + label: "Service port" + description: "The TCP port at which to expose access to storage array metrics within the cluster." + type: int + default: 9090 + min: 1024 + max: 65535 + group: "Service configuration" +- variable: service.nodePort + label: "Service node port" + description: "The TCP port at which to expose access to storage array metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired." + type: int + default: 9090 + min: 1024 + max: 65535 + show_if: service.type=NodePort + group: "Service configuration" +- variable: service.labels + label: "Service labels" + description: "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration." + default: "{}" + type: multiline + group: "Service configuration" +- variable: service.annotations + label: "Service annotations" + description: "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration." + default: "{}" + type: multiline + group: "Service configuration" +- variable: serviceMonitor.enable + label: "Enable ServiceMonitor" + description: "Create a ServiceMonitor custom resource (required for Rancher Monitoring)" + type: boolean + default: true + required: true + group: "ServiceMonitor settings" +- variable: serviceMonitor.targetLabels + label: "Service labels" + description: "List of labels on the Service to add to the scraped metric." + type: array + default: "[]" + group: "ServiceMonitor settings" diff --git a/packages/hpe/hpe-array-exporter/upstream.yaml b/packages/hpe/hpe-array-exporter/upstream.yaml new file mode 100644 index 000000000..afa2dbc2d --- /dev/null +++ b/packages/hpe/hpe-array-exporter/upstream.yaml @@ -0,0 +1,6 @@ +HelmRepo: https://hpe-storage.github.io/co-deployments +HelmChart: hpe-array-exporter +Vendor: HPE +DisplayName: HPE Storage Array Exporter for Prometheus +ChartMetadata: + kubeVersion: '>=1.21-0' diff --git a/packages/hpe/hpe-csi-driver/overlay/questions.yml b/packages/hpe/hpe-csi-driver/overlay/questions.yml index fa860cfdc..e607a3618 100644 --- a/packages/hpe/hpe-csi-driver/overlay/questions.yml +++ b/packages/hpe/hpe-csi-driver/overlay/questions.yml @@ -74,10 +74,10 @@ questions: description: "Disable HPE Primera (and 3PAR) CSP Service" group: "Disable Container Storage Providers" - variable: disable.alletra6000 - label: "Disable Alletra 6000" + label: "Disable Alletra 5000/6000" type: boolean default: false - description: "Disable HPE Alletra 6000 CSP Service" + description: "Disable HPE Alletra 5000/6000 CSP Service" group: "Disable Container Storage Providers" - variable: disable.alletra9000 label: "Disable Alletra 9000" diff --git a/packages/hpe/hpe-csi-driver/upstream.yaml b/packages/hpe/hpe-csi-driver/upstream.yaml index 2e926fa40..798631257 100644 --- a/packages/hpe/hpe-csi-driver/upstream.yaml +++ b/packages/hpe/hpe-csi-driver/upstream.yaml @@ -1,7 +1,7 @@ HelmRepo: https://hpe-storage.github.io/co-deployments HelmChart: hpe-csi-driver Vendor: HPE -DisplayName: HPE CSI Driver +DisplayName: HPE CSI Driver for Kubernetes Namespace: hpe-storage ChartMetadata: kubeVersion: '>=1.21-0' diff --git a/packages/hpe/hpe-csi-info-metrics/overlay/app-readme.md b/packages/hpe/hpe-csi-info-metrics/overlay/app-readme.md new file mode 100644 index 000000000..0c49dd748 --- /dev/null +++ b/packages/hpe/hpe-csi-info-metrics/overlay/app-readme.md @@ -0,0 +1,3 @@ +# HPE CSI Info Metrics Provider for Prometheus + +The [HPE CSI Driver for Kubernetes](https://github.com/hpe-storage/csi-driver) may be accompanied by a [Prometheus](https://prometheus.io/) metrics endpoint to provide metadata about the volumes provisioned by the CSI driver and supporting backends. It's conventionally deployed with [HPE Storage Array Exporter for Prometheus](https://hpe-storage.github.io/array-exporter/) to provide a richer set of metrics from the backend storage systems. diff --git a/packages/hpe/hpe-csi-info-metrics/overlay/questions.yml b/packages/hpe/hpe-csi-info-metrics/overlay/questions.yml new file mode 100644 index 000000000..495293daf --- /dev/null +++ b/packages/hpe/hpe-csi-info-metrics/overlay/questions.yml @@ -0,0 +1,94 @@ +labels: + io.rancher.certified: partner +questions: +- variable: acceptEula + label: "Accept EULA" + description: "Confirm your acceptance of the HPE End User License Agreement at https://www.hpe.com/us/en/software/licensing.html by setting this value to true." + type: boolean + default: false + required: true + group: "Exporter settings" +- variable: image.registry + label: "The registry from which to pull container images." + default: quay.io + group: "Image parameters" +- variable: image.pullPolicy + label: imagePullPolicy + description: "Container image pull policy." + default: IfNotPresent + type: enum + options: + - "IfNotPresent" + - "Always" + - "Never" + group: "Image parameters" +- variable: logLevel + label: "Log level" + description: "Minimum severity of messages to output." + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + group: "Debug parameters" +- variable: metrics.disableIntrospection + label: "Disable introspection" + description: "Exclude metrics about the metrics provider itself, with prefixes such as promhttp, process, and go." + type: boolean + default: false + group: "Debug parameters" +- variable: service.type + label: "Service type" + description: "The type of Service to create, ClusterIP for access solely from within the cluster or NodePort to provide access from outside the cluster." + type: enum + default: NodePort + options: + - "ClusterIP" + - "NodePort" + group: "Service configuration" +- variable: service.port + label: "Service port" + description: "The TCP port at which to expose access to info metrics within the cluster." + type: int + default: 9090 + min: 1024 + max: 65535 + group: "Service configuration" + show_if: service.type=ClusterIP +- variable: service.nodePort + label: "Service node port" + description: "The TCP port at which to expose access to info metrics externally at each cluster node, if the Service type is NodePort and automatic assignment is not desired." + type: int + default: 9090 + min: 1024 + max: 65535 + show_if: service.type=NodePort + group: "Service configuration" +- variable: service.labels + label: "Service labels" + description: "Labels to add to the Service, for example to include target labels in a ServiceMonitor scrape configuration." + type: multiline + default: "{}" + group: "Service configuration" +- variable: service.annotations + label: "Service annotations" + description: "Annotations to add to the Service, for example to configure it as a scrape target when using the Prometheus Helm chart's default configuration." + type: multiline + default: "{}" + group: "Service configuration" +- variable: serviceMonitor.enable + label: "Enable ServiceMonitor" + description: "Create a ServiceMonitor custom resource (required for Rancher Monitoring)" + type: boolean + default: true + required: true + group: "ServiceMonitor settings" +- variable: serviceMonitor.targetLabels + label: "Service labels" + description: "List of labels on the Service to add to the scraped metric." + type: array + default: "[]" + group: "ServiceMonitor settings" diff --git a/packages/hpe/hpe-csi-info-metrics/upstream.yaml b/packages/hpe/hpe-csi-info-metrics/upstream.yaml new file mode 100644 index 000000000..c9b68e447 --- /dev/null +++ b/packages/hpe/hpe-csi-info-metrics/upstream.yaml @@ -0,0 +1,7 @@ +HelmRepo: https://hpe-storage.github.io/co-deployments +HelmChart: hpe-csi-info-metrics +Vendor: HPE +DisplayName: HPE CSI Info Metrics Provider for Prometheus +Namespace: hpe-storage +ChartMetadata: + kubeVersion: '>=1.21-0'