Add HPE storage exporters and CSI driver cleanup

Signed-off-by: Michael Mattsson <michael.mattsson@gmail.com>
pull/711/head
Michael Mattsson 2023-04-07 09:57:46 -07:00
parent e7fc80683a
commit f45dd5c676
30 changed files with 1567 additions and 3 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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"

View File

@ -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.

View File

@ -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 -}}

View File

@ -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 }}

View File

@ -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

View File

@ -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
}

View File

@ -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: []

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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"

View File

@ -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.

View File

@ -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 }}

View File

@ -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

View File

@ -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
}

View File

@ -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: []

View File

@ -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

View File

@ -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.

View File

@ -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"

View File

@ -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'

View File

@ -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"

View File

@ -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'

View File

@ -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.

View File

@ -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"

View File

@ -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'