Commit new App releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot 2021-11-24 16:44:45 +00:00
parent 44595d80fa
commit 54afdd3983
15 changed files with 1384 additions and 0 deletions

View File

@ -0,0 +1,10 @@
# Changelog<br>
<a name="promtail-0.0.1"></a>
### promtail-0.0.1 (2021-11-24)
#### Add
* add our own promtail dependency App ([#1394](https://github.com/truecharts/apps/issues/1394))

View File

@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide:
https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.

View File

@ -0,0 +1,6 @@
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.3
digest: sha256:8e3b075bc94570b49db18d1ea9431f95ed06504fb372ee04f43c667c784d7b14
generated: "2021-11-24T16:42:05.762767296Z"

View File

@ -0,0 +1,31 @@
apiVersion: v2
appVersion: "2.3.0"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.3
deprecated: false
description: Promtail is an agent which ships the contents of local logs to a Loki instance
icon: https://raw.githubusercontent.com/grafana/loki/master/docs/sources/logo.png
home: https://github.com/truecharts/apps/tree/master/charts/stable/prometheus
keywords:
- metrics
- logs
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: promtail
sources:
- https://github.com/grafana/loki
- https://grafana.com/oss/loki/
- https://grafana.com/docs/loki/latest/
type: application
version: 0.0.1
annotations:
truecharts.org/catagories: |
- metrics
- logs
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@ -0,0 +1,39 @@
# Introduction
Promtail is an agent which ships the contents of local logs to a Loki instance
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://github.com/grafana/loki>
* <https://grafana.com/oss/loki/>
* <https://grafana.com/docs/loki/latest/>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org | common | 8.9.3 |
## Installing the Chart
To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/).
## Uninstalling the Chart
To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/).
## Support
- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first.
- See the [Wiki](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,3 @@
Promtail is an agent which ships the contents of local logs to a Loki instance
This App is supplied by TrueCharts, for more information please visit https://truecharts.org

Binary file not shown.

View File

@ -0,0 +1,77 @@
# Default Helm-Values
TrueCharts is primarily build to supply TrueNAS SCALE Apps.
However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file.
Most of our Apps also consume our "common" Helm Chart.
If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart.
You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| args[0] | string | `"-config.file=/etc/promtail/promtail.yaml"` | |
| config | object | See `values.yaml` | Section for crafting Promtails config file. The only directly relevant value is `config.file` which is a templated string that references the other values and snippets below this key. |
| config.file | string | See `values.yaml` | Config file contents for Promtail. Must be configured as string. It is templated so it can be assembled from reusable snippets in order to avoid redundancy. |
| config.logLevel | string | `"info"` | The log level of the Promtail server Must be reference in `config.file` to configure `server.log_level` See default config in `values.yaml` |
| config.lokiAddress | string | `""` | The Loki address to post logs to. Must be reference in `config.file` to configure `client.url`. See default config in `values.yaml` |
| config.serverPort | int | `3101` | The port of the Promtail server Must be reference in `config.file` to configure `server.http_listen_port` See default config in `values.yaml` |
| config.snippets | object | See `values.yaml` | A section of reusable snippets that can be reference in `config.file`. Custom snippets may be added in order to reduce redundancy. This is especially helpful when multiple `kubernetes_sd_configs` are use which usually have large parts in common. |
| config.snippets.extraClientConfigs | string | empty | You can put here any keys that will be directly added to the config file's 'client' block. |
| config.snippets.extraRelabelConfigs | list | `[]` | You can put here any additional relabel_configs to "kubernetes-pods" job |
| config.snippets.extraScrapeConfigs | string | empty | You can put here any additional scrape configs you want to add to the config file. |
| envValueFrom.HOSTNAME.fieldRef.fieldPath | string | `"spec.nodeName"` | |
| image.repository | string | `"grafana/promtail"` | |
| image.tag | string | `"v2.3.0@sha256:1e8554cdac6681f877d10a2a383d8fcc2f475188914282ccf86722c2e23c501c"` | |
| initContainers.link-logs.command[0] | string | `"sh"` | |
| initContainers.link-logs.command[1] | string | `"-c"` | |
| initContainers.link-logs.command[2] | string | `"mkdir -p /var/lib/docker/link && ln -sf $(cat /etc/docker/daemon.json | jq -r '.\"data-root\"')/containers/ /var/lib/docker/link/ || echo \"cannot symlink container logs\""` | |
| initContainers.link-logs.image | string | `"{{ .Values.alpineImage.repository}}:v3.14.2@sha256:4095394abbae907e94b1f2fd2e2de6c4f201a5b9704573243ca8eb16db8cdb7c"` | |
| initContainers.link-logs.imagePullPolicy | string | `"IfNotPresent"` | |
| initContainers.link-logs.volumeMounts[0].mountPath | string | `"/etc/docker/"` | |
| initContainers.link-logs.volumeMounts[0].name | string | `"docker"` | |
| initContainers.link-logs.volumeMounts[1].mountPath | string | `"/var/lib/docker/link/containers"` | |
| initContainers.link-logs.volumeMounts[1].name | string | `"containers"` | |
| persistence.config.enabled | bool | `true` | |
| persistence.config.mountPath | string | `"/etc/promtail"` | |
| persistence.config.objectName | string | `"promtail-config"` | |
| persistence.config.type | string | `"secret"` | |
| persistence.containers.enabled | bool | `true` | |
| persistence.containers.hostPath | string | `"/var/lib/docker/link/containers"` | |
| persistence.containers.mountPath | string | `"/var/lib/docker/link/containers"` | |
| persistence.containers.readOnly | bool | `true` | |
| persistence.containers.type | string | `"hostPath"` | |
| persistence.docker.enabled | bool | `true` | |
| persistence.docker.hostPath | string | `"/etc/docker/"` | |
| persistence.docker.mountPath | string | `"/etc/docker/"` | |
| persistence.docker.readOnly | bool | `true` | |
| persistence.docker.type | string | `"hostPath"` | |
| persistence.pods.enabled | bool | `true` | |
| persistence.pods.hostPath | string | `"/var/log/pods"` | |
| persistence.pods.mountPath | string | `"/var/log/pods"` | |
| persistence.pods.readOnly | bool | `true` | |
| persistence.pods.type | string | `"hostPath"` | |
| persistence.run.enabled | bool | `true` | |
| persistence.run.hostPath | string | `"/run/promtai"` | |
| persistence.run.mountPath | string | `"/run/promtail"` | |
| persistence.run.type | string | `"hostPath"` | |
| podSecurityContext | object | `{"runAsGroup":0,"runAsUser":0}` | The security context for pods |
| probes.liveness.path | string | `"/ready"` | |
| probes.readiness.path | string | `"/ready"` | |
| probes.startup.path | string | `"/ready"` | |
| rbac | object | `{"enabled":true,"rules":[{"apiGroups":[""],"resources":["nodes","nodes/proxy","services","endpoints","pods"],"verbs":["get","watch","list"]}]}` | Whether Role Based Access Control objects like roles and rolebindings should be created |
| securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":false}` | The security context for containers |
| service.main.ports.main.port | int | `3101` | |
| service.main.ports.main.targetPort | int | `3101` | |
| serviceAccount.create | bool | `true` | Specifies whether a ServiceAccount should be created |
| serviceMonitor.annotations | object | `{}` | ServiceMonitor annotations |
| serviceMonitor.enabled | bool | `false` | If enabled, ServiceMonitor resources for Prometheus Operator are created |
| serviceMonitor.interval | string | `nil` | ServiceMonitor scrape interval |
| serviceMonitor.labels | object | `{}` | Additional ServiceMonitor labels |
| serviceMonitor.namespace | string | `nil` | Alternative namespace for ServiceMonitor resources |
| serviceMonitor.namespaceSelector | object | `{}` | Namespace selector for ServiceMonitor resources |
| serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout in Go duration format (e.g. 15s) |
| tolerations | list | `[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"},{"effect":"NoSchedule","key":"node-role.kubernetes.io/control-plane","operator":"Exists"}]` | Tolerations for pods. By default, pods will be scheduled on master/control-plane nodes. |
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,273 @@
image:
repository: grafana/promtail
tag: v2.3.0@sha256:1e8554cdac6681f877d10a2a383d8fcc2f475188914282ccf86722c2e23c501c
# controller:
# # -- Set the controller type.
# # Valid options are deployment, daemonset or statefulset
# type: daemonset
args:
- "-config.file=/etc/promtail/promtail.yaml"
envValueFrom:
HOSTNAME:
fieldRef:
fieldPath: spec.nodeName
service:
main:
ports:
main:
targetPort: 3101
port: 3101
probes:
liveness:
path: "/ready"
readiness:
path: "/ready"
startup:
path: "/ready"
initContainers:
link-logs:
image: "{{ .Values.alpineImage.repository}}:v3.14.2@sha256:4095394abbae907e94b1f2fd2e2de6c4f201a5b9704573243ca8eb16db8cdb7c"
command:
- "sh"
- "-c"
- mkdir -p /var/lib/docker/link && ln -sf $(cat /etc/docker/daemon.json | jq -r '."data-root"')/containers/ /var/lib/docker/link/ || echo "cannot symlink container logs"
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /etc/docker/
name: docker
- mountPath: /var/lib/docker/link/containers
name: containers
# -- The security context for pods
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- The security context for containers
securityContext:
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
allowPrivilegeEscalation: false
runAsNonRoot: false
persistence:
docker:
enabled: true
type: hostPath
mountPath: /etc/docker/
hostPath: /etc/docker/
readOnly: true
containers:
enabled: true
type: hostPath
mountPath: /var/lib/docker/link/containers
hostPath: /var/lib/docker/link/containers
readOnly: true
pods:
enabled: true
type: hostPath
mountPath: /var/log/pods
hostPath: /var/log/pods
readOnly: true
run:
enabled: true
type: hostPath
mountPath: /run/promtail
hostPath: /run/promtai
config:
enabled: true
type: secret
objectName: "promtail-config"
mountPath: /etc/promtail
# -- Whether Role Based Access Control objects like roles and rolebindings should be created
rbac:
enabled: true
rules:
- apiGroups:
- ""
resources:
- nodes
- nodes/proxy
- services
- endpoints
- pods
verbs:
- get
- watch
- list
serviceAccount:
# -- Specifies whether a ServiceAccount should be created
create: true
# -- Tolerations for pods. By default, pods will be scheduled on master/control-plane nodes.
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
# ServiceMonitor configuration
serviceMonitor:
# -- If enabled, ServiceMonitor resources for Prometheus Operator are created
enabled: false
# -- Alternative namespace for ServiceMonitor resources
namespace: null
# -- Namespace selector for ServiceMonitor resources
namespaceSelector: {}
# -- ServiceMonitor annotations
annotations: {}
# -- Additional ServiceMonitor labels
labels: {}
# -- ServiceMonitor scrape interval
interval: null
# -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
scrapeTimeout: null
# -- Section for crafting Promtails config file. The only directly relevant value is `config.file`
# which is a templated string that references the other values and snippets below this key.
# @default -- See `values.yaml`
config:
# -- The log level of the Promtail server
# Must be reference in `config.file` to configure `server.log_level`
# See default config in `values.yaml`
logLevel: info
# -- The port of the Promtail server
# Must be reference in `config.file` to configure `server.http_listen_port`
# See default config in `values.yaml`
serverPort: 3101
# -- The Loki address to post logs to.
# Must be reference in `config.file` to configure `client.url`.
# See default config in `values.yaml`
lokiAddress: ""
# -- A section of reusable snippets that can be reference in `config.file`.
# Custom snippets may be added in order to reduce redundancy.
# This is especially helpful when multiple `kubernetes_sd_configs` are use which usually have large parts in common.
# @default -- See `values.yaml`
snippets:
pipelineStages:
- cri: {}
common:
- action: replace
source_labels:
- __meta_kubernetes_pod_node_name
target_label: node_name
- action: replace
source_labels:
- __meta_kubernetes_namespace
target_label: namespace
- action: replace
replacement: $1
separator: /
source_labels:
- namespace
- app
target_label: job
- action: replace
source_labels:
- __meta_kubernetes_pod_name
target_label: pod
- action: replace
source_labels:
- __meta_kubernetes_pod_container_name
target_label: container
- action: replace
replacement: /var/log/pods/*$1/*.log
separator: /
source_labels:
- __meta_kubernetes_pod_uid
- __meta_kubernetes_pod_container_name
target_label: __path__
- action: replace
replacement: /var/log/pods/*$1/*.log
regex: true/(.*)
separator: /
source_labels:
- __meta_kubernetes_pod_annotationpresent_kubernetes_io_config_hash
- __meta_kubernetes_pod_annotation_kubernetes_io_config_hash
- __meta_kubernetes_pod_container_name
target_label: __path__
# If set to true, adds an additional label for the scrape job.
# This helps debug the Promtail config.
addScrapeJobLabel: false
# -- You can put here any keys that will be directly added to the config file's 'client' block.
# @default -- empty
extraClientConfigs: ""
# -- You can put here any additional scrape configs you want to add to the config file.
# @default -- empty
extraScrapeConfigs: ""
# -- You can put here any additional relabel_configs to "kubernetes-pods" job
extraRelabelConfigs: []
scrapeConfigs: |
# See also https://github.com/grafana/loki/blob/master/production/ksonnet/promtail/scrape_config.libsonnet for reference
- job_name: kubernetes-pods
pipeline_stages:
{{- toYaml .Values.config.snippets.pipelineStages | nindent 4 }}
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_controller_name
regex: ([0-9a-z-.]+?)(-[0-9a-f]{8,10})?
action: replace
target_label: __tmp_controller_name
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_name
- __meta_kubernetes_pod_label_app
- __tmp_controller_name
- __meta_kubernetes_pod_name
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: app
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_component
- __meta_kubernetes_pod_label_component
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: component
{{- if .Values.config.snippets.addScrapeJobLabel }}
- replacement: kubernetes-pods
target_label: scrape_job
{{- end }}
{{- toYaml .Values.config.snippets.common | nindent 4 }}
{{- with .Values.config.snippets.extraRelabelConfigs }}
{{- toYaml . | nindent 4 }}
{{- end }}
# -- Config file contents for Promtail.
# Must be configured as string.
# It is templated so it can be assembled from reusable snippets in order to avoid redundancy.
# @default -- See `values.yaml`
file: |
server:
log_level: {{ .Values.config.logLevel }}
http_listen_port: {{ .Values.config.serverPort }}
client:
url: {{ .Values.config.lokiAddress | default ( printf "http://%v.ix-%v.svc.cluster.local:3100/loki/api/v1/push" .Release.Name .Release.Name ) }}
{{- tpl .Values.config.snippets.extraClientConfigs . | nindent 2 }}
positions:
filename: /run/promtail/positions.yaml
scrape_configs:
{{- tpl .Values.config.snippets.scrapeConfigs . | nindent 2 }}
{{- tpl .Values.config.snippets.extraScrapeConfigs . | nindent 2 }}

View File

@ -0,0 +1,890 @@
groups:
- name: "Container Image"
description: "Image to be used for container"
- name: "Controller"
description: "Configure workload deployment"
- name: "Container Configuration"
description: "additional container configuration"
- name: "App Configuration"
description: "App specific config options"
- name: "Networking and Services"
description: "Configure Network and Services for container"
- name: "Storage and Persistence"
description: "Persist and share data that is separate from the container"
- name: "Ingress"
description: "Ingress Configuration"
- name: "Security and Permissions"
description: "Configure security context and permissions"
- name: "Resources and Devices"
description: "Specify resources/devices to be allocated to workload"
- name: "Middlewares"
description: "Traefik Middlewares"
- name: "Metrics"
description: "Metrics"
- name: "Addons"
description: "Addon Configuration"
- name: "Advanced"
description: "Advanced Configuration"
portals: {}
questions:
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
schema:
type: dict
attrs:
- variable: main
label: "Main Service"
description: "The serving the Prometheus WebUI"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Service Type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: "Simple"
enum:
- value: "Simple"
description: "Simple"
- value: "ClusterIP"
description: "ClusterIP"
- value: "NodePort"
description: "NodePort (Advanced)"
- value: "LoadBalancer"
description: "LoadBalancer (Advanced)"
- variable: loadBalancerIP
label: "LoadBalancer IP"
description: "LoadBalancerIP"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: list
default: []
items:
- variable: externalIP
label: "External IP"
schema:
type: string
- variable: ports
label: "Service's Port(s) Configuration"
schema:
type: dict
attrs:
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 3101
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 3101
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
- variable: dnsPolicy
group: "Networking and Services"
label: "dnsPolicy"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "ClusterFirst"
description: "ClusterFirst"
- value: "ClusterFirstWithHostNet"
description: "ClusterFirstWithHostNet"
- value: "None"
description: "None"
- variable: dnsConfig
label: "DNS Configuration"
group: "Networking and Services"
description: "Specify custom DNS configuration which will be applied to the pod"
schema:
type: dict
attrs:
- variable: nameservers
label: "Nameservers"
schema:
default: []
type: list
items:
- variable: nameserver
label: "Nameserver"
schema:
type: string
- variable: options
label: "options"
schema:
default: []
type: list
items:
- variable: option
label: "Option Entry"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: searches
label: "Searches"
schema:
default: []
type: list
items:
- variable: search
label: "Search Entry"
schema:
type: string
- variable: serviceList
label: "Add Manual Custom Services"
group: "Networking and Services"
schema:
type: list
default: []
items:
- variable: serviceListEntry
label: "Custom Service"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: name
label: "Name"
schema:
type: string
default: ""
- variable: type
label: "Service Type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: "Simple"
enum:
- value: "Simple"
description: "Simple"
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- value: "LoadBalancer"
description: "LoadBalancer"
- variable: loadBalancerIP
label: "LoadBalancer IP"
description: "LoadBalancerIP"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: list
default: []
items:
- variable: externalIP
label: "External IP"
schema:
type: string
- variable: portsList
label: "Additional Service Ports"
schema:
type: list
default: []
items:
- variable: portsListEntry
label: "Custom ports"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
hidden: true
- variable: name
label: "Port Name"
schema:
type: string
default: ""
- variable: protocol
label: "Port Type"
schema:
type: string
default: "TCP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: targetPort
label: "Target Port"
description: "This port exposes the container port on the service"
schema:
type: int
required: true
- variable: port
label: "Container Port"
schema:
type: int
required: true
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort"
schema:
type: int
min: 9000
max: 65535
- variable: persistenceList
label: "Additional app storage"
group: "Storage and Persistence"
schema:
type: list
default: []
items:
- variable: persistenceListEntry
label: "Custom Storage"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: name
label: "Name (optional)"
description: "Not required, please set to config when mounting /config or temp when mounting /tmp"
schema:
type: string
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simpleHP"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
- variable: setPermissionsSimple
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
show_if: [["type", "=", "simpleHP"]]
type: boolean
default: true
- variable: setPermissions
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
show_if: [["type", "=", "hostPath"]]
type: boolean
default: true
- variable: readOnly
label: "readOnly"
schema:
type: boolean
default: false
- variable: hostPathSimple
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "simpleHP"]]
type: hostpath
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: ""
required: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
- variable: size
label: "Size quotum of storage"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "999Gi"
- variable: hostPathType
label: "(Advanced) hostPath Type"
schema:
show_if: [["type", "=", "hostPath"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "DirectoryOrCreate"
description: "DirectoryOrCreate"
- value: "Directory"
description: "Directory"
- value: "FileOrCreate"
description: "FileOrCreate"
- value: "File"
description: "File"
- value: "Socket"
description: "Socket"
- value: "CharDevice"
description: "CharDevice"
- value: "BlockDevice"
description: "BlockDevice"
- variable: storageClass
label: "(Advanced) storageClass"
description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "SCALE-ZFS"
- variable: accessMode
label: "(Advanced) Access Mode"
description: "Allow or disallow multiple PVC's writhing to the same PV"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "ReadWriteOnce"
enum:
- value: "ReadWriteOnce"
description: "ReadWriteOnce"
- value: "ReadOnlyMany"
description: "ReadOnlyMany"
- value: "ReadWriteMany"
description: "ReadWriteMany"
- variable: advanced
label: "Show Advanced Options"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: labelsList
label: "Labels"
schema:
type: list
default: []
items:
- variable: labelItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: annotationsList
label: "Annotations"
schema:
type: list
default: []
items:
- variable: annotationItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable Ingress"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hosts
label: "Hosts"
schema:
type: list
default: []
items:
- variable: hostEntry
label: "Host"
schema:
type: dict
attrs:
- variable: host
label: "HostName"
schema:
type: string
default: ""
required: true
- variable: paths
label: "Paths"
schema:
type: list
default: []
items:
- variable: pathEntry
label: "Host"
schema:
type: dict
attrs:
- variable: path
label: "path"
schema:
type: string
required: true
default: "/"
- variable: pathType
label: "pathType"
schema:
type: string
required: true
default: "Prefix"
- variable: tls
label: "TLS-Settings"
schema:
type: list
default: []
items:
- variable: tlsEntry
label: "Host"
schema:
type: dict
attrs:
- variable: hosts
label: "Certificate Hosts"
schema:
type: list
default: []
items:
- variable: host
label: "Host"
schema:
type: string
default: ""
required: true
- variable: scaleCert
label: "Select TrueNAS SCALE Certificate"
schema:
type: int
$ref:
- "definitions/certificate"
- variable: entrypoint
label: "(Advanced) Traefik Entrypoint"
description: "Entrypoint used by Traefik when using Traefik as Ingress Provider"
schema:
type: string
default: "websecure"
required: true
- variable: middlewares
label: "Traefik Middlewares"
description: "Add previously created Traefik Middlewares to this Ingress"
schema:
type: list
default: []
items:
- variable: name
label: "Name"
schema:
type: string
default: ""
required: true
- variable: expert
label: "Show Expert Configuration Options"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enableFixedMiddlewares
description: "These middlewares enforce a number of best practices."
label: "Enable Default Middlewares"
schema:
type: boolean
default: true
- variable: ingressClassName
label: "IngressClass Name"
schema:
type: string
default: ""
- variable: labelsList
label: "Labels"
schema:
type: list
default: []
items:
- variable: labelItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: annotationsList
label: "Annotations"
schema:
type: list
default: []
items:
- variable: annotationItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: ingressList
label: "Add Manual Custom Ingresses"
group: "Ingress"
schema:
type: list
default: []
items:
- variable: ingressListEntry
label: "Custom Ingress"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable Ingress"
schema:
type: boolean
default: true
hidden: true
- variable: name
label: "Name"
schema:
type: string
default: ""
- variable: ingressClassName
label: "IngressClass Name"
schema:
type: string
default: ""
- variable: labelsList
label: "Labels"
schema:
type: list
default: []
items:
- variable: labelItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: annotationsList
label: "Annotations"
schema:
type: list
default: []
items:
- variable: annotationItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: hosts
label: "Hosts"
schema:
type: list
default: []
items:
- variable: hostEntry
label: "Host"
schema:
type: dict
attrs:
- variable: host
label: "HostName"
schema:
type: string
default: ""
required: true
- variable: paths
label: "Paths"
schema:
type: list
default: []
items:
- variable: pathEntry
label: "Host"
schema:
type: dict
attrs:
- variable: path
label: "path"
schema:
type: string
required: true
default: "/"
- variable: pathType
label: "pathType"
schema:
type: string
required: true
default: "Prefix"
- variable: service
label: "Linked Service"
schema:
type: dict
attrs:
- variable: name
label: "Service Name"
schema:
type: string
default: ""
- variable: port
label: "Service Port"
schema:
type: int
- variable: tls
label: "TLS-Settings"
schema:
type: list
default: []
items:
- variable: tlsEntry
label: "Host"
schema:
type: dict
attrs:
- variable: hosts
label: "Certificate Hosts"
schema:
type: list
default: []
items:
- variable: host
label: "Host"
schema:
type: string
default: ""
required: true
- variable: scaleCert
label: "Select TrueNAS SCALE Certificate"
schema:
type: int
$ref:
- "definitions/certificate"
- variable: entrypoint
label: "Traefik Entrypoint"
description: "Entrypoint used by Traefik when using Traefik as Ingress Provider"
schema:
type: string
default: "websecure"
required: true
- variable: middlewares
label: "Traefik Middlewares"
description: "Add previously created Traefik Middlewares to this Ingress"
schema:
type: list
default: []
items:
- variable: name
label: "Name"
schema:
type: string
default: ""
required: true
- variable: autoscaling
group: "Advanced"
label: "(Advanced) Horizontal Pod Autoscaler"
schema:
type: dict
attrs:
- variable: enabled
label: "enabled"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: target
label: "Target"
description: "deployment name, defaults to main deployment"
schema:
type: string
default: ""
- variable: minReplicas
label: "Minimum Replicas"
schema:
type: int
default: 1
- variable: maxReplicas
label: "Maximum Replicas"
schema:
type: int
default: 5
- variable: targetCPUUtilizationPercentage
label: "Target CPU Utilization Percentage"
schema:
type: int
default: 80
- variable: targetMemoryUtilizationPercentage
label: "Target Memory Utilization Percentage"
schema:
type: int
default: 80

View File

@ -0,0 +1,2 @@
{{/* Render the templates */}}
{{ include "common.all" . }}

View File

@ -0,0 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: promtail-config
labels:
{{- include "common.labels" . | nindent 4 }}
stringData:
promtail.yaml: |
{{- tpl .Values.config.file . | nindent 4 }}

View File

@ -0,0 +1,31 @@
{{- if .Values.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . -}}
{{- with .Values.serviceMonitor.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.serviceMonitor.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.serviceMonitor.namespaceSelector }}
namespaceSelector:
{{- toYaml . | nindent 4 }}
{{- end }}
selector:
matchLabels:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
endpoints:
- port: http-metrics
{{- with .Values.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
{{- end }}

View File

View File

@ -0,0 +1,5 @@
icon_url: https://raw.githubusercontent.com/grafana/loki/master/docs/sources/logo.png
categories:
- metrics
- logs