Skip to content

Commit

Permalink
Karavi Observability 1.0.0 (#98)
Browse files Browse the repository at this point in the history
updates for 1.0.0 release
  • Loading branch information
sharmilarama authored Sep 17, 2021
1 parent 9f577d6 commit 353783e
Show file tree
Hide file tree
Showing 20 changed files with 347 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/helm-validations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
run: |
URL="https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files"
FILES=$(curl -s -X GET -G $URL | jq -r '.[] | .filename')
echo $FILES | grep \.yaml$ && echo '::set-output name=run_tests::true' || true
echo $FILES | grep \.yaml && echo '::set-output name=run_tests::true' || true
# This job will run helm lint and version increment check on updated charts
lint:
Expand Down
2 changes: 0 additions & 2 deletions OWNERS
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
approvers:
- alikdell
- ameer-jabbar
- atye
- gallacher
- hoppea2
Expand All @@ -12,7 +11,6 @@ approvers:
- tdawe
reviewers:
- alikdell
- ameer-jabbar
- atye
- gallacher
- hoppea2
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
Copyright (c) 2020 Dell Inc., or its subsidiaries. All Rights Reserved.
Copyright (c) 2021 Dell Inc., or its subsidiaries. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -20,15 +20,17 @@ For more information about installing and using Helm, see the

## Where to Find Us

For general discussions, issues or support for Dell Helm Charts contact the team and community on the [mailing lists](mailto:[email protected]?subject=[Dell-Helms-Charts]%20<replace%20me%20with%20more%20specific%20subject>).
For all your support needs or to follow the latest ongoing discussions and updates, join our Slack group. Click [Here](http://del.ly/Slack_request) to request your invite.

You can also interact with us by creating a [GitHub issue](https://github.com/dell/helm-charts/issues).

## How to Install

```console
$ helm repo add dell https://dell.github.io/helm-charts
```

Please refer to individual chart documentation for installation.
For documentation, please visit [Container Storage Modules documentation](https://dell.github.io/csm-docs/docs/observability/deployment/helm#configuration).

## Contributing to an Existing Chart

Expand Down
6 changes: 3 additions & 3 deletions charts/karavi-observability/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
apiVersion: v2
appVersion: "0.3.0"
appVersion: "1.0.0"
name: karavi-observability
description: Karavi Observability is part of the [Karavi](https://github.com/dell/karavi) open source suite of Kubernetes storage enablers for Dell EMC storage products. Karavi Observability provides Kubernetes administrators with visibility into metrics and topology data related to containerized storage.
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: 0.3.0
version: 1.0.0
dependencies:
- name: cert-manager
version: 1.1.0
Expand Down
10 changes: 5 additions & 5 deletions charts/karavi-observability/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
Copyright (c) 2020 Dell Inc., or its subsidiaries. All Rights Reserved.
Copyright (c) 2021 Dell Inc., or its subsidiaries. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -8,12 +8,12 @@ You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
-->

# Dell Community Helm Chart for Karavi Observability
# Container Storage Modules (CSM) for Observability Dell Community Helm Chart

Karavi Observability can be deployed using Helm.
CSM for Observability can be deployed using Helm.

For complete deployment instructions, refer to the [Getting Started Guide](https://github.com/dell/karavi-observability/blob/main/docs/GETTING_STARTED_GUIDE.md) in the Karavi Observability Github repository.
For complete deployment instructions, refer to the [Container Storage Modules documentation](https://dell.github.io/csm-docs/docs/observability/deployment/helm).

## Helm Chart Versioning

For an explanation and examples on versioning/releasing the Karavi Observability Helm chart, please see the [contributing guide](../../docs/CONTRIBUTING.md#helm-chart-release-strategy).
For an explanation and examples on versioning/releasing the CSM for Observability Helm chart, please see the [contributing guide](../../docs/CONTRIBUTING.md#helm-chart-release-strategy).
32 changes: 26 additions & 6 deletions charts/karavi-observability/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,39 @@
Karavi Topology
The Karavi Topology deployment has been successfully installed.
{{ if .Values.karaviTopology.enabled -}}

CSM Topology
The CSM Topology deployment has been successfully installed.

{{ if contains "NodePort" .Values.karaviTopology.service.type -}}
Execute the following commands in your shell to print the URL that can be used to access the Karavi Topology service:
Execute the following commands in your shell to print the URL that can be used to access the CSM Topology service:
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services karavi-topology)
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo https://$NODE_IP:$NODE_PORT
{{ else if contains "ClusterIP" .Values.karaviTopology.service.type }}
The Karavi Topology service can be accessed at the following URL from within the Kubernetes cluster: https://karavi-topology.{{ .Release.Namespace }}.svc.cluster.local
The CSM Topology service can be accessed at the following URL from within the Kubernetes cluster: https://karavi-topology.{{ .Release.Namespace }}.svc.cluster.local
{{- end }}

{{- end }}

Karavi Metrics for PowerFlex
{{ if .Values.karaviMetricsPowerflex.enabled -}}

CSM Metrics for PowerFlex

The Karavi Metrics for PowerFlex deployment has been successfully installed.
The CSM Metrics for PowerFlex deployment has been successfully installed.

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

{{- end }}

{{ if .Values.karaviMetricsPowerstore.enabled -}}

CSM Metrics for PowerStore

The CSM Metrics for PowerStore deployment has been successfully installed.

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

{{- end}}
63 changes: 62 additions & 1 deletion charts/karavi-observability/templates/cert-manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,34 @@ spec:
---
{{- end }}

# If the karavi-metrics-powerstore cert and key are provided, deploy a CA Issuer using the cert and key
{{- if and (.Values.karaviMetricsPowerstore.certificateFile) (.Values.karaviMetricsPowerstore.privateKeyFile) }}
{{- $certificateFileContents := .Values.karaviMetricsPowerstore.certificateFile }}
{{- $privateKeyFileContents := .Values.karaviMetricsPowerstore.privateKeyFile }}
apiVersion: v1
data:
tls.crt: {{ $certificateFileContents | b64enc }}
tls.key: {{ $privateKeyFileContents | b64enc }}
kind: Secret
type: kubernetes.io/tls
metadata:
name: karavi-metrics-powerstore-secret
namespace: {{ .Release.Namespace }}

---

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: karavi-metrics-powerstore-issuer
namespace: {{ .Release.Namespace }}
spec:
ca:
secretName: karavi-metrics-powerstore-secret

---
{{- end }}

# If the otelCollector cert and key are provided, deploy a CA Issuer using the cert and key
{{- if and (.Values.otelCollector.certificateFile) (.Values.otelCollector.privateKeyFile) }}
{{- $certificateFileContents := .Values.otelCollector.certificateFile }}
Expand Down Expand Up @@ -55,7 +83,7 @@ spec:
{{- end }}

# If any set of cert+key combos are not provided, deploy a selfsigned-issuer
{{- if or (and (not .Values.karaviTopology.certificateFile) (not .Values.karaviTopology.privateKeyFile)) (and (not .Values.otelCollector.certificateFile) (not .Values.otelCollector.privateKeyFile)) }}
{{- if or (and (not .Values.karaviTopology.certificateFile) (not .Values.karaviTopology.privateKeyFile)) (and (not .Values.otelCollector.certificateFile) (not .Values.otelCollector.privateKeyFile)) (and (not .Values.karaviMetricsPowerstore.certificateFile) (not .Values.karaviMetricsPowerstore.privateKeyFile)) }}
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
Expand Down Expand Up @@ -133,3 +161,36 @@ spec:
kind: Issuer
group: cert-manager.io

---

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: karavi-metrics-powerstore
namespace: {{ .Release.Namespace }}
spec:
secretName: karavi-metrics-powerstore-tls
duration: 2160h # 90d
renewBefore: 360h # 15d
subject:
organizations:
- dellemc
isCA: false
privateKey:
algorithm: RSA
encoding: PKCS1
size: 2048
usages:
- server auth
- client auth
dnsNames:
- karavi-metrics-powerstore
- karavi-metrics-powerstore.karavi.svc.kubernetes.local
issuerRef:
{{- if and (.Values.karaviMetricsPowerstore.certificateFile) (.Values.karaviMetricsPowerstore.privateKeyFile) }}
name: karavi-metrics-powerstore-issuer
{{- else }}
name: selfsigned-issuer
{{- end }}
kind: Issuer
group: cert-manager.io
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{{ if .Values.karaviMetricsPowerflex.enabled }}

apiVersion: v1
kind: ServiceAccount
metadata:
Expand Down Expand Up @@ -35,3 +37,6 @@ roleRef:
kind: ClusterRole
name: {{ .Release.Name }}-metrics-powerflex-controller
apiGroup: rbac.authorization.k8s.io

{{ end }}

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{{ if .Values.karaviMetricsPowerflex.enabled }}

apiVersion: v1
kind: Service
metadata:
Expand Down Expand Up @@ -74,3 +76,6 @@ spec:
name: karavi-metrics-powerflex-configmap
restartPolicy: Always
status: {}

{{ end }}

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{{ if .Values.karaviMetricsPowerstore.enabled }}

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

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Release.Name }}-metrics-powerstore-controller
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["list"]
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["*"]

---

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

{{ end }}

Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{{ if .Values.karaviMetricsPowerstore.enabled }}

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

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: karavi-metrics-powerstore
labels:
app.kubernetes.io/name: karavi_metrics_powerstore
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
selector:
matchLabels:
app.kubernetes.io/name: karavi_metrics_powerstore
app.kubernetes.io/instance: {{ .Release.Name }}
replicas: 1
strategy: {}
template:
metadata:
labels:
app.kubernetes.io/name: karavi_metrics_powerstore
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powerstore-controller
containers:
- name: karavi-metrics-powerstore
image: {{ .Values.karaviMetricsPowerstore.image }}
resources: {}
env:
- name: POWERSTORE_METRICS_ENDPOINT
value: "{{ .Values.karaviMetricsPowerstore.endpoint }}"
- name: POWERSTORE_METRICS_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: TLS_ENABLED
value: "true"
volumeMounts:
- name: karavi-metrics-powerstore-secret-volume
mountPath: "/certs"
- name: powerstore-config
mountPath: /powerstore-config
- name: tls-secret
mountPath: /etc/ssl/certs
readOnly: true
- name: karavi-metrics-powerstore-configmap
mountPath: /etc/config
volumes:
- name: karavi-metrics-powerstore-secret-volume
secret:
secretName: karavi-metrics-powerstore-tls
items:
- key: tls.crt
path: localhost.crt
- key: tls.key
path: localhost.key
- name: powerstore-config
secret:
secretName: powerstore-config
- name: tls-secret
secret:
secretName: otel-collector-tls
items:
- key: tls.crt
path: cert.crt
- name: karavi-metrics-powerstore-configmap
configMap:
name: karavi-metrics-powerstore-configmap
restartPolicy: Always
status: {}

{{ end }}

Loading

0 comments on commit 353783e

Please sign in to comment.