From 48548d885f07d77ae8652a976f9ae75eff92de3c Mon Sep 17 00:00:00 2001 From: sonicaj Date: Wed, 12 Apr 2023 14:39:39 +0000 Subject: [PATCH] Update catalog information --- catalog.json | 21 +- charts/prometheus/1.0.0/Chart.lock | 6 + charts/prometheus/1.0.0/Chart.yaml | 25 ++ charts/prometheus/1.0.0/README.md | 11 + charts/prometheus/1.0.0/app-readme.md | 11 + .../prometheus/1.0.0/charts/common-1.0.3.tgz | Bin 0 -> 54267 bytes charts/prometheus/1.0.0/ci/basic-values.yaml | 7 + charts/prometheus/1.0.0/ix_values.yaml | 34 +++ charts/prometheus/1.0.0/questions.yaml | 239 ++++++++++++++++++ charts/prometheus/1.0.0/templates/NOTES.txt | 1 + charts/prometheus/1.0.0/templates/_portal.tpl | 12 + .../1.0.0/templates/_prometheus.tpl | 120 +++++++++ charts/prometheus/1.0.0/templates/common.yaml | 9 + charts/prometheus/item.yaml | 4 + 14 files changed, 499 insertions(+), 1 deletion(-) create mode 100644 charts/prometheus/1.0.0/Chart.lock create mode 100644 charts/prometheus/1.0.0/Chart.yaml create mode 100644 charts/prometheus/1.0.0/README.md create mode 100644 charts/prometheus/1.0.0/app-readme.md create mode 100644 charts/prometheus/1.0.0/charts/common-1.0.3.tgz create mode 100644 charts/prometheus/1.0.0/ci/basic-values.yaml create mode 100644 charts/prometheus/1.0.0/ix_values.yaml create mode 100644 charts/prometheus/1.0.0/questions.yaml create mode 100644 charts/prometheus/1.0.0/templates/NOTES.txt create mode 100644 charts/prometheus/1.0.0/templates/_portal.tpl create mode 100644 charts/prometheus/1.0.0/templates/_prometheus.tpl create mode 100644 charts/prometheus/1.0.0/templates/common.yaml create mode 100644 charts/prometheus/item.yaml diff --git a/catalog.json b/catalog.json index 336a2519b3..7f552efd29 100644 --- a/catalog.json +++ b/catalog.json @@ -49,7 +49,7 @@ "latest_version": "1.0.1", "latest_app_version": "8.7.0", "latest_human_version": "8.7.0_1.0.1", - "last_update": "2023-04-11 15:33:26", + "last_update": "2023-04-12 13:31:20", "name": "elastic-search", "recommended": false, "title": "Elastic Search", @@ -149,6 +149,25 @@ "title": "Pi-hole", "icon_url": "https://github.com/pi-hole/graphics/raw/master/Vortex/Vortex_Vertical_wordmark_lightmode.png?raw=true)" }, + "prometheus": { + "app_readme": "

Prometheus

\n

Prometheus - Monitoring system and time series database.

\n
\n

When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the prometheus directories.\nAfterward, the prometheus container will run as a non-root user (Default: 568).\nAlso an empty configuration file will be created.

\n
\n

The configuration file is located at /config/prometheus.yml inside the container.\nData is stored at /data inside the container.

", + "categories": [ + "metrics", + "prometheus" + ], + "description": "The Prometheus monitoring system and time series database.", + "healthy": true, + "healthy_error": null, + "location": "/__w/charts/charts/charts/prometheus", + "latest_version": "1.0.0", + "latest_app_version": "v2.43.0", + "latest_human_version": "v2.43.0_1.0.0", + "last_update": null, + "name": "prometheus", + "recommended": false, + "title": "Prometheus", + "icon_url": "https://avatars.githubusercontent.com/u/3380462" + }, "wg-easy": { "app_readme": "

WG-Easy

\n

WG-Easy (WireGuard Easy) is the easiest way to install & manage WireGuard!

", "categories": [ diff --git a/charts/prometheus/1.0.0/Chart.lock b/charts/prometheus/1.0.0/Chart.lock new file mode 100644 index 0000000000..110c830406 --- /dev/null +++ b/charts/prometheus/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.3 +digest: sha256:1a090020cfa582aff29906320874ffe9b543fcc6c2423c281f434514f2653e02 +generated: "2023-04-06T18:56:51.017765304+03:00" diff --git a/charts/prometheus/1.0.0/Chart.yaml b/charts/prometheus/1.0.0/Chart.yaml new file mode 100644 index 0000000000..f751a581d9 --- /dev/null +++ b/charts/prometheus/1.0.0/Chart.yaml @@ -0,0 +1,25 @@ +name: prometheus +description: The Prometheus monitoring system and time series database. +annotations: + title: Prometheus +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: v2.43.0 +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ +dependencies: + - name: common + repository: file://../../../common + version: 1.0.3 +home: https://prometheus.io +icon: https://avatars.githubusercontent.com/u/3380462 +sources: + - https://github.com/prometheus/prometheus + - https://github.com/truenas/charts/tree/master/charts/prometheus + - https://prometheus.io +keywords: + - metrics + - prometheus diff --git a/charts/prometheus/1.0.0/README.md b/charts/prometheus/1.0.0/README.md new file mode 100644 index 0000000000..a3d6b46393 --- /dev/null +++ b/charts/prometheus/1.0.0/README.md @@ -0,0 +1,11 @@ +# Prometheus + +[Prometheus](https://prometheus.io/) - Monitoring system and time series database. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `prometheus` directories. +> Afterward, the `prometheus` container will run as a **non**-root user (Default: `568`). +> Also an empty configuration file will be created. + +The configuration file is located at `/config/prometheus.yml` inside the container. +Data is stored at `/data` inside the container. diff --git a/charts/prometheus/1.0.0/app-readme.md b/charts/prometheus/1.0.0/app-readme.md new file mode 100644 index 0000000000..a3d6b46393 --- /dev/null +++ b/charts/prometheus/1.0.0/app-readme.md @@ -0,0 +1,11 @@ +# Prometheus + +[Prometheus](https://prometheus.io/) - Monitoring system and time series database. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `prometheus` directories. +> Afterward, the `prometheus` container will run as a **non**-root user (Default: `568`). +> Also an empty configuration file will be created. + +The configuration file is located at `/config/prometheus.yml` inside the container. +Data is stored at `/data` inside the container. diff --git a/charts/prometheus/1.0.0/charts/common-1.0.3.tgz b/charts/prometheus/1.0.0/charts/common-1.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f3940bf70416a355f4aed7d7a5ca29b48c5e80c5 GIT binary patch literal 54267 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≺yu$QDtD~~Ye(2)e+$&oL(tcfg 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 + Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: data + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: config + label: Prometheus Config Storage + description: The path to store Prometheus config storage. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: config + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + + - variable: resources + label: "" + group: Resources Configuration + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Prometheus. + schema: + type: string + default: 4000m + required: true + - variable: memory + label: Memory + description: Memory limit for Prometheus. + schema: + type: string + default: 8Gi + required: true diff --git a/charts/prometheus/1.0.0/templates/NOTES.txt b/charts/prometheus/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/charts/prometheus/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/charts/prometheus/1.0.0/templates/_portal.tpl b/charts/prometheus/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..bd6661fd7f --- /dev/null +++ b/charts/prometheus/1.0.0/templates/_portal.tpl @@ -0,0 +1,12 @@ +{{- define "prometheus.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: / + port: {{ .Values.prometheusNetwork.apiPort | quote }} + protocol: http + host: $node_ip +{{- end -}} diff --git a/charts/prometheus/1.0.0/templates/_prometheus.tpl b/charts/prometheus/1.0.0/templates/_prometheus.tpl new file mode 100644 index 0000000000..a5cb217c71 --- /dev/null +++ b/charts/prometheus/1.0.0/templates/_prometheus.tpl @@ -0,0 +1,120 @@ +{{- define "prometheus.workload" -}} +workload: + prometheus: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.prometheusNetwork.hostNetwork }} + containers: + prometheus: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: {{ .Values.prometheusRunAs.user }} + runAsGroup: {{ .Values.prometheusRunAs.group }} + args: + - --web.listen-address=0.0.0.0:{{ .Values.prometheusNetwork.apiPort }} + - --storage.tsdb.path=/data + - --config.file=/config/prometheus.yml + - --storage.tsdb.retention.time={{ .Values.prometheusConfig.retentionTime }} + {{ with .Values.prometheusConfig.retentionSize }} + - --storage.tsdb.retention.size={{ . }} + {{ end }} + {{ if .Values.prometheusConfig.walCompression }} + - --storage.tsdb.wal-compression + {{ end }} + {{ with .Values.prometheusConfig.additionalArgs }} + extraArgs: + {{ range $arg := . }} + - {{ $arg | quote }} + {{ end }} + {{ end }} + {{ with .Values.prometheusConfig.additionalEnvs }} + env: + {{ range $env := . }} + {{ $env.name }}: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: http + port: {{ .Values.prometheusNetwork.apiPort }} + path: /-/healthy + readiness: + enabled: true + type: http + port: {{ .Values.prometheusNetwork.apiPort }} + path: /-/ready + startup: + enabled: true + type: http + port: {{ .Values.prometheusNetwork.apiPort }} + path: /-/ready + initContainers: + {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" + "UID" .Values.prometheusRunAs.user + "GID" .Values.prometheusRunAs.group + "type" "install") | nindent 8 }} + init-config: + enabled: true + type: init + imageSelector: image + resources: + limits: + cpu: 500m + memory: 256Mi + securityContext: + runAsUser: {{ .Values.prometheusRunAs.user }} + runAsGroup: {{ .Values.prometheusRunAs.group }} + command: sh + args: + - -c + - | + if [ ! -f /config/prometheus.yml ]; then + touch /config/prometheus.yml + fi +{{/* Service */}} +service: + prometheus: + enabled: true + primary: true + type: NodePort + targetSelector: prometheus + ports: + prometheus: + enabled: true + primary: true + port: {{ .Values.prometheusNetwork.apiPort }} + nodePort: {{ .Values.prometheusNetwork.apiPort }} + targetSelector: prometheus + +{{/* Persistence */}} +persistence: + data: + enabled: true + type: {{ .Values.prometheusStorage.data.type }} + datasetName: {{ .Values.prometheusStorage.data.datasetName | default "" }} + hostPath: {{ .Values.prometheusStorage.data.hostPath | default "" }} + targetSelector: + prometheus: + prometheus: + mountPath: /data + 01-permissions: + mountPath: /mnt/directories/data + config: + enabled: true + type: {{ .Values.prometheusStorage.config.type }} + datasetName: {{ .Values.prometheusStorage.config.datasetName | default "" }} + hostPath: {{ .Values.prometheusStorage.config.hostPath | default "" }} + targetSelector: + prometheus: + prometheus: + mountPath: /config + 01-permissions: + mountPath: /mnt/directories/export + init-config: + mountPath: /config +{{- end -}} diff --git a/charts/prometheus/1.0.0/templates/common.yaml b/charts/prometheus/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..a9ecc78312 --- /dev/null +++ b/charts/prometheus/1.0.0/templates/common.yaml @@ -0,0 +1,9 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "prometheus.workload" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "prometheus.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/charts/prometheus/item.yaml b/charts/prometheus/item.yaml new file mode 100644 index 0000000000..fd8f9c90f1 --- /dev/null +++ b/charts/prometheus/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://avatars.githubusercontent.com/u/3380462 +categories: + - metrics + - prometheus