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

Add IOMesh v1.0.1 Helm Charts. #390

Merged
merged 1 commit into from
Apr 10, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
23 changes: 23 additions & 0 deletions src/stable/iomesh/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
27 changes: 27 additions & 0 deletions src/stable/iomesh/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: v2
appVersion: v5.3.0-rc13
dependencies:
- name: zookeeper-operator
repository: http://iomesh.com/charts
version: 0.2.15
- name: hostpath-provisioner
repository: http://iomesh.com/charts
version: 0.5.3
- condition: openebs-ndm.enabled
name: openebs-ndm
repository: http://iomesh.com/charts
version: 1.8.0
- name: csi-driver
repository: http://iomesh.com/charts
version: 2.6.0
- name: blockdevice-monitor
repository: http://iomesh.com/charts
version: 0.1.0
- condition: iomesh-localpv-manager.enabled
name: iomesh-localpv-manager
repository: http://iomesh.com/charts
version: 0.1.0
description: Install all IOMesh components
name: iomesh
type: application
version: v1.0.1
36 changes: 36 additions & 0 deletions src/stable/iomesh/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# IOMesh Helm Chart

## Introduction

IOMesh is a Kubernetes-native storage system that manages storage resources within a Kubernetes cluster, automates operations and maintenance, and provides persistent storage, data protection and migration capabilities for data applications such as MySQL, Cassandra, MongoDB and middleware running on Kubernetes.

