diff --git a/catalog.json b/catalog.json index 023104c1b1..6320d8d8d6 100644 --- a/catalog.json +++ b/catalog.json @@ -104,10 +104,10 @@ "healthy": true, "healthy_error": null, "location": "/__w/charts/charts/charts/netdata", - "latest_version": "1.0.15", + "latest_version": "1.0.16", "latest_app_version": "v1.38.1", - "latest_human_version": "v1.38.1_1.0.15", - "last_update": "2023-02-16 00:00:23", + "latest_human_version": "v1.38.1_1.0.16", + "last_update": "2023-03-21 16:20:11", "name": "netdata", "recommended": false, "title": "Netdata", diff --git a/charts/netdata/1.0.16/.helmignore b/charts/netdata/1.0.16/.helmignore new file mode 100644 index 0000000000..a9fe727881 --- /dev/null +++ b/charts/netdata/1.0.16/.helmignore @@ -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 +*~ +# Various IDEs +.project +.idea/ +*.tmproj +# OWNERS file for Kubernetes +OWNERS \ No newline at end of file diff --git a/charts/netdata/1.0.16/Chart.lock b/charts/netdata/1.0.16/Chart.lock new file mode 100644 index 0000000000..cdb362cd54 --- /dev/null +++ b/charts/netdata/1.0.16/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +digest: sha256:a301ba0f99ec1e08a60a7f0a0320aa02d225993572f2f056f09520f06df88b37 +generated: "2023-03-21T15:59:22.229067135Z" diff --git a/charts/netdata/1.0.16/Chart.yaml b/charts/netdata/1.0.16/Chart.yaml new file mode 100644 index 0000000000..8289476c4e --- /dev/null +++ b/charts/netdata/1.0.16/Chart.yaml @@ -0,0 +1,25 @@ +name: netdata +description: Real-time performance monitoring, done right! +annotations: + title: Netdata +type: application +version: 1.0.16 +apiVersion: v2 +appVersion: v1.38.1 +kubeVersion: ">=1.16.0-0" +maintainers: +- name: truenas + url: https://www.truenas.com/ +dependencies: +- name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +home: https://www.netdata.cloud/ +icon: https://netdata.github.io/helmchart/logo.png +sources: +- https://github.com/netdata/helmchart +- https://github.com/netdata/netdata +keywords: +- alerting +- metric +- monitoring diff --git a/charts/netdata/1.0.16/README.md b/charts/netdata/1.0.16/README.md new file mode 100755 index 0000000000..236b8a4f8b --- /dev/null +++ b/charts/netdata/1.0.16/README.md @@ -0,0 +1,10 @@ +Netdata +===== + +[Netdata](https://www.netdata.cloud/) is a fast, easy monitoring and troubleshooting system. + + +Introduction +------------ + +This chart bootstraps Netdata deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. diff --git a/charts/netdata/1.0.16/app-readme.md b/charts/netdata/1.0.16/app-readme.md new file mode 100644 index 0000000000..09f11cfa63 --- /dev/null +++ b/charts/netdata/1.0.16/app-readme.md @@ -0,0 +1 @@ +[Netdata](https://www.netdata.cloud/) is a fast, easy monitoring and troubleshooting system. diff --git a/charts/netdata/1.0.16/charts/common-2207.0.0.tgz b/charts/netdata/1.0.16/charts/common-2207.0.0.tgz new file mode 100644 index 0000000000..5642d64119 Binary files /dev/null and b/charts/netdata/1.0.16/charts/common-2207.0.0.tgz differ diff --git a/charts/netdata/1.0.16/ci/test-values.yaml b/charts/netdata/1.0.16/ci/test-values.yaml new file mode 100644 index 0000000000..77e808072d --- /dev/null +++ b/charts/netdata/1.0.16/ci/test-values.yaml @@ -0,0 +1,38 @@ +appVolumeMounts: + netdatacache: + emptyDir: true + mountPath: /var/cache/netdata + netdataconfig: + emptyDir: true + mountPath: /etc/netdata + netdatalib: + emptyDir: true + mountPath: /var/lib/netdata +dnsConfig: + options: [] +environmentVariables: [] +extraAppVolumeMounts: [] +global: + ixChartContext: + isInstall: true + isUpdate: false + isUpgrade: false + operation: INSTALL + storageClassName: ix-storage-class-netdata + upgradeMetadata: {} +ixCertificateAuthorities: {} +ixCertificates: {} +ixChartContext: + isInstall: true + isUpdate: false + isUpgrade: false + operation: INSTALL + storageClassName: ix-storage-class-netdata + upgradeMetadata: {} +ixExternalInterfacesConfiguration: [] +ixExternalInterfacesConfigurationNames: [] +ixVolumes: [] +runAsGroup: 201 +runAsUser: 201 +service: + nodePort: 32189 diff --git a/charts/netdata/1.0.16/ix_values.yaml b/charts/netdata/1.0.16/ix_values.yaml new file mode 100644 index 0000000000..416ffa0adb --- /dev/null +++ b/charts/netdata/1.0.16/ix_values.yaml @@ -0,0 +1,6 @@ +image: + pullPolicy: IfNotPresent + repository: netdata/netdata + tag: v1.38.1 +runAsGroup: 201 +runAsUser: 201 diff --git a/charts/netdata/1.0.16/questions.yaml b/charts/netdata/1.0.16/questions.yaml new file mode 100644 index 0000000000..1e1b727e69 --- /dev/null +++ b/charts/netdata/1.0.16/questions.yaml @@ -0,0 +1,253 @@ +groups: + - name: "Container Images" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Netdata Configuration" + description: "Configure Netdata credentials" + - name: "Storage" + description: "Configure Storage for Netdata" + - name: "Advanced DNS Settings" + description: "Configure DNS settings" + - name: "Resource Limits" + description: "Set CPU/memory limits for Kubernetes Pod" + +portals: + web_portal: + protocols: + - "http" + host: + - "$node_ip" + ports: + - "$variable-service.nodePort" + +questions: + - variable: dnsConfig + label: "DNS Configuration" + group: "Advanced DNS Settings" + schema: + type: dict + attrs: + - variable: options + label: "DNS Options" + schema: + type: list + items: + - variable: optionsEntry + label: "Option Entry Configuration" + schema: + type: dict + attrs: + - variable: name + label: "Option Name" + schema: + type: string + required: true + - variable: value + label: "Option Value" + schema: + type: string + required: true + + - variable: environmentVariables + label: "Netdata image environment" + group: "Netdata Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: service + description: "Netdata Service Configuration" + label: "Netdata Service Configuration" + group: "Netdata Configuration" + schema: + type: dict + required: true + attrs: + - variable: nodePort + label: "Node Port to use for Netdata UI" + schema: + type: int + min: 9000 + max: 65535 + default: 20489 + required: true + + - variable: appVolumeMounts + label: "Netdata Storage" + group: "Storage" + schema: + type: dict + attrs: + - variable: netdataconfig + label: "Configuration Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Configuration Volume Name" + schema: + type: string + hidden: true + $ref: + - "normalize/ixVolume" + show_if: [ [ "hostPathEnabled", "=", false ] ] + default: "ix-config" + editable: false + - variable: mountPath + label: "Configuration Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + hidden: true + editable: false + default: "/etc/netdata" + - variable: hostPathEnabled + label: "Enable Host Path for Netdata Configuration Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Netdata Configuration Volume" + schema: + type: hostpath + required: true + immutable: true + - variable: netdatacache + label: "Cache Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Cache Volume Name" + schema: + type: string + hidden: true + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-cache" + editable: false + - variable: mountPath + label: "Cache Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + hidden: true + editable: false + default: "/var/cache/netdata" + - variable: hostPathEnabled + label: "Enable Host Path for Netdata Cache Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Netdata Cache Volume" + schema: + type: hostpath + required: true + immutable: true + - variable: netdatalib + label: "Netdata Library Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Netdata Library Volume Name" + schema: + type: string + hidden: true + $ref: + - "normalize/ixVolume" + show_if: [ [ "hostPathEnabled", "=", false ] ] + default: "ix-lib" + editable: false + - variable: mountPath + label: "Netdata Library Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + hidden: true + editable: false + default: "/var/lib/netdata" + - variable: hostPathEnabled + label: "Enable Host Path for Netdata Library Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Netdata Library Volume" + schema: + type: hostpath + required: true + immutable: true + + - variable: extraAppVolumeMounts + label: "Extra Host Path Volumes" + group: "Storage" + schema: + type: list + items: + - variable: extraAppVolume + label: "Host Path Volume" + description: "Add an extra host path volume for Netdata application" + schema: + type: dict + attrs: + - variable: mountPath + label: "Mount Path in Pod" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + required: true + - variable: hostPath + label: "Host Path" + description: "Host path" + schema: + type: hostpath + required: true + + - variable: enableResourceLimits + label: "Enable Pod resource limits" + group: "Resource Limits" + schema: + type: boolean + default: false + - variable: cpuLimit + label: "CPU Limresource limitsit" + description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100." + group: "Resource Limits" + schema: + type: string + show_if: [["enableResourceLimits", "=", true]] + valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)" + default: "4000m" + - variable: memLimit + label: "Memory Limit" + group: "Resource Limits" + description: "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi" + schema: + type: string + show_if: [["enableResourceLimits", "=", true]] + valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" + default: "8Gi" diff --git a/charts/netdata/1.0.16/templates/_helpers.tpl b/charts/netdata/1.0.16/templates/_helpers.tpl new file mode 100644 index 0000000000..0b76aed34a --- /dev/null +++ b/charts/netdata/1.0.16/templates/_helpers.tpl @@ -0,0 +1,32 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "netdata.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 "netdata.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 as used by the chart label. +*/}} +{{- define "netdata.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/charts/netdata/1.0.16/templates/clusterrole.yaml b/charts/netdata/1.0.16/templates/clusterrole.yaml new file mode 100644 index 0000000000..cd1862784c --- /dev/null +++ b/charts/netdata/1.0.16/templates/clusterrole.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "netdata.fullname" . }} + labels: + app: {{ template "netdata.name" . }} + chart: {{ template "netdata.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +rules: + - apiGroups: [""] + resources: + - "pods" # used by sd, netdata (cgroup-name.sh, get-kubernetes-labels.sh) + - "services" # used by sd + - "configmaps" # used by sd + - "secrets" # used by sd + verbs: + - "get" + - "list" + - "watch" + - apiGroups: [""] + resources: + - "namespaces" # used by netdata (cgroup-name.sh, get-kubernetes-labels.sh) + verbs: + - "get" diff --git a/charts/netdata/1.0.16/templates/clusterrolebinding.yaml b/charts/netdata/1.0.16/templates/clusterrolebinding.yaml new file mode 100644 index 0000000000..27152168c3 --- /dev/null +++ b/charts/netdata/1.0.16/templates/clusterrolebinding.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "netdata.fullname" . }} + labels: + app: {{ template "netdata.name" . }} + chart: {{ template "netdata.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "netdata.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ .Release.Name }} + namespace: {{ .Release.Namespace }} diff --git a/charts/netdata/1.0.16/templates/deployment.yaml b/charts/netdata/1.0.16/templates/deployment.yaml new file mode 100644 index 0000000000..06290d1435 --- /dev/null +++ b/charts/netdata/1.0.16/templates/deployment.yaml @@ -0,0 +1,103 @@ +{{ include "common.storage.hostPathValidate" .Values }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "netdata.name" . }} + labels: + app: {{ template "netdata.name" . }} + chart: {{ template "netdata.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + role: parent +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} + annotations: + rollme: {{ randAlphaNum 5 | quote }} + spec: + securityContext: + fsGroup: 201 + serviceAccountName: {{ .Release.Name }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + {{ include "common.resources.limitation" . | nindent 10 }} + env: + {{ $envList := (default list .Values.environmentVariables) }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} + ports: + - name: http + containerPort: 19999 + protocol: TCP + livenessProbe: + httpGet: + path: /api/v1/info + port: http + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 5 + successThreshold: 1 + readinessProbe: + httpGet: + path: /api/v1/info + port: http + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 5 + successThreshold: 2 + startupProbe: + httpGet: + path: /api/v1/info + port: http + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 60 + successThreshold: 1 + volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} + - name: os-release + mountPath: /host/etc/os-release + readOnly: true + - name: sys + mountPath: /host/sys + readOnly: true + - name: proc + mountPath: /host/proc + readOnly: true + - name: user + mountPath: /host/etc/passwd + readOnly: true + - name: group + mountPath: /host/etc/group + readOnly: true + securityContext: + capabilities: + add: + - SYS_PTRACE + terminationGracePeriodSeconds: 60 + {{ include "common.networking.dnsConfiguration" .Values | nindent 6 }} + volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }} + - name: os-release + hostPath: + path: /etc/os-release + - name: proc + hostPath: + path: /proc + - name: sys + hostPath: + path: /sys + - name: user + hostPath: + path: /etc/passwd + - name: group + hostPath: + path: /etc/group diff --git a/charts/netdata/1.0.16/templates/pre-install-job.yaml b/charts/netdata/1.0.16/templates/pre-install-job.yaml new file mode 100644 index 0000000000..64505b23e5 --- /dev/null +++ b/charts/netdata/1.0.16/templates/pre-install-job.yaml @@ -0,0 +1,34 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ template "common.names.fullname" . }}-preinstall-job" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ template "common.names.chart" . }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ template "common.names.fullname" . }}-preinstall-hook" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + helm.sh/chart: {{ template "common.names.chart" . }} + spec: + restartPolicy: Never + containers: + - name: pre-install-job + image: "alpine:latest" + command: + - chown + - -R + - {{ .Values.runAsUser }}:{{ .Values.runAsGroup }} + - {{ .Values.appVolumeMounts.netdatacache.mountPath }} + - {{ .Values.appVolumeMounts.netdatalib.mountPath }} + - {{ .Values.appVolumeMounts.netdataconfig.mountPath }} + volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} + volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }} diff --git a/charts/netdata/1.0.16/templates/service.yaml b/charts/netdata/1.0.16/templates/service.yaml new file mode 100644 index 0000000000..81c478b423 --- /dev/null +++ b/charts/netdata/1.0.16/templates/service.yaml @@ -0,0 +1,6 @@ +{{ $svc := .Values.service }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "ui" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 19999) }} +{{ $params := . }} +{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} +{{ include "common.classes.service" $params }} diff --git a/charts/netdata/1.0.16/templates/serviceaccount.yaml b/charts/netdata/1.0.16/templates/serviceaccount.yaml new file mode 100644 index 0000000000..6338f0c7f0 --- /dev/null +++ b/charts/netdata/1.0.16/templates/serviceaccount.yaml @@ -0,0 +1,9 @@ +kind: ServiceAccount +apiVersion: v1 +metadata: + labels: + app: {{ template "netdata.name" . }} + chart: {{ template "netdata.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + name: {{ .Release.Name }} diff --git a/charts/netdata/item.yaml b/charts/netdata/item.yaml new file mode 100644 index 0000000000..ac61888330 --- /dev/null +++ b/charts/netdata/item.yaml @@ -0,0 +1,3 @@ +categories: + - reporting +icon_url: https://netdata.github.io/helmchart/logo.png