Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

charts/karavi-observability Karavi observability release v1.3.0 #143

Merged
merged 18 commits into from
Sep 21, 2022
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,19 @@
# be requested for review when someone opens a pull request.
# order is alphabetical for easier maintenance.
#
# Michael Edegware (medegw01)
# Sean Gallacher (gallacher)
# Trevor Dawe (tdawe)
# Alexander Hoppe (hoppea2)
# Alik Saring (alikdell)
# Aaron Tye (atye)
# Florian Coulombel (coulof)
# Shayna Finocchiaro (shaynafinocchiaro)
# Logan Jones (lj-software)
# Sharmila Ramamoorthy (sharmilarama)
# Tao He (taohe1012)
# Peter Cao (P-Cao)
# Yiming Bao (baoy1)
# Yian Zong (YianZong)
# Forrest Xia (forrestxia)

# for all files:
* @medegw01 @gallacher @tdawe @alikdell @atye @hoppea2 @coulof @shaynafinocchiaro @lj-software @sharmilarama
* @gallacher @tdawe @alikdell @atye @hoppea2 @coulof @shaynafinocchiaro @sharmilarama @taohe1012 @P-Cao @baoy1 @YianZong @forrestxia
4 changes: 2 additions & 2 deletions charts/karavi-observability/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
apiVersion: v2
appVersion: "1.1.1"
appVersion: "1.3.0"
name: karavi-observability
description: CSM for Observability is part of the [Container Storage Modules](https://github.com/dell/csm) open source suite of Kubernetes storage enablers for Dell EMC storage products. CSM for Observability provides Kubernetes administrators with visibility into metrics and topology data related to containerized storage.
type: application
version: 1.1.1
version: 1.3.0
dependencies:
- name: cert-manager
version: 1.6.1
Expand Down
3 changes: 2 additions & 1 deletion charts/karavi-observability/otel-collector-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ receivers:
otlp:
protocols:
grpc:
tls_settings:
endpoint: 0.0.0.0:55680
tls:
cert_file: /etc/ssl/certs/tls.crt
key_file: /etc/ssl/certs/tls.key

Expand Down
12 changes: 12 additions & 0 deletions charts/karavi-observability/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,15 @@ CSM Metrics for PowerStore
From inside the Kubernetes cluster: otel-collector:8443

{{- end}}

{{ if .Values.karaviMetricsPowerscale.enabled -}}

CSM Metrics for PowerScale

The CSM Metrics for PowerScale deployment has been successfully installed.

Provisioner Names: {{ .Values.karaviMetricsPowerscale.provisionerNames }}
Prometheus Scrape Target:
From inside the Kubernetes cluster: otel-collector:8443

{{- end}}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ spec:
env:
- name: PROXY_HOST
value: "{{ .Values.karaviMetricsPowerflex.authorization.proxyHost }}"
- name: INSECURE
- name: SKIP_CERTIFICATE_VALIDATION
value: "{{ .Values.karaviMetricsPowerflex.authorization.skipCertificateValidation }}"
- name: PLUGIN_IDENTIFIER
value: powerflex
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{{ if .Values.karaviMetricsPowerscale.enabled }}

apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-metrics-powerscale-controller
namespace: {{ .Release.Namespace }}

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Release.Name }}-metrics-powerscale-controller
rules:
- apiGroups: ["storage.k8s.io"]
resources: ["csinodes", "storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumes", "nodes"]
verbs: ["list"]
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["*"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Name }}-metrics-powerscale-controller
subjects:
- kind: ServiceAccount
name: {{ .Release.Name }}-metrics-powerscale-controller
namespace: {{ .Release.Namespace }}
roleRef:
kind: ClusterRole
name: {{ .Release.Name }}-metrics-powerscale-controller
apiGroup: rbac.authorization.k8s.io

{{ end }}

131 changes: 131 additions & 0 deletions charts/karavi-observability/templates/karavi-metrics-powerscale.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{{ if .Values.karaviMetricsPowerscale.enabled }}

apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}
name: karavi-metrics-powerscale
spec:
type: {{ .Values.karaviMetricsPowerscale.service.type }}
ports:
- name: karavi-metrics-powerscale
port: 8080
targetPort: 8080
selector:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: karavi-metrics-powerscale
labels:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if hasKey .Values "karaviMetricsPowerscale.authorization" }}
{{- if eq .Values.karaviMetricsPowerscale.authorization.enabled true }}
annotations:
com.dell.karavi-authorization-proxy: "true"
{{ end }}
{{ end }}
spec:
selector:
matchLabels:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}
replicas: 1
strategy: {}
template:
metadata:
labels:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powerscale-controller
containers:
- name: karavi-metrics-powerscale
image: {{ .Values.karaviMetricsPowerscale.image }}
resources: {}
env:
- name: POWERSCALE_METRICS_ENDPOINT
value: "{{ .Values.karaviMetricsPowerscale.endpoint }}"
- name: POWERSCALE_METRICS_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: TLS_ENABLED
value: "true"
volumeMounts:
- name: isilon-creds
mountPath: /isilon-creds
- name: tls-secret
mountPath: /etc/ssl/certs
readOnly: true
- name: karavi-metrics-powerscale-configmap
mountPath: /etc/config
{{- if hasKey .Values.karaviMetricsPowerscale "authorization" }}
{{- if eq .Values.karaviMetricsPowerscale.authorization.enabled true }}
- name: karavi-authorization-proxy
imagePullPolicy: IfNotPresent
image: {{ required "Must provide the authorization sidecar container image." .Values.karaviMetricsPowerscale.authorization.sidecarProxyImage }}
env:
- name: PROXY_HOST
value: "{{ .Values.karaviMetricsPowerscale.authorization.proxyHost }}"
- name: SKIP_CERTIFICATE_VALIDATION
value: "{{ .Values.karaviMetricsPowerscale.authorization.skipCertificateValidation }}"
- name: PLUGIN_IDENTIFIER
value: powerscale
- name: ACCESS_TOKEN
valueFrom:
secretKeyRef:
name: isilon-proxy-authz-tokens
key: access
- name: REFRESH_TOKEN
valueFrom:
secretKeyRef:
name: isilon-proxy-authz-tokens
key: refresh
volumeMounts:
- name: karavi-authorization-config
mountPath: /etc/karavi-authorization/config
- name: proxy-server-root-certificate
mountPath: /etc/karavi-authorization/root-certificates
- name: isilon-config-params
mountPath: /etc/karavi-authorization
{{ end }}
{{ end }}
volumes:
- name: isilon-creds
secret:
secretName: isilon-creds
- name: tls-secret
secret:
secretName: otel-collector-tls
items:
- key: tls.crt
path: cert.crt
- name: karavi-metrics-powerscale-configmap
configMap:
name: karavi-metrics-powerscale-configmap
{{- if hasKey .Values.karaviMetricsPowerscale "authorization" }}
{{- if eq .Values.karaviMetricsPowerscale.authorization.enabled true }}
- name: karavi-authorization-config
secret:
secretName: isilon-karavi-authorization-config
- name: proxy-server-root-certificate
secret:
secretName: isilon-proxy-server-root-certificate
- name: isilon-config-params
configMap:
name: isilon-config-params
{{ end }}
{{ end }}
restartPolicy: Always
status: {}

{{ end }}

Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,28 @@ data:

{{ end }}

---

{{ if .Values.karaviMetricsPowerscale.enabled }}

apiVersion: v1
kind: ConfigMap
metadata:
name: karavi-metrics-powerscale-configmap
data:
karavi-metrics-powerscale.yaml : |
COLLECTOR_ADDR: {{ .Values.karaviMetricsPowerscale.collectorAddr }}
PROVISIONER_NAMES: {{ .Values.karaviMetricsPowerscale.provisionerNames }}
POWERSCALE_MAX_CONCURRENT_QUERIES: "{{ .Values.karaviMetricsPowerscale.concurrentPowerscaleQueries }}"
POWERSCALE_CAPACITY_METRICS_ENABLED: "{{ .Values.karaviMetricsPowerscale.capacityMetricsEnabled }}"
POWERSCALE_PERFORMANCE_METRICS_ENABLED: "{{ .Values.karaviMetricsPowerscale.performanceMetricsEnabled }}"
POWERSCALE_CLUSTER_CAPACITY_POLL_FREQUENCY: "{{ .Values.karaviMetricsPowerscale.clusterCapacityPollFrequencySeconds }}"
POWERSCALE_CLUSTER_PERFORMANCE_POLL_FREQUENCY: "{{ .Values.karaviMetricsPowerscale.clusterPerformancePollFrequencySeconds }}"
POWERSCALE_QUOTA_CAPACITY_POLL_FREQUENCY: "{{ .Values.karaviMetricsPowerscale.quotaCapacityPollFrequencySeconds }}"
POWERSCALE_ISICLIENT_INSECURE: "{{ .Values.karaviMetricsPowerscale.isiClientOptions.isiSkipCertificateValidation }}"
POWERSCALE_ISICLIENT_AUTH_TYPE: "{{ .Values.karaviMetricsPowerscale.isiClientOptions.isiAuthType }}"
POWERSCALE_ISICLIENT_VERBOSE: "{{ .Values.karaviMetricsPowerscale.isiClientOptions.isiLogVerbose }}"
LOG_LEVEL: "{{ .Values.karaviMetricsPowerscale.logLevel }}"
LOG_FORMAT: "{{ .Values.karaviMetricsPowerscale.logFormat }}"