**Homepage:** [https://docs.iomesh.com/introduction/introduction](https://docs.iomesh.com/introduction/introduction)

## Prerequisites

[https://docs.iomesh.com/deploy-iomesh-cluster/prerequisites](https://docs.iomesh.com/deploy-iomesh-cluster/prerequisites)

## Installation

[https://docs.iomesh.com/deploy-iomesh-cluster/install-iomesh](https://docs.iomesh.com/deploy-iomesh-cluster/install-iomesh)

## Uninstallation

Uninstall **IOMesh cluster** helm chart

Specify the current release name and namespace to uninstall.

```bash
helm uninstall --namespace iomesh-system iomesh
```
If there are IOMesh resources left after uninstalling IOMesh due to network or other issues, run the following command to clear all IOMesh resources.
```bash
curl -sSL https://iomesh.run/uninstall_iomesh.sh | sh -
```
## Configuration

[https://docs.iomesh.com/deploy-iomesh-cluster/setup-iomesh](https://docs.iomesh.com/deploy-iomesh-cluster/setup-iomesh)

## Contact Us

[https://www.iomesh.com/contact](https://www.iomesh.com/contact)
23 changes: 23 additions & 0 deletions src/stable/iomesh/charts/blockdevice-monitor/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
6 changes: 6 additions & 0 deletions src/stable/iomesh/charts/blockdevice-monitor/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
appVersion: v0.1.0
description: A disk health component
name: blockdevice-monitor
type: application
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: blockdevicemonitors.iomesh.com
spec:
group: iomesh.com
names:
kind: BlockDeviceMonitor
listKind: BlockDeviceMonitorList
plural: blockdevicemonitors
shortNames:
- bdm
singular: blockdevicemonitor
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Unique binding to BlockDevice
jsonPath: .spec.bindedBlockDevice
name: BLOCKDEVICENAME
type: string
- description: The name of node where the device is mounted
jsonPath: .spec.nodeName
name: NODENAME
type: string
- description: Device Path e.g. /dev/sda
jsonPath: .spec.devicePath
name: DEVICEPATH
type: string
- description: Driver Type, the value is among HDD, SSD, NVMe
jsonPath: .spec.driverType
name: DriverType
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: BlockDeviceMonitor is the Schema for the blockdevicemonitors
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: BlockDeviceMonitorSpec defines the desired state of BlockDeviceMonitor
properties:
bindedBlockDevice:
description: BindedBlockDevie unique binding to BlockDevice
type: string
devicePath:
type: string
driverType:
type: string
nodeName:
type: string
required:
- bindedBlockDevice
type: object
status:
description: BlockDeviceMonitorStatus defines the observed state of BlockDeviceMonitor
properties:
iostat:
description: 'IOStat Determine slow disk according to iostat HDD slow
disk: within the last 90s, within six consecutive 15s intervals:
1. The average delay is greater than 3000ms 2. IOPS less than 50
3. Read and write speeds do not exceed 50MiB/s (102400 logical sectors
per second) SSD slow disk: within the last 90s, six consecutive
15s intervals: 1. Average latency greater than 500ms 2. IOPS less
than 5000 3. Read and write speeds d0 not exceed 150MiB/s (307200
logical sectors per second)'
properties:
iops:
description: IOPS average number of reads and writes per second
format: int64
type: integer
latencyMS:
description: LatencyMS average disk read and write latency
format: int64
type: integer
slow:
description: Slow disk, is true if latency > thresh.
type: boolean
totalBandwidth:
description: TotalBandwidth read and write disk speed unit bytes
per second.
format: int64
type: integer
required:
- slow
type: object
lastUpdateDateTime:
description: LastUpdateDateTime resource last updated time
properties:
nanos:
description: Non-negative fractions of a second at nanosecond
resolution. Negative second values with fractions must still
have non-negative nanos values that count forward in time. Must
be from 0 to 999,999,999 inclusive. This field may be limited
in precision depending on context.
format: int32
type: integer
seconds:
description: Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.
Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
format: int64
type: integer
required:
- nanos
- seconds
type: object
smart:
description: Smart Disk S.M.A.R.T information
properties:
lifespanPercentage:
description: Lifespan disk life percentage
format: int64
type: integer
smartSelfTestStatus:
type: string
type: object
zbsDeviceHealth:
additionalProperties:
description: ZBSDeviceHealthDetail Distributed block storage disk
device health information.
properties:
errflags:
description: Errflags Disk read and write failure
format: int32
type: integer
mountStatus:
description: The Status is determined in Cache, Partition, and
Journal according to the mount type
type: string
mountType:
type: string
numChecksumErrors:
description: NumChecksumErrors counts of checksum errors
format: int64
type: integer
numIOErrors:
description: NumIOErrors device io error counts.
format: int64
type: integer
numSlowIO:
description: NumSlowIO device slow io counts
format: int64
type: integer
warnflags:
description: Warnflags record disk warning status
format: int32
type: integer
required:
- errflags
- mountStatus
- mountType
- numChecksumErrors
- numIOErrors
- numSlowIO
- warnflags
type: object
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
20 changes: 20 additions & 0 deletions src/stable/iomesh/charts/blockdevice-monitor/rules/iomesh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
- alert: Insufficient physical disk lifetime
expr: ((blockdevicemonitor_smart_lifespan_percentage != -1) and (blockdevicemonitor_smart_lifespan_percentage < 20)) * on (hash) group_left (node, device_name, serial_number) blockdevicemonitor_blockdevice_info
for: 1m
labels:
severity: Notice
annotations:
summary: "Node {{ $labels.node }}: The remaining lifetime of the physical disk {{ $labels.serial_number }}({{ $labels.device_name }}) is less than 20%."
description: It is detected that the physical disk has an insufficient lifetime.
impact: The risk of failure and performance degradation increases significantly as the physical disk reaches the end of its life.
solution: Please replace the physical disk in time.
- alert: Physical disk S.M.A.R.T failed
expr: (blockdevicemonitor_smart_self_test_status == 2) * on(hash) group_left(node,device_name,serial_number) blockdevicemonitor_blockdevice_info
for: 1m
labels:
severity: Critical
annotations:
summary: "Node {{ $labels.node }}: Physical disk {{ $labels.serial_number }}({{ $labels.device_name }}) S.M.A.R.T. check failed."
description: The S.M.A.R.T. test of the physical disk is abnormal.
impact: The risk of failure of the physical disk increases significantly.
solution: Please replace the physical disk in time.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-blockdevice-monitor
namespace: {{ .Release.Namespace }}
labels:
app: blockdevice-monitor
spec:
selector:
matchLabels:
app: blockdevice-monitor
replicas: 1
template:
metadata:
labels:
app: blockdevice-monitor
spec:
{{- with .Values.blockdevicemonitor.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.blockdevicemonitor.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.blockdevicemonitor.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: blockdevicemonitor
command:
- /blockdevicemonitor
- --blockdevicemonitor-metrics-port={{ .Values.blockdevicemonitor.metrics.port }}
image: {{ .Values.global.registry }}{{ .Values.blockdevicemonitor.image.repository }}:{{ .Values.blockdevicemonitor.image.tag | default .Chart.AppVersion }}
imagePullPolicy: {{ .Values.blockdevicemonitor.image.pullPolicy }}
resources:
limits:
memory: {{ .Values.blockdevicemonitor.resources.limits.memory }}
env:
- name: BLOCK_DEVICE_NAMESPACE
value: {{ .Release.Namespace }}
ports:
- name: {{ .Values.blockdevicemonitor.metrics.portName }}
containerPort: {{ .Values.blockdevicemonitor.metrics.port }}

Loading
Loading