diff --git a/yaml/array-exporter/v1.0.3/hpe-array-exporter-secret.yaml b/yaml/array-exporter/v1.0.3/hpe-array-exporter-secret.yaml new file mode 100644 index 00000000..a096663a --- /dev/null +++ b/yaml/array-exporter/v1.0.3/hpe-array-exporter-secret.yaml @@ -0,0 +1,23 @@ +# The HPE Storage Array Exporter for Prometheus uses a Secret to +# identify the target storage system and provide its login +# credentials. +# +# Modify this sample file to: +# - Use a unique name for each storage system +# - Match the namespace where the exporter will be deployed +# - Specify the address, user name, and password for the target +# storage system +# +# For convenience, a Secret used by the HPE CSI Driver can be +# reused without modification. + +--- +kind: Secret +apiVersion: v1 +metadata: + name: hpe-backend + namespace: hpe-storage +stringData: + address: 192.168.1.1 + username: admin + password: admin diff --git a/yaml/array-exporter/v1.0.3/hpe-array-exporter-service-monitor.yaml b/yaml/array-exporter/v1.0.3/hpe-array-exporter-service-monitor.yaml new file mode 100644 index 00000000..ee07f88d --- /dev/null +++ b/yaml/array-exporter/v1.0.3/hpe-array-exporter-service-monitor.yaml @@ -0,0 +1,39 @@ +# A Service Monitor can enable a Prometheus Operator within the cluster +# to discover the HPE Storage Array Exporter for Prometheus as a scrape +# target. +# +# Modify this sample file to: +# - Match the namespace of the hpe-array-exporter-service +# - Match the selector used by the Prometheus Operator installation +# - Customize the scrape configuration, including desired target labels + +--- +kind: ServiceMonitor +apiVersion: monitoring.coreos.com/v1 +metadata: + name: hpe-array-exporter-servicemonitor + namespace: hpe-storage + labels: + # A selector for this label is used by a Prometheus Operator + # installed via OLM + k8s-app: prometheus + # A "release" label selector is used by the Helm Kube Prometheus Stack, + # with the value as the release specified on chart installation + release: prometheus +spec: + # Match the namespace of the target Array Exporter service, + # or omit the namespaceSelector + namespaceSelector: + matchNames: + - hpe-storage + selector: + matchLabels: + app: hpe-array-exporter + endpoints: + - port: http-metrics + scheme: http + interval: 1m + # Corresponding labels on the Array Exporter service are added to + # the scraped metrics + #targetLabels: + # - array diff --git a/yaml/array-exporter/v1.0.3/hpe-array-exporter.yaml b/yaml/array-exporter/v1.0.3/hpe-array-exporter.yaml new file mode 100644 index 00000000..be65dc33 --- /dev/null +++ b/yaml/array-exporter/v1.0.3/hpe-array-exporter.yaml @@ -0,0 +1,87 @@ +# Deploy the HPE Storage Array Exporter for Prometheus. +# +# Modify this sample file to: +# - Uncomment the --accept-eula option in the Deployment to indicate +# your acceptance of the HPE End User License Agreement at +# https://www.hpe.com/us/en/software/licensing.html +# - Specify the name of a Secret containing storage array access +# information in the storage-system-config volume spec +# - Optionally set the Service type to NodePort, if necessary for +# access by a Prometheus instance running outside the cluster +# - Optionally add labels to the Service, for example to facilitate +# the use of targetLabels in a ServiceMonitor spec + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: hpe-array-exporter + namespace: hpe-storage +spec: + selector: + matchLabels: + app: hpe-array-exporter + replicas: 1 + template: + metadata: + labels: + app: hpe-array-exporter + spec: + containers: + - name: array-exporter + image: quay.io/hpestorage/array-exporter:v1.0.3 + ports: + - containerPort: 8080 + args: + - "--telemetry.addr=:8080" + - "--telemetry.path=/metrics" + # IMPORTANT: Uncomment this argument to confirm your + # acceptance of the HPE End User License Agreement at + # https://www.hpe.com/us/en/software/licensing.html + #- "--accept-eula" + - "/etc/config" + env: + - name: LOG_LEVEL + value: info + imagePullPolicy: Always + volumeMounts: + - name: storage-system-config + mountPath: /etc/config + volumes: + - name: storage-system-config + secret: + # Specify the name of a Secret in the same namespace as this + # deployment providing storage array access information: + # "address" (or "backend"), "username", and "password". + secretName: hpe-backend + +--- +kind: Service +apiVersion: v1 +metadata: + name: hpe-array-exporter + namespace: hpe-storage + labels: + app: hpe-array-exporter + # Optionally add labels, for example to be included in Prometheus + # metrics via a targetLabels setting in a ServiceMonitor spec + #array: 192.168.0.1 + # Optionally add annotations, for example to configure it as a + # scrape target when using the Prometheus Helm chart's default + # configuration. + #annotations: + # "prometheus.io/scrape": "true" +spec: + # Optionally expose the metrics service outside the cluster + #type: NodePort + ports: + - name: http-metrics + port: 9090 + # Optionally choose a TCP port at which to expose the metrics + # service externally at each cluster node, when the Service + # type is NodePort + #nodePort: 30902 + protocol: TCP + targetPort: 8080 + selector: + app: hpe-array-exporter diff --git a/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics-service-monitor.yaml b/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics-service-monitor.yaml new file mode 100644 index 00000000..d62bba5b --- /dev/null +++ b/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics-service-monitor.yaml @@ -0,0 +1,39 @@ +# 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. +# +# Modify this sample file to: +# - Match the namespace of the hpe-csi-info-metrics-service +# - Match the selector used by the Prometheus Operator installation +# - Customize the scrape configuration, including desired target labels + +--- +kind: ServiceMonitor +apiVersion: monitoring.coreos.com/v1 +metadata: + name: hpe-csi-info-metrics-servicemonitor + namespace: hpe-storage + labels: + # A selector for this label is used by a Prometheus Operator + # installed via OLM + k8s-app: prometheus + # A "release" label selector is used by the Helm Kube Prometheus Stack, + # with the value as the release specified on chart installation + release: prometheus +spec: + # Match the namespace of the target CSI Info Metrics service, + # or omit the namespaceSelector + namespaceSelector: + matchNames: + - hpe-storage + selector: + matchLabels: + app: hpe-csi-info-metrics + endpoints: + - port: http-metrics + scheme: http + interval: 1m + # Corresponding labels on the CSI Info Metrics service are added to + # the scraped metrics + #targetLabels: + # - cluster diff --git a/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics.yaml b/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics.yaml new file mode 100644 index 00000000..d217ab50 --- /dev/null +++ b/yaml/csi-info-metrics/v1.0.3/hpe-csi-info-metrics.yaml @@ -0,0 +1,112 @@ +# Deploy the HPE CSI Info Metrics Provider for Prometheus. +# +# Modify this sample file to: +# - Uncomment the --accept-eula option in the Deployment to indicate +# your acceptance of the HPE End User License Agreement at +# https://www.hpe.com/us/en/software/licensing.html. +# - Optionally set the Service type to NodePort, if necessary for +# access by a Prometheus instance running outside the cluster +# - Optionally add labels to the Service, for example to facilitate +# the use of targetLabels in a ServiceMonitor spec + +--- +kind: ServiceAccount +apiVersion: v1 +metadata: + name: hpe-csi-info-metrics-serviceaccount + namespace: hpe-storage + +--- +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: hpe-storage +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: hpe-storage +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: quay.io/hpestorage/csi-info-metrics:v1.0.3 + ports: + - containerPort: 9099 + args: + - "--telemetry.addr=:9099" + - "--telemetry.path=/metrics" + # IMPORTANT: Uncomment this argument to confirm your + # acceptance of the HPE End User License Agreement at + # https://www.hpe.com/us/en/software/licensing.html + #- "--accept-eula" + env: + - name: LOG_LEVEL + value: info + imagePullPolicy: Always + +--- +kind: Service +apiVersion: v1 +metadata: + name: hpe-csi-info-metrics-service + namespace: hpe-storage + labels: + app: hpe-csi-info-metrics + # Optionally add labels, for example to be included in Prometheus + # metrics via a targetLabels setting in a ServiceMonitor spec + #cluster: my-cluster + # Optionally add annotations, for example to configure it as a + # scrape target when using the Prometheus Helm chart's default + # configuration. + #annotations: + # "prometheus.io/scrape": "true" +spec: + # Optionally expose the metrics service outside the cluster + #type: NodePort + ports: + - name: http-metrics + port: 9090 + # Optionally choose a TCP port at which to expose the metrics + # service externally at each cluster node, when the Service + # type is NodePort + #nodePort: 30901 + protocol: TCP + targetPort: 9099 + selector: + app: hpe-csi-info-metrics