{{ end }}
66 changes: 58 additions & 8 deletions charts/karavi-observability/values.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
karaviTopology:
image: dellemc/csm-topology:v1.1.0
image: dellemc/csm-topology:v1.3.0
enabled: true
# comma separated list of provisioner names (ex: csi-vxflexos.dellemc.com)
provisionerNames: csi-vxflexos.dellemc.com,csi-powerstore.dellemc.com
provisionerNames: csi-vxflexos.dellemc.com,csi-powerstore.dellemc.com,csi-isilon.dellemc.com
service:
type: ClusterIP
logLevel: INFO
Expand All @@ -13,7 +13,7 @@ karaviTopology:
probability: 0.0

karaviMetricsPowerflex:
image: dellemc/csm-metrics-powerflex:v1.1.1
image: dellemc/csm-metrics-powerflex:v1.3.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-vxflexos.dellemc.com)
Expand All @@ -40,8 +40,8 @@ karaviMetricsPowerflex:
authorization:
enabled: false
# sidecarProxyImage: the container image used for the csm-authorization-sidecar.
# Default value: dellemc/csm-authorization-sidecar:v1.2.0
sidecarProxyImage: dellemc/csm-authorization-sidecar:v1.2.0
# Default value: dellemc/csm-authorization-sidecar:v1.4.0
sidecarProxyImage: dellemc/csm-authorization-sidecar:v1.4.0
# proxyHost: hostname of the csm-authorization server
# Default value: None
proxyHost:
Expand All @@ -53,7 +53,7 @@ karaviMetricsPowerflex:
skipCertificateValidation: true

karaviMetricsPowerstore:
image: dellemc/csm-metrics-powerstore:v1.1.1
image: dellemc/csm-metrics-powerstore:v1.3.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-powerstore.dellemc.com)
Expand All @@ -78,12 +78,62 @@ karaviMetricsPowerstore:
serviceName: metrics-powerstore
probability: 0.0

karaviMetricsPowerscale:
image: dellemc/csm-metrics-powerscale:v1.3.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-isilon.dellemc.com)
provisionerNames: csi-isilon.dellemc.com
# set capacityMetricsEnabled to "false" to disable collection of capacity metrics
capacityMetricsEnabled: "true"
# set performanceMetricsEnabled to "false" to disable collection of performance metrics
performanceMetricsEnabled: "true"
# set polling frequency to get cluster capacity metrics data
clusterCapacityPollFrequencySeconds: 30
# set polling frequency to get cluster performance data
clusterPerformancePollFrequencySeconds: 20
# set polling frequency to get quota capacity metrics data
quotaCapacityPollFrequencySeconds: 30
# set the the default max concurrent queries to PowerScale
concurrentPowerscaleQueries: 10
# set the default endpoint for PowerScale service
endpoint: karavi-metrics-powerscale
service:
type: ClusterIP
logLevel: INFO
logFormat: text
# isiClientOptions to access Powerscale OneFS API server
isiClientOptions:
# set isiSkipCertificateValidation to true/false to skip/verify OneFS API server's certificates
# default isiSkipCertificateValidation: true to skip OneFS API server's certificates
isiSkipCertificateValidation: true
# set isiAuthType to 0/1 to enables session-based/basic Authentication
# default isiAuthType: 0 to use session-based Authentication
isiAuthType: 1
# set isiLogVerbose to 0/1/2 decide High/Medium/Low content of the OneFS REST API message should be logged in debug level logs
# default isiLogVerbose: 0 to log full content of the HTTP request and response
isiLogVerbose: 0
authorization:
enabled: false
# sidecarProxyImage: the container image used for the csm-authorization-sidecar.
# Default value: dellemc/csm-authorization-sidecar:v1.4.0
sidecarProxyImage: dellemc/csm-authorization-sidecar:v1.4.0
# proxyHost: hostname of the csm-authorization server
# Default value: None
proxyHost:
# skipCertificateValidation: certificate validation of the csm-authorization server
# Allowed Values:
# "true" - TLS certificate verification will be skipped
# "false" - TLS certificate will be verified
# Default value: "true"
skipCertificateValidation: true

otelCollector:
image: otel/opentelemetry-collector:0.9.0
image: otel/opentelemetry-collector:0.42.0
service:
type: ClusterIP
nginxProxy:
image: nginxinc/nginx-unprivileged:1.18
image: nginxinc/nginx-unprivileged:1.20

cert-manager:
startupapicheck:
Expand Down