diff --git a/README.md b/README.md index 3a3d0d3..d1208c4 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,5 @@ helm repo add ckotzbauer https://ckotzbauer.github.io/helm-charts - [access-manager](https://github.com/ckotzbauer/helm-charts/tree/main/charts/access-manager) - [cadvisor](https://github.com/ckotzbauer/helm-charts/tree/main/charts/cadvisor) - [chekr](https://github.com/ckotzbauer/helm-charts/tree/main/charts/chekr) -- [nfs-client-provisioner](https://github.com/ckotzbauer/helm-charts/tree/main/charts/nfs-client-provisioner) - [postgres-operator](https://github.com/ckotzbauer/helm-charts/tree/main/charts/postgres-operator) -- [prometheus-blackbox-exporter](https://github.com/ckotzbauer/helm-charts/tree/main/charts/prometheus-blackbox-exporter) - [sbom-operator](https://github.com/ckotzbauer/helm-charts/tree/main/charts/sbom-operator) diff --git a/charts/nfs-client-provisioner/Chart.yaml b/charts/nfs-client-provisioner/Chart.yaml deleted file mode 100644 index 7b06c55..0000000 --- a/charts/nfs-client-provisioner/Chart.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -description: DEPRECATED - nfs-client is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes. -name: nfs-client-provisioner -version: 2.0.0 -appVersion: 3.1.0 -home: https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client -sources: - - https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client - - https://github.com/ckotzbauer/helm-charts -maintainers: [] -keywords: - - nfs - - storage -deprecated: true diff --git a/charts/nfs-client-provisioner/README.md b/charts/nfs-client-provisioner/README.md deleted file mode 100644 index 5de9ae6..0000000 --- a/charts/nfs-client-provisioner/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# nfs-client-provisioner - -## Deprecation notice - -Please use the "nfs-subdir-external-provisioner" chart instead: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ -This chart will be removed at 31.01.2022!! - - -The [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) is an automatic provisioner for Kubernetes that uses your _already configured_ NFS server, automatically creating Persistent Volumes. - -## TL;DR; - -```console -$ helm install --set nfs.server=x.x.x.x --set nfs.path=/exported/path ckotzbauer/nfs-client-provisioner -``` - -For **arm** deployments set `image.repository` to `--set image.repository=quay.io/external_storage/nfs-client-provisioner-arm` - -## Introduction - -This charts installs custom [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) into a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also installs a [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) into the cluster which dynamically creates persistent volumes from single NFS share. - -## Prerequisites - -- Kubernetes 1.9+ -- Existing NFS Share - -## Installing the Chart - -To install the chart with the release name `my-release`: - -```console -$ helm install --name my-release --set nfs.server=x.x.x.x --set nfs.path=/exported/path ckotzbauer/nfs-client-provisioner -``` - -The command deploys the given storage class in the default configuration. It can be used afterswards to provision persistent volumes. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the `my-release` deployment: - -```console -$ helm delete my-release -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following tables lists the configurable parameters of this chart and their default values. - -| Parameter | Description | Default | -| ----------------------------------- | ----------------------------------------------------------- | ------------------------------------------------- | -| `replicaCount` | Number of provisioner instances to deployed | `1` | -| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | -| `image.repository` | Provisioner image | `quay.io/external_storage/nfs-client-provisioner` | -| `image.tag` | Version of provisioner image | `v3.1.0-k8s1.11` | -| `image.pullPolicy` | Image pull policy | `IfNotPresent` | -| `storageClass.name` | Name of the storageClass | `nfs-client` | -| `storageClass.defaultClass` | Set as the default StorageClass | `false` | -| `storageClass.allowVolumeExpansion` | Allow expanding the volume | `true` | -| `storageClass.reclaimPolicy` | Method used to reclaim an obsoleted volume | `Delete` | -| `storageClass.provisionerName` | Name of the provisionerName | null | -| `storageClass.archiveOnDelete` | Archive pvc when deleting | `true` | -| `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` | -| `nfs.server` | Hostname of the NFS server | null (ip or hostname) | -| `nfs.path` | Basepath of the mount point to be used | `/ifs/kubernetes` | -| `nfs.mountOptions` | Mount options (e.g. 'nfsvers=3') | null | -| `resources` | Resources required (e.g. CPU, memory) | `{}` | -| `rbac.create` | Use Role-based Access Control | `true` | -| `podSecurityPolicy.enabled` | Create & use Pod Security Policy resources | `false` | -| `priorityClassName` | Set pod priorityClassName | null | -| `serviceAccount.create` | Should we create a ServiceAccount | `true` | -| `serviceAccount.name` | Name of the ServiceAccount to use | null | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `affinity` | Affinity settings | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | diff --git a/charts/nfs-client-provisioner/templates/_helpers.tpl b/charts/nfs-client-provisioner/templates/_helpers.tpl deleted file mode 100644 index d8d4e51..0000000 --- a/charts/nfs-client-provisioner/templates/_helpers.tpl +++ /dev/null @@ -1,62 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "nfs-client-provisioner.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 "nfs-client-provisioner.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 "nfs-client-provisioner.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{- define "nfs-client-provisioner.provisionerName" -}} -{{- if .Values.storageClass.provisionerName -}} -{{- printf .Values.storageClass.provisionerName -}} -{{- else -}} -cluster.local/{{ template "nfs-client-provisioner.fullname" . -}} -{{- end -}} -{{- end -}} - -{{/* -Create the name of the service account to use -*/}} -{{- define "nfs-client-provisioner.serviceAccountName" -}} -{{- if .Values.serviceAccount.create -}} - {{ default (include "nfs-client-provisioner.fullname" .) .Values.serviceAccount.name }} -{{- else -}} - {{ default "default" .Values.serviceAccount.name }} -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for podSecurityPolicy. -*/}} -{{- define "podSecurityPolicy.apiVersion" -}} -{{- if semverCompare ">=1.10-0" .Capabilities.KubeVersion.GitVersion -}} -{{- print "policy/v1beta1" -}} -{{- else -}} -{{- print "extensions/v1beta1" -}} -{{- end -}} -{{- end -}} \ No newline at end of file diff --git a/charts/nfs-client-provisioner/templates/clusterrole.yaml b/charts/nfs-client-provisioner/templates/clusterrole.yaml deleted file mode 100644 index fa43e0d..0000000 --- a/charts/nfs-client-provisioner/templates/clusterrole.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- if .Values.rbac.create }} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: {{ template "nfs-client-provisioner.fullname" . }}-runner -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["create", "update", "patch"] -{{- if .Values.podSecurityPolicy.enabled }} - - apiGroups: ['extensions'] - resources: ['podsecuritypolicies'] - verbs: ['use'] - resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] -{{- end }} -{{- end }} diff --git a/charts/nfs-client-provisioner/templates/clusterrolebinding.yaml b/charts/nfs-client-provisioner/templates/clusterrolebinding.yaml deleted file mode 100644 index e04c719..0000000 --- a/charts/nfs-client-provisioner/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.rbac.create }} -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: run-{{ template "nfs-client-provisioner.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: {{ template "nfs-client-provisioner.fullname" . }}-runner - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/nfs-client-provisioner/templates/deployment.yaml b/charts/nfs-client-provisioner/templates/deployment.yaml deleted file mode 100644 index 57ab72c..0000000 --- a/charts/nfs-client-provisioner/templates/deployment.yaml +++ /dev/null @@ -1,73 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "nfs-client-provisioner.fullname" . }} - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} -spec: - replicas: {{ .Values.replicaCount }} - strategy: - type: {{ .Values.strategyType }} - selector: - matchLabels: - app: {{ template "nfs-client-provisioner.name" . }} - release: {{ .Release.Name }} - template: - metadata: - annotations: - {{- if and (.Values.tolerations) (semverCompare "<1.6-0" .Capabilities.KubeVersion.GitVersion) }} - scheduler.alpha.kubernetes.io/tolerations: '{{ toJson .Values.tolerations }}' - {{- end }} - labels: - app: {{ template "nfs-client-provisioner.name" . }} - release: {{ .Release.Name }} - spec: - serviceAccountName: {{ template "nfs-client-provisioner.serviceAccountName" . }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 8 }} - {{- end }} - {{- if .Values.priorityClassName }} - priorityClassName: {{ .Values.priorityClassName | quote }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - volumeMounts: - - name: nfs-client-root - mountPath: /persistentvolumes - env: - - name: PROVISIONER_NAME - value: {{ template "nfs-client-provisioner.provisionerName" . }} - - name: NFS_SERVER - value: {{ .Values.nfs.server }} - - name: NFS_PATH - value: {{ .Values.nfs.path }} - {{- with .Values.resources }} - resources: -{{ toYaml . | indent 12 }} - {{- end }} - volumes: - - name: nfs-client-root -{{- if .Values.buildMode }} - emptyDir: {} -{{- else if .Values.nfs.mountOptions }} - persistentVolumeClaim: - claimName: pvc-{{ template "nfs-client-provisioner.fullname" . }} -{{- else }} - nfs: - server: {{ .Values.nfs.server }} - path: {{ .Values.nfs.path }} -{{- end }} - {{- if and (.Values.tolerations) (semverCompare "^1.6-0" .Capabilities.KubeVersion.GitVersion) }} - tolerations: -{{ toYaml .Values.tolerations | indent 6 }} - {{- end }} diff --git a/charts/nfs-client-provisioner/templates/persistentvolume.yaml b/charts/nfs-client-provisioner/templates/persistentvolume.yaml deleted file mode 100644 index d13ad0b..0000000 --- a/charts/nfs-client-provisioner/templates/persistentvolume.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{ if .Values.nfs.mountOptions -}} -apiVersion: v1 -kind: PersistentVolume -metadata: - name: pv-{{ template "nfs-client-provisioner.fullname" . }} - labels: - nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} -spec: - capacity: - storage: 10Mi - volumeMode: Filesystem - accessModes: - - {{ .Values.storageClass.accessModes }} - persistentVolumeReclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} - storageClassName: "" - {{- if .Values.nfs.mountOptions }} - mountOptions: - {{- range .Values.nfs.mountOptions }} - - {{ . }} - {{- end }} - {{- end }} - nfs: - server: {{ .Values.nfs.server }} - path: {{ .Values.nfs.path }} -{{ end -}} diff --git a/charts/nfs-client-provisioner/templates/persistentvolumeclaim.yaml b/charts/nfs-client-provisioner/templates/persistentvolumeclaim.yaml deleted file mode 100644 index 9bcf430..0000000 --- a/charts/nfs-client-provisioner/templates/persistentvolumeclaim.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{ if .Values.nfs.mountOptions -}} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: pvc-{{ template "nfs-client-provisioner.fullname" . }} -spec: - accessModes: - - {{ .Values.storageClass.accessModes }} - volumeMode: Filesystem - storageClassName: "" - selector: - matchLabels: - nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} - resources: - requests: - storage: 10Mi -{{ end -}} diff --git a/charts/nfs-client-provisioner/templates/podsecuritypolicy.yaml b/charts/nfs-client-provisioner/templates/podsecuritypolicy.yaml deleted file mode 100644 index 830fad6..0000000 --- a/charts/nfs-client-provisioner/templates/podsecuritypolicy.yaml +++ /dev/null @@ -1,31 +0,0 @@ -{{- if .Values.podSecurityPolicy.enabled }} -apiVersion: {{ template "podSecurityPolicy.apiVersion" . }} -kind: PodSecurityPolicy -metadata: - name: {{ template "nfs-client-provisioner.fullname" . }} - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} -spec: - privileged: false - allowPrivilegeEscalation: false - requiredDropCapabilities: - - ALL - volumes: - - 'secret' - - 'nfs' - hostNetwork: false - hostIPC: false - hostPID: false - runAsUser: - rule: 'RunAsAny' - seLinux: - rule: 'RunAsAny' - supplementalGroups: - rule: 'RunAsAny' - fsGroup: - rule: 'RunAsAny' - readOnlyRootFilesystem: false -{{- end }} diff --git a/charts/nfs-client-provisioner/templates/role.yaml b/charts/nfs-client-provisioner/templates/role.yaml deleted file mode 100644 index 0cccdcb..0000000 --- a/charts/nfs-client-provisioner/templates/role.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if .Values.rbac.create }} -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} -rules: - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["get", "list", "watch", "create", "update", "patch"] -{{- if .Values.podSecurityPolicy.enabled }} - - apiGroups: ['extensions'] - resources: ['podsecuritypolicies'] - verbs: ['use'] - resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] -{{- end }} -{{- end }} diff --git a/charts/nfs-client-provisioner/templates/rolebinding.yaml b/charts/nfs-client-provisioner/templates/rolebinding.yaml deleted file mode 100644 index 57c1c87..0000000 --- a/charts/nfs-client-provisioner/templates/rolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.rbac.create }} -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: Role - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/nfs-client-provisioner/templates/serviceaccount.yaml b/charts/nfs-client-provisioner/templates/serviceaccount.yaml deleted file mode 100644 index 2940896..0000000 --- a/charts/nfs-client-provisioner/templates/serviceaccount.yaml +++ /dev/null @@ -1,11 +0,0 @@ -{{ if .Values.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} -{{- end -}} diff --git a/charts/nfs-client-provisioner/templates/storageclass.yaml b/charts/nfs-client-provisioner/templates/storageclass.yaml deleted file mode 100644 index 81953c0..0000000 --- a/charts/nfs-client-provisioner/templates/storageclass.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{ if .Values.storageClass.create -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: {{ .Values.storageClass.name }} -{{- if .Values.storageClass.defaultClass }} - annotations: - storageclass.kubernetes.io/is-default-class: "true" -{{- end }} -provisioner: {{ template "nfs-client-provisioner.provisionerName" . }} -allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }} -reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} -parameters: - archiveOnDelete: "{{ .Values.storageClass.archiveOnDelete }}" -{{- if .Values.nfs.mountOptions }} -mountOptions: - {{- range .Values.nfs.mountOptions }} - - {{ . }} - {{- end }} -{{- end }} -{{ end -}} diff --git a/charts/nfs-client-provisioner/values.yaml b/charts/nfs-client-provisioner/values.yaml deleted file mode 100644 index 8a236ca..0000000 --- a/charts/nfs-client-provisioner/values.yaml +++ /dev/null @@ -1,79 +0,0 @@ -# Default values for nfs-client-provisioner. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 -strategyType: Recreate - -image: - repository: quay.io/external_storage/nfs-client-provisioner - tag: v3.1.0-k8s1.11 - pullPolicy: IfNotPresent - -nfs: - server: nfs.myserver.com - path: /ifs/kubernetes - mountOptions: {} - -# For creating the StorageClass automatically: -storageClass: - create: true - - # Set a provisioner name. If unset, a name will be generated. - # provisionerName: - - # Set StorageClass as the default StorageClass - # Ignored if storageClass.create is false - defaultClass: false - - # Set a StorageClass name - # Ignored if storageClass.create is false - name: nfs-client - - # Allow volume to be expanded dynamically - allowVolumeExpansion: true - - # Method used to reclaim an obsoleted volume - reclaimPolicy: Delete - - # When set to false your PVs will not be archived by the provisioner upon deletion of the PVC. - archiveOnDelete: true - - # Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany - accessModes: ReadWriteOnce - -## For RBAC support: -rbac: - # Specifies whether RBAC resources should be created - create: true - -# If true, create & use Pod Security Policy resources -# https://kubernetes.io/docs/concepts/policy/pod-security-policy/ -podSecurityPolicy: - enabled: false - -## Set pod priorityClassName -# priorityClassName: "" - -serviceAccount: - # Specifies whether a ServiceAccount should be created - create: true - - # The name of the ServiceAccount to use. - # If not set and create is true, a name is generated using the fullname template - name: - -resources: - {} - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -nodeSelector: {} - -tolerations: [] - -affinity: {} diff --git a/charts/prometheus-blackbox-exporter/Chart.yaml b/charts/prometheus-blackbox-exporter/Chart.yaml deleted file mode 100644 index 5fcab90..0000000 --- a/charts/prometheus-blackbox-exporter/Chart.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -description: DEPRECATED - Prometheus Blackbox Exporter -name: prometheus-blackbox-exporter -version: 2.0.0 -appVersion: 0.19.0 -home: https://github.com/prometheus/blackbox_exporter -sources: - - https://github.com/prometheus/blackbox_exporter - - https://github.com/ckotzbauer/helm-charts -keywords: - - prometheus - - blackbox - - monitoring -maintainers: [] -deprecated: true diff --git a/charts/prometheus-blackbox-exporter/README.md b/charts/prometheus-blackbox-exporter/README.md deleted file mode 100644 index 55317be..0000000 --- a/charts/prometheus-blackbox-exporter/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# Prometheus Blackbox Exporter - -## Deprecation notice - -Please use the "prometheus-blackbox-exporter" from the community instead: https://prometheus-community.github.io/helm-charts/ -This chart will be removed at 31.01.2022!! - - -Prometheus exporter for blackbox testing - -Learn more: [https://github.com/prometheus/blackbox_exporter](https://github.com/prometheus/blackbox_exporter) - -## TL;DR; - -```bash -$ helm install ckotzbauer/prometheus-blackbox-exporter -``` - -## Introduction - -This chart creates a Blackbox-Exporter deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -## Prerequisites - -- Kubernetes 1.14+ with Beta APIs enabled - -## Installing the Chart - -To install the chart with the release name `my-release`: - -```bash -$ helm install --name my-release ckotzbauer/prometheus-blackbox-exporter -``` - -The command deploys Blackbox Exporter on the Kubernetes cluster using the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -## Uninstalling the Chart - -To uninstall/delete the `my-release` deployment: - -```bash -$ helm delete my-release -``` -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following table lists the configurable parameters of the Blackbox-Exporter chart and their default values. - -| Parameter | Description | Default | -| -------------------------------------- | ------------------------------------------------- | ----------------------------- | -| `config` | Prometheus blackbox configuration | {} | -| `secretConfig` | Whether to treat blackbox configuration as secret | `false` | -| `extraArgs` | Optional flags for blackbox | `[]` | -| `extraConfigmapMounts` | Additional configmap mounts | `[]` | -| `extraSecretMounts` | Additional secret mounts | `[]` | -| `image.repository` | container image repository | `prom/blackbox-exporter` | -| `image.tag` | container image tag | `v0.19.0` | -| `image.pullPolicy` | container image pull policy | `IfNotPresent` | -| `image.pullSecrets` | container image pull secrets | `[]` | -| `ingress.annotations` | Ingress annotations | None | -| `ingress.enabled` | Enables Ingress | `false` | -| `ingress.hosts` | Ingress accepted hostnames | None | -| `ingress.tls` | Ingress TLS configuration | None | -| `nodeSelector` | node labels for pod assignment | `{}` | -| `runAsUser` | User to run blackbox-exporter container as | `1000` | -| `readOnlyRootFilesystem` | Set blackbox-exporter file-system to read-only | `true` | -| `runAsNonRoot` | Run blackbox-exporter as non-root | `true` | -| `tolerations` | node tolerations for pod assignment | `[]` | -| `affinity` | node affinity for pod assignment | `{}` | -| `podAnnotations` | annotations to add to each pod | `{}` | -| `podDisruptionBudget` | pod disruption budget | `{}` | -| `priorityClassName` | priority class name | None | -| `resources` | pod resource requests & limits | `{}` | -| `restartPolicy` | container restart policy | `Always` | -| `service.annotations` | annotations for the service | `{}` | -| `service.labels` | additional labels for the service | None | -| `service.type` | type of service to create | `ClusterIP` | -| `service.port` | port for the blackbox http service | `9115` | -| `service.externalIPs` | list of external ips | [] | -| `serviceMonitors` | ServiceMonitor CRDs to create for prometheus operator | `[]` | -| `strategy` | strategy used to replace old Pods with new ones | `{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0},"type":"RollingUpdate"}` | - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, - -```bash -$ helm install --name my-release \ - --set key_1=value_1,key_2=value_2 \ - ckotzbauer/prometheus-blackbox-exporter -``` - -Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, - -```bash -# example for staging -$ helm install --name my-release -f values.yaml ckotzbauer/prometheus-blackbox-exporter -``` - -> **Tip**: You can use the default [values.yaml](values.yaml) diff --git a/charts/prometheus-blackbox-exporter/templates/NOTES.txt b/charts/prometheus-blackbox-exporter/templates/NOTES.txt deleted file mode 100644 index d3ee883..0000000 --- a/charts/prometheus-blackbox-exporter/templates/NOTES.txt +++ /dev/null @@ -1 +0,0 @@ -See https://github.com/prometheus/blackbox_exporter/ for how to configure Prometheus and the Blackbox Exporter. diff --git a/charts/prometheus-blackbox-exporter/templates/_helpers.tpl b/charts/prometheus-blackbox-exporter/templates/_helpers.tpl deleted file mode 100644 index c537fd6..0000000 --- a/charts/prometheus-blackbox-exporter/templates/_helpers.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "prometheus-blackbox-exporter.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). -*/}} -{{- define "prometheus-blackbox-exporter.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 "prometheus-blackbox-exporter.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/charts/prometheus-blackbox-exporter/templates/configmap.yaml b/charts/prometheus-blackbox-exporter/templates/configmap.yaml deleted file mode 100644 index 54908d3..0000000 --- a/charts/prometheus-blackbox-exporter/templates/configmap.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if .Values.config }} -apiVersion: v1 -kind: {{ if .Values.secretConfig -}} Secret {{- else -}} ConfigMap {{- end }} -metadata: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} -{{ if .Values.secretConfig -}} stringData: {{- else -}} data: {{- end }} - blackbox.yaml: | -{{ toYaml .Values.config | indent 4 }} -{{- end }} diff --git a/charts/prometheus-blackbox-exporter/templates/deployment.yaml b/charts/prometheus-blackbox-exporter/templates/deployment.yaml deleted file mode 100644 index 7153d72..0000000 --- a/charts/prometheus-blackbox-exporter/templates/deployment.yaml +++ /dev/null @@ -1,120 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} -spec: - replicas: {{ .Values.replicas }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - strategy: -{{ toYaml .Values.strategy | indent 4 }} - template: - metadata: - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} - annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} - {{- if .Values.podAnnotations }} -{{ toYaml .Values.podAnnotations | indent 8 }} - {{- end }} - spec: - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 8 }} - {{- end }} - {{- if .Values.tolerations }} - tolerations: -{{ toYaml .Values.tolerations | indent 6 }} - {{- end }} - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - - restartPolicy: {{ .Values.restartPolicy }} - - {{- if .Values.priorityClassName }} - priorityClassName: "{{ .Values.priorityClassName }}" - {{- end }} - containers: - - name: blackbox-exporter - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - securityContext: - readOnlyRootFilesystem: {{ .Values.readOnlyRootFilesystem }} - runAsNonRoot: {{ .Values.runAsNonRoot }} - runAsUser: {{ .Values.runAsUser }} - args: -{{- if .Values.config }} - - "--config.file=/config/blackbox.yaml" -{{- else }} - - "--config.file=/etc/blackbox_exporter/config.yml" -{{- end }} - {{- if .Values.extraArgs }} -{{ toYaml .Values.extraArgs | indent 12 }} - {{- end }} - resources: -{{ toYaml .Values.resources | indent 12 }} - ports: - - containerPort: {{ .Values.service.port }} - name: http - livenessProbe: - httpGet: - path: /health - port: http - readinessProbe: - httpGet: - path: /health - port: http - volumeMounts: - - mountPath: /config - name: config - {{- range .Values.extraConfigmapMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath | default "" }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - volumes: - - name: config -{{- if .Values.secretConfig }} - secret: - secretName: {{ template "prometheus-blackbox-exporter.fullname" . }} -{{- else }} - configMap: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} -{{- end }} - {{- range .Values.extraConfigmapMounts }} - - name: {{ .name }} - configMap: - name: {{ .configMap }} - defaultMode: {{ .defaultMode }} - {{- end }} - {{- range .Values.extraSecretMounts }} - - name: {{ .name }} - secret: - secretName: {{ .secretName }} - defaultMode: {{ .defaultMode }} - {{- end }} \ No newline at end of file diff --git a/charts/prometheus-blackbox-exporter/templates/ingress.yaml b/charts/prometheus-blackbox-exporter/templates/ingress.yaml deleted file mode 100644 index b9d4c43..0000000 --- a/charts/prometheus-blackbox-exporter/templates/ingress.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $serviceName := include "prometheus-blackbox-exporter.fullname" . -}} -{{- $servicePort := .Values.service.port -}} -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} - annotations: -{{ toYaml .Values.ingress.annotations | indent 4 }} -spec: - rules: - {{- range $host := .Values.ingress.hosts }} - - host: {{ $host }} - http: - paths: - - path: / - backend: - serviceName: {{ $serviceName }} - servicePort: {{ $servicePort }} - {{- end -}} - {{- if .Values.ingress.tls }} - tls: -{{ toYaml .Values.ingress.tls | indent 4 }} - {{- end -}} -{{- end -}} diff --git a/charts/prometheus-blackbox-exporter/templates/poddisruptionbudget.yaml b/charts/prometheus-blackbox-exporter/templates/poddisruptionbudget.yaml deleted file mode 100644 index d974c70..0000000 --- a/charts/prometheus-blackbox-exporter/templates/poddisruptionbudget.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.podDisruptionBudget -}} -apiVersion: policy/v1beta1 -kind: PodDisruptionBudget -metadata: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} -spec: - selector: - matchLabels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} -{{ toYaml .Values.podDisruptionBudget | indent 2 }} -{{- end }} diff --git a/charts/prometheus-blackbox-exporter/templates/service.yaml b/charts/prometheus-blackbox-exporter/templates/service.yaml deleted file mode 100644 index b2daf5a..0000000 --- a/charts/prometheus-blackbox-exporter/templates/service.yaml +++ /dev/null @@ -1,29 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: {{ template "prometheus-blackbox-exporter.fullname" . }} - {{- if .Values.service.annotations }} - annotations: -{{ toYaml .Values.service.annotations | indent 4 }} -{{- end }} - labels: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }} -{{- if .Values.service.labels }} -{{ toYaml .Values.service.labels | indent 4 }} -{{- end }} -spec: - type: {{ .Values.service.type }} - ports: - - name: http - port: {{ .Values.service.port }} - protocol: TCP -{{- if .Values.service.externalIPs }} - externalIPs: -{{ toYaml .Values.service.externalIPs | indent 4 }} -{{- end }} - selector: - app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/charts/prometheus-blackbox-exporter/templates/servicemonitor.yaml b/charts/prometheus-blackbox-exporter/templates/servicemonitor.yaml deleted file mode 100644 index 14eff87..0000000 --- a/charts/prometheus-blackbox-exporter/templates/servicemonitor.yaml +++ /dev/null @@ -1,54 +0,0 @@ -{{- $name := include "prometheus-blackbox-exporter.name" . -}} -{{- $chart := include "prometheus-blackbox-exporter.chart" . -}} -{{- $rel := .Release -}} -{{- range .Values.serviceMonitors }} -{{- $monitorName := printf "%s-%s" $name .name -}} -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ $monitorName }} - labels: - app.kubernetes.io/name: {{ $monitorName }} - app.kubernetes.io/instance: {{ $rel.Name }} - app.kubernetes.io/managed-by: {{ $rel.Service }} - helm.sh/chart: {{ $chart }} - {{- if .labels }} - {{- toYaml .labels | nindent 4 }} - {{- end }} -spec: - endpoints: - - port: http - scheme: http - path: "/probe" - interval: {{ .interval }} - scrapeTimeout: {{ .scrapeTimeout }} - params: - module: - - {{ .module }} - target: - - {{ .url }} - metricRelabelings: - - sourceLabels: [__address__] - targetLabel: __param_target - - sourceLabels: [__param_target] - targetLabel: instance - - targetLabel: target - {{- if .urlHumanReadable }} - replacement: {{ .urlHumanReadable }} - {{- else }} - replacement: {{ .url }} - {{- end }} - {{- if .removePodLabel }} - - targetLabel: pod - replacement: "" - {{- end }} - jobLabel: "{{ $rel.Name }}" - selector: - matchLabels: - app.kubernetes.io/name: {{ $name }} - app.kubernetes.io/instance: {{ $rel.Name }} - namespaceSelector: - matchNames: - - {{ $rel.Namespace }} ---- -{{- end }} diff --git a/charts/prometheus-blackbox-exporter/values.yaml b/charts/prometheus-blackbox-exporter/values.yaml deleted file mode 100644 index 265daa1..0000000 --- a/charts/prometheus-blackbox-exporter/values.yaml +++ /dev/null @@ -1,109 +0,0 @@ -restartPolicy: Always - -podDisruptionBudget: {} - # maxUnavailable: 0 - -strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - type: RollingUpdate - -image: - repository: prom/blackbox-exporter - tag: v0.19.0 - pullPolicy: IfNotPresent - - ## Optionally specify an array of imagePullSecrets. - ## Secrets must be manually created in the namespace. - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - # pullSecrets: - # - myRegistrKeySecretName - -## User to run blackbox-exporter container as -runAsUser: 1000 -readOnlyRootFilesystem: true -runAsNonRoot: true - -nodeSelector: {} -tolerations: [] -affinity: {} - -secretConfig: false -config: - modules: - http_2xx: - prober: http - timeout: 5s - http: - valid_http_versions: ["HTTP/1.1", "HTTP/2"] - no_follow_redirects: false - preferred_ip_protocol: "ip4" - -extraConfigmapMounts: [] - # - name: certs-configmap - # mountPath: /etc/secrets/ssl/ - # subPath: certificates.crt # (optional) - # configMap: certs-configmap - # readOnly: true - # defaultMode: 420 - -## Additional secret mounts -# Defines additional mounts with secrets. Secrets must be manually created in the namespace. -extraSecretMounts: [] - # - name: secret-files - # mountPath: /etc/secrets - # secretName: blackbox-secret-files - # readOnly: true - # defaultMode: 420 - -resources: {} - # limits: - # memory: 300Mi - # requests: - # memory: 50Mi - -priorityClassName: "" - -service: - annotations: {} - type: ClusterIP - port: 9115 - -## An Ingress resource can provide name-based virtual hosting and TLS -## termination among other things for CouchDB deployments which are accessed -## from outside the Kubernetes cluster. -## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ -ingress: - enabled: false - hosts: [] - # - chart-example.local - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - tls: [] - # Secrets must be manually created in the namespace. - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -podAnnotations: {} - -extraArgs: [] -# --history.limit=1000 - -replicas: 1 - -serviceMonitors: [] - ## If any, ServiceMonitor CRDs are created for a prometheus operator - ## https://github.com/coreos/prometheus-operator - ## - name: example-com - ## labels: {} - ## interval: 30s - ## scrapeTimeout: 30s - ## module: http_2xx - ## # The URL that blackbox will scrape - ## url: http://example.com/healthz - ## # Optional human readable URL that will appear in Prometheus / AlertManager - ## urlHumanReadable: www.changemeoriwillfail.com - ## removePodLabel: false