Commit new Chart releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot 2024-03-05 20:14:15 +00:00
parent a0f82604a6
commit 352387366f
765 changed files with 7777 additions and 6723 deletions

View File

@ -1,9 +0,0 @@
## [clickhouse-12.3.3](https://github.com/truecharts/charts/compare/clickhouse-12.3.2...clickhouse-12.3.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [mariadb-13.2.3](https://github.com/truecharts/charts/compare/mariadb-13.2.2...mariadb-13.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [memcached-12.3.4](https://github.com/truecharts/charts/compare/memcached-12.3.3...memcached-12.3.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [mongodb-12.2.4](https://github.com/truecharts/charts/compare/mongodb-12.2.3...mongodb-12.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [redis-12.2.3](https://github.com/truecharts/charts/compare/redis-12.2.2...redis-12.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [solr-10.2.3](https://github.com/truecharts/charts/compare/solr-10.2.2...solr-10.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [authelia-23.2.4](https://github.com/truecharts/charts/compare/authelia-23.2.3...authelia-23.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -0,0 +1,30 @@
# 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
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png

View File

@ -0,0 +1,100 @@
---
title: Changelog
---
*for the complete changelog, please refer to the website*
**Important:**
## [blocky-14.0.0](https://github.com/truecharts/charts/compare/blocky-13.6.3...blocky-14.0.0) (2024-03-05)
### Feat
- merge dns ports into a single service
## [blocky-13.6.3](https://github.com/truecharts/charts/compare/blocky-13.6.2...blocky-13.6.3) (2024-03-05)
### Chore
- bump everything to force helm release again
## [blocky-13.6.2](https://github.com/truecharts/charts/compare/blocky-13.6.0...blocky-13.6.2) (2024-03-05)
### Chore
- force rereleases
- update container image common to v18.1.6[@904d84b](https://github.com/904d84b) by renovate ([#18835](https://github.com/truecharts/charts/issues/18835))
## [blocky-12.2.7](https://github.com/truecharts/charts/compare/blocky-12.2.6...blocky-12.2.7) (2024-02-03)
### Chore
- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804))
## [blocky-12.2.6](https://github.com/truecharts/charts/compare/blocky-12.2.5...blocky-12.2.6) (2024-01-27)
### Chore
- update helm general non-major by renovate ([#17525](https://github.com/truecharts/charts/issues/17525))
## [blocky-12.2.5](https://github.com/truecharts/charts/compare/blocky-12.2.4...blocky-12.2.5) (2024-01-26)
### Chore
- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545))
## [blocky-12.2.4](https://github.com/truecharts/charts/compare/blocky-12.2.3...blocky-12.2.4) (2024-01-21)
### Chore
- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478))

View File

@ -0,0 +1,47 @@
annotations:
max_scale_version: 24.04.0
min_scale_version: 23.10.0
truecharts.org/SCALE-support: "true"
truecharts.org/category: network
truecharts.org/max_helm_version: "3.14"
truecharts.org/min_helm_version: "3.12"
truecharts.org/train: enterprise
apiVersion: v2
appVersion: 0.23.0
dependencies:
- name: common
version: 18.1.6
repository: oci://tccr.io/truecharts
condition: ""
alias: ""
tags: []
import-values: []
- name: redis
version: 11.2.1
repository: oci://tccr.io/truecharts
condition: redis.enabled
alias: ""
tags: []
import-values: []
deprecated: false
description: Blocky is a DNS proxy, DNS enhancer and ad-blocker for the local network written in Go
home: https://truecharts.org/charts/enterprise/blocky
icon: https://truecharts.org/img/hotlink-ok/chart-icons/blocky.png
keywords:
- dns
- blocky
kubeVersion: '>=1.24.0-0'
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: https://truecharts.org
name: blocky
sources:
- https://github.com/Mozart409/blocky-frontend
- https://0xerr0r.github.io/blocky/
- https://github.com/0xERR0R/blocky
- https://github.com/truecharts/charts/tree/master/charts/enterprise/blocky
- https://quay.io/oriedge/k8s_gateway
- https://hub.docker.com/r/spx01/blocky
type: application
version: 14.0.0

View File

@ -0,0 +1,106 @@
Business Source License 1.1
Parameters
Licensor: The TrueCharts Project, it's owner and it's contributors
Licensed Work: The TrueCharts "Blocky" Helm Chart
Additional Use Grant: You may use the licensed work in production, as long
as it is directly sourced from a TrueCharts provided
official repository, catalog or source. You may also make private
modification to the directly sourced licenced work,
when used in production.
The following cases are, due to their nature, also
defined as 'production use' and explicitly prohibited:
- Bundling, including or displaying the licensed work
with(in) another work intended for production use,
with the apparent intend of facilitating and/or
promoting production use by third parties in
violation of this license.
Change Date: 2050-01-01
Change License: 3-clause BSD license
For information about alternative licensing arrangements for the Software,
please contact: legal@truecharts.org
Notice
The Business Source License (this document, or the “License”) is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
“Business Source License” is a trademark of MariaDB Corporation Ab.
-----------------------------------------------------------------------------
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
MariaDB hereby grants you permission to use this Licenses text to license
your works, and to refer to it using the trademark “Business Source License”,
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this Licenses text and the “Business
Source License” name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where “compatible” means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text “None”.
3. To specify a Change Date.
4. Not to modify this License in any other way.

View File

@ -0,0 +1,28 @@
---
title: README
---
## General Info
TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/enterprise/blocky)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
_All Rights Reserved - The TrueCharts Project_

View File

@ -0,0 +1,9 @@
## [blocky-14.0.0](https://github.com/truecharts/charts/compare/blocky-13.6.3...blocky-14.0.0) (2024-03-05)
### Feat
- merge dns ports into a single service

View File

@ -0,0 +1,8 @@
Blocky is a DNS proxy, DNS enhancer and ad-blocker for the local network written in Go
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/blocky](https://truecharts.org/charts/enterprise/blocky)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,874 @@
{
"__inputs": [
{
"name": "DS_POSTGRES",
"label": "Postgres",
"description": "",
"type": "datasource",
"pluginId": "postgres",
"pluginName": "Postgres"
}
],
"__requires": [
{
"type": "panel",
"id": "barchart",
"name": "Bar chart",
"version": ""
},
{
"type": "panel",
"id": "bargauge",
"name": "Bar gauge",
"version": ""
},
{
"type": "grafana",
"id": "grafana",
"name": "Grafana",
"version": "8.1.2"
},
{
"type": "datasource",
"id": "postgres",
"name": "Postgres",
"version": "1.0.0"
},
{
"type": "panel",
"id": "piechart",
"name": "Pie chart",
"version": ""
},
{
"type": "panel",
"id": "table",
"name": "Table",
"version": ""
},
{
"type": "panel",
"id": "timeseries",
"name": "Time series",
"version": ""
}
],
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1631130053746,
"links": [],
"panels": [
{
"cacheTimeout": null,
"datasource": "${DS_POSTGRES}",
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"displayName": "${__field.labels.response_type}",
"mappings": [],
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 0
},
"id": 14,
"interval": null,
"links": [],
"options": {
"displayLabels": [],
"legend": {
"displayMode": "table",
"placement": "right",
"values": ["value"]
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["sum"],
"fields": "",
"values": false
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.1.2",
"repeatDirection": "v",
"targets": [
{
"format": "time_series",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT t.response_type, max(t.request_Ts) as time, count(*) as cnt from log_entries t \n WHERE $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0)\n group by t.response_type\n order by time",
"refId": "A",
"select": [
[
{
"params": ["value"],
"type": "column"
}
]
],
"timeColumn": "time",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"timeFrom": null,
"timeShift": null,
"title": "Query count by response type",
"transformations": [],
"type": "piechart"
},
{
"datasource": "${DS_POSTGRES}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": []
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 6,
"y": 0
},
"id": 16,
"options": {
"displayLabels": [],
"legend": {
"displayMode": "table",
"placement": "right",
"values": ["value"]
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"format": "time_series",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT max(t.request_ts) AS time,\n case when t.reason like ''BLOCKED%'' then SPLIT_PART(SPLIT_PART(t.reason,''('',-1), '')'',1) else '''' end AS metric,\n count(t.reason) AS cnt\nFROM log_entries t\nWHERE t.response_type =''BLOCKED''\n AND $__timeFilter(t.request_Ts)\n AND t.client_name in ($client_name)\n AND (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0)\nGROUP BY 2\nORDER BY time",
"refId": "A",
"select": [
[
{
"params": ["duration_ms"],
"type": "column"
}
]
],
"table": "log_entries",
"timeColumn": "request_ts",
"timeColumnType": "timestamp",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "Blocked by Blacklist",
"type": "piechart"
},
{
"cacheTimeout": null,
"datasource": "${DS_POSTGRES}",
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 13,
"interval": null,
"links": [],
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": true
},
"showUnfilled": true,
"text": {}
},
"pluginVersion": "8.1.2",
"repeatDirection": "v",
"targets": [
{
"format": "table",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT max(t.request_Ts) as time, t.client_name as metric, count(*) as cnt from log_entries t \n WHERE $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0)\n group by t.client_name\n order by 3 desc",
"refId": "A",
"select": [
[
{
"params": ["value"],
"type": "column"
}
]
],
"timeColumn": "time",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"timeFrom": null,
"timeShift": null,
"title": "Query count by client",
"transformations": [],
"type": "bargauge"
},
{
"datasource": "${DS_POSTGRES}",
"description": "Top 20 effective top level domain plus one more label",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 67,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 2
},
"displayName": "count",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 11,
"options": {
"barWidth": 0.26,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"orientation": "horizontal",
"showValue": "never",
"stacking": "none",
"text": {
"valueSize": 10
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"format": "table",
"group": [],
"hide": false,
"metricColumn": "question_name",
"rawQuery": true,
"rawSql": "SELECT t.effective_tldp as metric, count(*) as value from log_entries t \nWHERE $__timeFilter(t.request_Ts) \n and t.response_type in ($response_type) \n and t.client_name in ($client_name) \n and (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0) \n group by t.effective_tldp order by count(*) desc limit 20",
"refId": "A",
"select": [
[
{
"params": ["value"],
"type": "column"
}
]
],
"table": "log_entries",
"timeColumn": "request_ts",
"where": []
}
],
"title": "Top 20 effective TLD+1",
"type": "barchart"
},
{
"datasource": "${DS_POSTGRES}",
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 67,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 2
},
"displayName": "count",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 8,
"options": {
"barWidth": 0.26,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"orientation": "horizontal",
"showValue": "never",
"stacking": "none",
"text": {
"valueSize": 10
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"format": "table",
"group": [],
"hide": false,
"metricColumn": "question_name",
"rawQuery": true,
"rawSql": "SELECT t.question_name as metric, count(*) as value from log_entries t \n WHERE $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0) \n group by t.question_name order by count(*) desc limit 20",
"refId": "A",
"select": [
[
{
"params": ["value"],
"type": "column"
}
]
],
"table": "log_entries",
"timeColumn": "request_ts",
"where": []
}
],
"title": "Top 20 queried domains",
"type": "barchart"
},
{
"datasource": "${DS_POSTGRES}",
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "queries count",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
"fillOpacity": 35,
"gradientMode": "hue",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 12,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": 3600000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"displayName": "${__field.labels.client_name}",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 16
},
"id": 12,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "right"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.1.2",
"targets": [
{
"format": "time_series",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT\n $__timeGroupAlias(t.request_Ts, ''30m''),\n t.client_name,\n count(*) as c\nFROM log_entries t\nWHERE\n $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0)\nGROUP BY 1,2\nORDER BY 1",
"refId": "A",
"select": [
[
{
"params": ["duration_ms"],
"type": "column"
}
]
],
"table": "log_entries",
"timeColumn": "request_ts",
"timeColumnType": "timestamp",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "Queries number per client (30m)",
"type": "timeseries"
},
{
"datasource": "${DS_POSTGRES}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": -1,
"drawStyle": "bars",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "stepBefore",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "dtdurationms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 23
},
"id": 10,
"options": {
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"format": "time_series",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT\n EXTRACT(EPOCH from t.request_Ts) as time,\n t.duration_ms\nFROM log_entries t\nWHERE\n $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0)\nORDER BY request_ts",
"refId": "A",
"select": [
[
{
"params": ["duration_ms"],
"type": "column"
}
]
],
"table": "log_entries",
"timeColumn": "request_ts",
"timeColumnType": "timestamp",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "Query duration",
"type": "timeseries"
},
{
"datasource": "${DS_POSTGRES}",
"description": "Last 100 queries, newest on top",
"fieldConfig": {
"defaults": {
"custom": {
"align": null,
"displayMode": "auto",
"filterable": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "time"
},
"properties": [
{
"id": "unit",
"value": "dateTimeAsIsoNoDateIfToday"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 31
},
"id": 4,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.2",
"targets": [
{
"format": "table",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT EXTRACT(EPOCH from t.request_Ts) as \"time\", \n t.client_ip as \"client IP\", \n t.client_name as \"client name\", \n t.duration_ms as \"duration in ms\", \n t.response_type as \"response type\", \n t.question_type as \"question type\", \n t.question_name as \"question name\", \n t.effective_tldp as \"effective TLD+1\", \n t.answer as \"answer\" from log_entries t \n WHERE $__timeFilter(t.request_Ts) and \n t.response_type in ($response_type) and \n t.client_name in ($client_name) and \n (length(''$question'') = 0 or POSITION(lower(''$question'') IN t.question_name) > 0) \n order by t.request_Ts desc limit 100",
"refId": "A",
"select": [
[
{
"params": ["value"],
"type": "column"
}
]
],
"timeColumn": "time",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"timeFrom": null,
"timeShift": null,
"title": "Last queries",
"type": "table"
}
],
"refresh": "",
"schemaVersion": 30,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "BlockyPostgres",
"value": "blockypostgres"
},
"hide": 0,
"includeAll": false,
"label": "datasource",
"multi": false,
"name": "DS_POSTGRES",
"options": [],
"query": "grafana-postgresql-datasource",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
},
{
"allValue": "",
"current": {},
"datasource": "${DS_POSTGRES}",
"definition": "select distinct client_name from log_entries",
"description": null,
"error": null,
"hide": 0,
"includeAll": true,
"label": "Client name",
"multi": true,
"name": "client_name",
"options": [],
"query": "select distinct client_name from log_entries",
"refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 1,
"tagValuesQuery": "",
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"current": {},
"datasource": "${DS_POSTGRES}",
"definition": "select distinct response_type from log_entries",
"description": null,
"error": null,
"hide": 0,
"includeAll": true,
"label": "Response type",
"multi": true,
"name": "response_type",
"options": [],
"query": "select distinct response_type from log_entries",
"refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 1,
"tagValuesQuery": "",
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"current": {
"selected": false,
"text": "",
"value": ""
},
"description": null,
"error": null,
"hide": 0,
"label": "Domain (contains)",
"name": "question",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"skipUrlSync": false,
"type": "textbox"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Blocky query",
"uid": "AVmWSVWgz",
"version": 3
}

View File

@ -0,0 +1,380 @@
image:
repository: spx01/blocky
tag: v0.23@sha256:24855b63986c790093554a1f62b58379a06bc10a90ee073906e7c39bf692adcc
pullPolicy: IfNotPresent
k8sgatewayImage:
repository: quay.io/oriedge/k8s_gateway
pullPolicy: IfNotPresent
tag: v0.4.0@sha256:7bdbd447c0244b8f89de9cd6f4826ed0ac66c9406fac3a4ac80081020c251c6b
manifestManager:
enabled: true
workload:
main:
replicas: 2
strategy: RollingUpdate
podSpec:
containers:
main:
probes:
liveness:
enabled: false
type: exec
command:
- /app/blocky
- healthcheck
readiness:
enabled: false
type: exec
command:
- /app/blocky
- healthcheck
startup:
enabled: false
type: exec
command:
- /app/blocky
- healthcheck
# -- Blocky Config File content
blockyConfig: {}
# upstream:
# default:
# - 1.1.1.1
# -- some general blocky settings
blocky:
# -- Enable prometheus annotations
enablePrometheus: true
service:
main:
enabled: true
ports:
main:
enabled: true
port: 4000
protocol: http
targetPort: 4000
dns:
enabled: true
ports:
dnstcp:
enabled: true
port: 53
targetPort: 53
dnsudp:
enabled: true
port: 53
protocol: udp
targetPort: 53
dot:
enabled: true
ports:
dot:
enabled: true
port: 853
protocol: tcp
targetPort: 853
https:
enabled: true
ports:
https:
enabled: true
port: 4443
protocol: https
targetPort: 4443
k8sgateway:
enabled: true
ports:
k8sgateway:
enabled: true
port: 5353
protocol: udp
targetPort: 5353
## TODO Add support for SCALE certificates and certificates secrets here
certFile: ""
keyFile: ""
logLevel: info
logFormat: text
logTimestamp: true
logPrivacy: false
dohUserAgent: ""
minTlsServeVersion: 1.2
# -- set the default DNS upstream servers
# Primarily designed for inclusion in the TrueNAS SCALE GUI
defaultUpstreams:
- 1.1.1.1
- 1.0.0.1
- 8.8.8.8
- 8.8.4.4
- 9.9.9.9
- 149.112.112.112
- 208.67.222.222
- 208.67.220.220
- 8.26.56.26
- 8.20.247.20
- 185.228.168.9
- 185.228.169.9
- 76.76.19.19
- 76.223.122.150
- 76.76.2.0
- 76.76.10.0
# -- set additional upstreams
# Primarily designed for inclusion in the TrueNAS SCALE GUI
upstreams:
# - name: group2
# dnsservers:
# - 1.1.1.1
# -- set bootstrap dns (not needed)
# Ensures bootstrap encryption and ensure it doesn't use k8s dns
bootstrapDns:
# -- Upstream
upstream: ""
# -- IP's linked to upstream DoT/DoH DNS name
ips: []
# -- set additional bootstrap dns (not needed, only used if bootstrapDns is set)
additionalBootstrapDns: []
# - upstream: ""
# ips: []
# -- Return empty answer for these queries
filtering:
# -- Ensures filtering by query type
queryTypes: []
# -- Set manual custom DNS resolution
customDNS:
customTTL: 1h
filterUnmappedTypes: true
rewrite: []
# - in: something.com
# out: somethingelse.com
mapping: []
# - domain: something.com
# dnsserver: 192.168.178.1
# -- Setup client-name lookup
clientLookup:
# -- upstream used for client-name lookup
upstream: ""
singleNameOrder: []
clients:
# - domain: laptop
# ips: []
# -- Setup caching
caching:
minTime: 5m
maxTime: 30m
maxItemsCount: 0
prefetching: false
prefetchExpires: 2h
prefetchThreshold: 5
prefetchMaxItemsCount: 0
cacheTimeNegative: 30m
# -- set conditional settings
# Primarily designed for inclusion in the TrueNAS SCALE GUI
conditional:
rewrite: []
# - in: something.com
# out: somethingelse.com
mapping: []
# - domain: something.com
# dnsserver: 192.168.178.1
# -- set blocking settings using Lists
# Primarily designed for inclusion in the TrueNAS SCALE GUI
blocking:
# -- Sets the blocktype
blockType: nxDomain
# -- Sets the block ttl
blockTTL: 6h
# -- Sets the block refreshPeriod
refreshPeriod: 4h
# -- Sets the block download timeout
downloadTimeout: 60s
# -- Sets the block download attempt count
downloadAttempts: 3
# -- Sets the block download cooldown
downloadCooldown: 2s
# -- Set the start strategy (blocking | failOnError | fast)
startStrategy: blocking
# -- Sets how many list-groups can be processed at the same time
processingConcurrency: 4
# -- Add blocky whitelists
whitelist: []
# - name: ads
# lists:
# - https://someurl.com/list.txt
# - /somefile.txt
# -- Blocky blacklists
blacklist: []
# - name: ads
# lists:
# - https://someurl.com/list.txt
# - /somefile.txt
# -- Blocky clientGroupsBlock
clientGroupsBlock: []
# - name: default
# groups:
# - ads
# -- configure using hostsfile for lookups
# Allows for using the hosts configured in kubernetes and such
hostsFile:
enabled: false
filePath: /etc/hosts
hostsTTL: 60m
refreshPeriod: 30m
## TODO: add this with postgresql support as well
# queryLog:
# type: csv
# target: /logs
# logRetentionDays: 0
# creationAttempts: 3
# CreationCooldown: 2
podOptions:
automountServiceAccountToken: true
portal:
open:
enabled: false
serviceAccount:
main:
# -- Specifies whether a service account should be created
enabled: true
primary: true
# -- Create a ClusterRole and ClusterRoleBinding
# @default -- See below
rbac:
main:
# -- Enables or disables the ClusterRole and ClusterRoleBinding
enabled: true
primary: true
clusterWide: true
# -- Set Rules on the ClusterRole
rules:
- apiGroups:
- ""
resources:
- services
- namespaces
verbs:
- list
- watch
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- list
- watch
k8sgateway:
enabled: true
# -- TTL for non-apex responses (in seconds)
ttl: 300
# -- Limit what kind of resources to watch, e.g. watchedResources: ["Ingress"]
watchedResources: []
# -- Service name of a secondary DNS server (should be `serviceName.namespace`)
secondary: ""
# -- Override the default `serviceName.namespace` domain apex
apex: ""
# -- list of processed domains
domains: []
# -- Delegated domain
# - domain: "example.com"
# # -- Optional configuration option for DNS01 challenge that will redirect all acme
# # challenge requests to external cloud domain (e.g. managed by cert-manager)
# # See: https://cert-manager.io/docs/configuration/acme/dns01/
# dnsChallenge:
# enabled: false
# domain: dns01.clouddns.com
forward:
enabled: false
primary: tls://1.1.1.1
secondary: tls://1.0.0.1
options:
- name: tls_servername
value: cloudflare-dns.com
configmap:
dashboard:
enabled: true
labels:
grafana_dashboard: "1"
data:
blocky.json: >-
{{ .Files.Get "dashboard.json" | indent 8 }}
blockypostgres.json: >-
{{ .Files.Get "dashboardpsql.json" | indent 8 }}
datasource:
enabled: true
labels:
grafana_datasources: "1"
data:
datasourceblockypsql.yaml: |-
apiVersion: 1
datasources:
- name: BlockyPostgres
type: postgres
uid: blockypostgres
url: {{ printf "%s.%s:5432" (.Values.cnpg.main.creds.host | trimAll "\"") .Release.Namespace }}
access: proxy
user: {{ .Values.cnpg.main.user }}
secureJsonData:
password: {{ .Values.cnpg.main.creds.password | default "na" }}
jsonData:
database: {{ .Values.cnpg.main.database }}
sslmode: 'disable' # disable/require/verify-ca/verify-full
maxOpenConns: 100 # Grafana v5.4+
maxIdleConns: 100 # Grafana v5.4+
maxIdleConnsAuto: true # Grafana v9.5.1+
connMaxLifetime: 14400 # Grafana v5.4+
postgresVersion: 1500 # 903=9.3, 904=9.4, 905=9.5, 906=9.6, 1000=10
timescaledb: false
metrics:
main:
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
# @default -- See values.yaml
enabled: true
type: "servicemonitor"
endpoints:
- port: main
path: /metrics
# -- Enable and configure Prometheus Rules for the chart under this key.
# @default -- See values.yaml
prometheusRule:
enabled: false
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: UnifiPollerAbsent
# annotations:
# description: Unifi Poller has disappeared from Prometheus service discovery.
# summary: Unifi Poller is down.
# expr: |
# absent(up{job=~".*unifi-poller.*"} == 1)
# for: 5m
# labels:
# severity: critical
redis:
enabled: true
# CANNOT be defined in above yaml section
queryLog:
# optional one of: mysql, postgresql, csv, csv-client. If empty, log to console
type: "postgresql"
# directory (should be mounted as volume in docker) for csv, db connection string for mysql, ignored for included postgresql
# target: /var/log/something
# postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
# if > 0, deletes log files which are older than ... days
logRetentionDays: 0
# optional: Max attempts to create specific query log writer, default: 3
creationAttempts: 3
# optional: Time between the creation attempts, default: 2s
creationCooldown: 2s
cnpg:
main:
enabled: true
user: blocky
database: blocky

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -0,0 +1,231 @@
{{/* Define the config */}}
{{- define "blocky.configmap" -}}
{{- $config := mustMerge ( include "blocky.config" . | fromYaml ) ( .Values.blockyConfig ) }}
enabled: true
data:
config.yml: |
{{ $config | toYaml | indent 4 }}
{{- end -}}
{{- define "blocky.config" -}}
redis:
address: {{ printf "%v-%v" .Release.Name "redis" }}:6379
password: {{ .Values.redis.creds.redisPassword | trimAll "\"" }}
database: 0
required: true
connectionAttempts: 10
connectionCooldown: 3s
prometheus:
enable: true
path: /metrics
queryLog:
# optional one of: postgresql, csv, csv-client. If empty, log to console
type: {{ .Values.queryLog.type }}
# directory (should be mounted as volume in docker) for csv, db connection string for mysql/postgresql
#postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
{{- if eq .Values.queryLog.type "postgresql" }}
target: {{ .Values.cnpg.main.creds.std }}
{{- else }}
target: {{ .Values.queryLog.target }}
{{- end }}
# if > 0, deletes log files which are older than ... days
logRetentionDays: {{ .Values.queryLog.logRetentionDays | default 0 }}
# optional: Max attempts to create specific query log writer
creationAttempts: {{ .Values.queryLog.creationAttempts | default 3 }}
# optional: Time between the creation attempts
creationCooldown: {{ .Values.queryLog.creationAttempts | default "2s" }}
upstream:
default:
{{- .Values.defaultUpstreams | toYaml | nindent 8 }}
{{- range $id, $value := .Values.upstreams }}
{{ $value.name }}:
{{- $value.dnsservers | toYaml | nindent 8 }}
{{- end }}
ports:
{{- if .Values.service.dnsudp.enabled }}
dns: {{ .Values.service.dnsudp.ports.dnsudp.targetPort }}
{{- end }}
{{- if .Values.service.dot.enabled }}
tls: {{ .Values.service.dot.ports.dot.targetPort }}
{{- end }}
{{- if .Values.service.main.enabled }}
http: {{ .Values.service.main.ports.main.targetPort }}
{{- end }}
{{- if .Values.service.https.enabled }}
https: {{ .Values.service.https.ports.https.targetPort }}
{{- end }}
{{- if .Values.certFile }}
certFile: {{ .Values.certFile }}
{{- end }}
{{- if .Values.keyFile }}
keyFile: {{ .Values.keyFile }}
{{- end }}
log:
{{- if .Values.logLevel }}
level: {{ .Values.logLevel }}
{{- end }}
{{- if .Values.logTimestamp }}
timestamp: {{ .Values.logTimestamp }}
{{- end }}
{{- if .Values.logPrivacy }}
privacy: {{ .Values.logPrivacy }}
{{- end }}
{{- if .Values.dohUserAgent }}
dohUserAgent: {{ .Values.dohUserAgent }}
{{- end }}
{{- if .Values.minTlsServeVersion }}
minTlsServeVersion: {{ .Values.minTlsServeVersion }}
{{- end }}
caching:
{{ toYaml .Values.caching | indent 2 }}
{{- if .Values.hostsFile.enabled }}
{{ $hostsfile := omit .Values.hostsFile "enabled" }}
hostsFile:
{{ toYaml $hostsfile | indent 2 }}
{{- end }}
{{- if or .Values.bootstrapDns.upstream .Values.bootstrapDns.ips }}
bootstrapDns:
{{- if .Values.bootstrapDns.upstream }}
- upstream: {{ .Values.bootstrapDns.upstream }}
{{- end }}
{{- if .Values.bootstrapDns.ips }}
ips:
{{- range $id, $value := .Values.bootstrapDns.ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{/* Add additional Bootstrap DNS */}}
{{- range .Values.additionalBootstrapDns }}
{{- with .upstream }}
- upstream: {{ . }}
{{- end }}
{{- if .ips }}
ips:
{{- range $id, $value := .ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.filtering.filtering }}
filtering:
{{- if .Values.filtering.ips }}
queryTypes:
{{- range $id, $value := .Values.filtering.ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.customDNS.filterUnmappedTypes .Values.customDNS.customTTL .Values.customDNS.rewrite .Values.customDNS.mapping }}
customDNS:
{{- if .Values.customDNS.upstream }}
upstream: {{ .Values.customDNS.upstream }}
{{- end }}
{{- if .Values.customDNS.customTTL }}
customTTL: {{ .Values.customDNS.customTTL }}
{{- end }}
{{- if .Values.customDNS.rewrite }}
rewrite:
{{- range $id, $value := .Values.customDNS.rewrite }}
{{ $value.in }}: {{ $value.out }}
{{- end }}
{{- end }}
{{- if .Values.customDNS.mapping }}
mapping:
{{- range $id, $value := .Values.customDNS.mapping }}
{{ $value.domain }}: {{ $value.dnsserver }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.clientLookup.upstream .Values.clientLookup.ips }}
clientLookup:
{{- if .Values.clientLookup.upstream }}
upstream: {{ .Values.clientLookup.upstream }}
{{- end }}
{{- if .Values.clientLookup.ips }}
singleNameOrder:
{{- range $id, $value := .Values.clientLookup.ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{- if .Values.clientLookup.clients }}
clients:
{{- range $id, $value := .Values.clientLookup.clients }}
{{ $value.domain }}:
{{- range $id, $value := .ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.conditional.rewrite .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
conditional:
{{- if .Values.conditional.rewrite }}
rewrite:
{{- range $id, $value := .Values.conditional.rewrite }}
{{ $value.in }}: {{ $value.out }}
{{- end }}
{{- end }}
{{- if or .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
mapping:
{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains }}
{{- range $id, $value := .Values.k8sgateway.domains }}
{{ .domain }}: 127.0.0.1:{{ $.Values.service.k8sgateway.ports.k8sgateway.targetPort }}
{{- end }}
{{- end }}
{{- range $id, $value := .Values.conditional.mapping }}
{{ $value.domain }}: {{ $value.dnsserver }}
{{- end }}
{{- end }}
{{- end }}
blocking:
blockType: {{ .Values.blocking.blockType }}
blockTTL: {{ .Values.blocking.blockTTL }}
refreshPeriod: {{ .Values.blocking.refreshPeriod }}
downloadTimeout: {{ .Values.blocking.downloadTimeout }}
downloadAttempts: {{ .Values.blocking.downloadAttempts }}
downloadCooldown: {{ .Values.blocking.downloadCooldown }}
startStrategy: {{ .Values.blocking.startStrategy }}
processingConcurrency: {{ .Values.blocking.processingConcurrency }}
{{- if .Values.blocking.whitelist }}
whiteLists:
{{- range $id, $value := .Values.blocking.whitelist }}
{{ $value.name }}:
{{- $value.lists | toYaml | nindent 10 }}
{{- end }}
{{- end }}
{{- if .Values.blocking.blacklist }}
blackLists:
{{- range $id, $value := .Values.blocking.blacklist }}
{{ $value.name }}:
{{- $value.lists | toYaml | nindent 10 }}
{{- end }}
{{- end }}
{{- if .Values.blocking.clientGroupsBlock }}
clientGroupsBlock:
{{- range $id, $value := .Values.blocking.clientGroupsBlock }}
{{ $value.name }}:
{{- $value.groups | toYaml | nindent 10 }}
{{- end }}
{{- end }}
{{- end -}}

View File

@ -0,0 +1,90 @@
{{- define "k8sgateway.container" -}}
enabled: true
imageSelector: k8sgatewayImage
securityContext:
runAsUser: 0
runAsGroup: 0
readOnlyRootFilesystem: true
args: ["-conf", "/etc/coredns/Corefile"]
probes:
readiness:
enabled: true
path: /ready
port: 8181
liveness:
enabled: true
path: /health
port: 8080
startup:
enabled: true
path: /ready
port: 8181
{{- end -}}
{{/*
Create the matchable regex from domain
*/}}
{{- define "k8sgateway.configmap.regex" -}}
{{- if .dnsChallenge.domain }}
{{- .dnsChallenge.domain | replace "." "[.]" -}}
{{- else -}}
{{ "unset" }}
{{- end }}
{{- end -}}
{{/* Define the configmap */}}
{{- define "k8sgateway.configmap" -}}
{{- $values := .Values.k8sgateway }}
{{- $fqdn := ( include "tc.v1.common.lib.chart.names.fqdn" . ) }}
enabled: true
data:
Corefile: |
.:{{ .Values.service.k8sgateway.ports.k8sgateway.targetPort }} {
errors
log
health {
lameduck 5s
}
ready
{{- range .Values.k8sgateway.domains }}
{{- if .dnsChallenge.enabled }}
{{- if not .dnsChallenge.domain -}}
{{- fail "DNS01 challenge domain is mandatory" -}}
{{- end }}
template IN ANY {{ required "Delegated domain ('domain') is mandatory" .domain }} {
match "_acme-challenge[.](.*)[.]{{ include "k8sgateway.configmap.regex" . }}"
{{- $name := "{{ \"{{ .Name }}\" }}" }}
{{- $index := "{{ \"{{ index .Match 1 }}\" }}" }}
answer "{{ $name }} 5 IN CNAME {{ $index }}.{{ .dnsChallenge.domain }}"
fallthrough
}
{{- end }}
{{- end }}
k8s_gateway {{ range .Values.k8sgateway.domains }}"{{ required "Delegated domain ('domain') is mandatory " .domain }}"{{ end }} {
apex {{ $values.apex | default $fqdn }}
ttl {{ $values.ttl }}
{{- if $values.secondary }}
secondary {{ $values.secondary }}
{{- end }}
{{- if $values.watchedResources }}
resources {{ join " " $values.watchedResources }}
{{- end }}
fallthrough
}
prometheus 0.0.0.0:9153
{{- if .Values.k8sgateway.forward.enabled }}
forward . {{ .Values.k8sgateway.forward.primary }} {{ .Values.k8sgateway.forward.secondary }} {
{{- range .Values.k8sgateway.forward.options }}
{{ .name }} {{ .value }}
{{- end }}
}
{{- else }}
forward . 1.1.1.1
{{- end }}
loop
reload
loadbalance
}
{{- end -}}

View File

@ -0,0 +1,106 @@
{{/* Make sure all variables are set properly */}}
{{- if eq .Values.queryLog.type "postgresql" -}}
{{- $_ := set .Values.cnpg.main "enabled" true -}}
{{- end }}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render configmap for blocky */}}
{{- $configmapFile := include "blocky.configmap" . | fromYaml -}}
{{- if $configmapFile -}}
{{- $_ := set .Values.configmap "config" $configmapFile -}}
{{- end -}}
{{- $gatewayconfig := include "k8sgateway.configmap" . | fromYaml -}}
{{- if $gatewayconfig -}}
{{- $_ := set .Values.configmap "corefile" $gatewayconfig -}}
{{- end -}}
{{/* Always mount the configmap, with the basic config, plus the 'blockyConfig' */}}
{{- define "blocky.configmap.mount" -}}
enabled: true
type: configmap
mountPath: /app/config.yml
objectName: config
readOnly: true
subPath: config.yml
{{- end -}}
{{/* Append the general configMap volume to the volumes */}}
{{- define "k8sgateway.configvolume" -}}
enabled: true
type: configmap
objectName: corefile
items:
- key: Corefile
path: Corefile
targetSelector:
main:
k8sgateway:
mountPath: "/etc/coredns"
readOnly: true
{{- end -}}
{{- $_ := set .Values.persistence "tc-config" (include "blocky.configmap.mount" . | fromYaml) -}}
{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains -}}
{{- $_ := set .Values.persistence "config-volume" (include "k8sgateway.configvolume" . | fromYaml) -}}
{{- $_ := set .Values.workload.main.podSpec.containers "k8sgateway" (include "k8sgateway.container" . | fromYaml) -}}
{{- end -}}
{{/* Define path for api */}}
{{- define "blocky.api" -}}
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . -}}
path: "/api"
# -- Ignored if not kubeVersion >= 1.14-0
pathType: Prefix
service:
# -- Overrides the service name reference for this path
name: {{ printf "%s-main" $fullname }}
port: {{ .Values.service.main.ports.main.port }}
{{- end -}}
{{/* inject websocket path to all main ingress hosts*/}}
{{- define "blocky.apiinjector" -}}
{{- $path := list (include "blocky.api" . | fromYaml) -}}
{{- if .Values.ingress.main.enabled }}
{{- range .Values.ingress.main.hosts }}
{{- $newpaths := list }}
{{- $newpaths := concat .paths $path }}
{{- $_ := set . "paths" ( deepCopy $newpaths ) -}}
{{- end }}
{{- end }}
{{- end -}}
{{/* inject api paths in ingress */}}
{{- include "blocky.apiinjector" . }}
{{/* Define path for DoH */}}
{{- define "blocky.doh" -}}
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . -}}
path: "/dns-query"
# -- Ignored if not kubeVersion >= 1.14-0
pathType: Prefix
service:
# -- Overrides the service name reference for this path
name: {{ printf "%s-main" $fullname }}
port: {{ .Values.service.main.ports.main.port }}
{{- end -}}
{{/* inject websocket path to all main ingress hosts*/}}
{{- define "blocky.dohinjector" -}}
{{- $path := list (include "blocky.doh" . | fromYaml) -}}
{{- if .Values.ingress.main.enabled }}
{{- range .Values.ingress.main.hosts }}
{{- $newpaths := list }}
{{- $newpaths := concat .paths $path }}
{{- $_ := set . "paths" ( deepCopy $newpaths ) -}}
{{- end }}
{{- end }}
{{- end -}}
{{/* inject api paths in ingress */}}
{{- include "blocky.dohinjector" . }}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

View File

@ -1,9 +0,0 @@
## [clusterissuer-7.2.3](https://github.com/truecharts/charts/compare/clusterissuer-7.2.2...clusterissuer-7.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [grafana-14.2.3](https://github.com/truecharts/charts/compare/grafana-14.2.2...grafana-14.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [kubeapps-2.3.3](https://github.com/truecharts/charts/compare/kubeapps-2.3.2...kubeapps-2.3.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [kubernetes-reflector-4.2.3](https://github.com/truecharts/charts/compare/kubernetes-reflector-4.2.2...kubernetes-reflector-4.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [metallb-config-6.2.3](https://github.com/truecharts/charts/compare/metallb-config-6.2.2...metallb-config-6.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [nextcloud-29.2.5](https://github.com/truecharts/charts/compare/nextcloud-29.2.4...nextcloud-29.2.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [prometheus-17.6.3](https://github.com/truecharts/charts/compare/prometheus-17.6.2...prometheus-17.6.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [traefik-26.4.13](https://github.com/truecharts/charts/compare/traefik-26.4.12...traefik-26.4.13) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [vaultwarden-26.2.4](https://github.com/truecharts/charts/compare/vaultwarden-26.2.3...vaultwarden-26.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [velero-4.2.3](https://github.com/truecharts/charts/compare/velero-4.2.2...velero-4.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [anything-llm-1.0.5](https://github.com/truecharts/charts/compare/anything-llm-1.0.4...anything-llm-1.0.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [archivebox-1.0.4](https://github.com/truecharts/charts/compare/archivebox-1.0.3...archivebox-1.0.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [atuin-2.0.4](https://github.com/truecharts/charts/compare/atuin-2.0.3...atuin-2.0.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [game-server-watcher-0.0.4](https://github.com/truecharts/charts/compare/game-server-watcher-0.0.3...game-server-watcher-0.0.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [gaseous-server-1.0.4](https://github.com/truecharts/charts/compare/gaseous-server-1.0.3...gaseous-server-1.0.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [grafana-agent-operator-0.0.5](https://github.com/truecharts/charts/compare/grafana-agent-operator-1.2.2...grafana-agent-operator-0.0.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [semaphore-1.0.5](https://github.com/truecharts/charts/compare/semaphore-1.0.4...semaphore-1.0.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [twofauth-1.0.5](https://github.com/truecharts/charts/compare/twofauth-1.0.4...twofauth-1.0.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [wisemapping-0.0.3](https://github.com/truecharts/charts/compare/wisemapping-0.0.2...wisemapping-0.0.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [wyoming-openwakeword-0.0.5](https://github.com/truecharts/charts/compare/wyoming-openwakeword-0.0.4...wyoming-openwakeword-0.0.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [cert-manager-4.2.4](https://github.com/truecharts/charts/compare/cert-manager-4.2.3...cert-manager-4.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [cloudnative-pg-6.3.3](https://github.com/truecharts/charts/compare/cloudnative-pg-6.3.2...cloudnative-pg-6.3.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [grafana-agent-operator-1.2.3](https://github.com/truecharts/charts/compare/grafana-agent-operator-1.2.2...grafana-agent-operator-1.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [metallb-14.2.3](https://github.com/truecharts/charts/compare/metallb-14.2.2...metallb-14.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [openebs-3.2.3](https://github.com/truecharts/charts/compare/openebs-3.2.2...openebs-3.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [prometheus-operator-6.4.3](https://github.com/truecharts/charts/compare/prometheus-operator-6.4.2...prometheus-operator-6.4.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [acestream-6.2.3](https://github.com/truecharts/charts/compare/acestream-6.2.2...acestream-6.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [actualserver-10.3.3](https://github.com/truecharts/charts/compare/actualserver-10.3.2...actualserver-10.3.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [adguard-home-9.2.3](https://github.com/truecharts/charts/compare/adguard-home-9.2.2...adguard-home-9.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [adguardhome-sync-6.2.3](https://github.com/truecharts/charts/compare/adguardhome-sync-6.2.2...adguardhome-sync-6.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [adminer-8.2.3](https://github.com/truecharts/charts/compare/adminer-8.2.2...adminer-8.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [airdcpp-webclient-10.2.3](https://github.com/truecharts/charts/compare/airdcpp-webclient-10.2.2...airdcpp-webclient-10.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [airsonic-advanced-13.2.3](https://github.com/truecharts/charts/compare/airsonic-advanced-13.2.2...airsonic-advanced-13.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [airsonic-13.2.3](https://github.com/truecharts/charts/compare/airsonic-13.2.2...airsonic-13.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [alienswarm-reactivedrop-5.2.3](https://github.com/truecharts/charts/compare/alienswarm-reactivedrop-5.2.2...alienswarm-reactivedrop-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [alienswarm-5.2.3](https://github.com/truecharts/charts/compare/alienswarm-5.2.2...alienswarm-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [alist-9.4.3](https://github.com/truecharts/charts/compare/alist-9.4.2...alist-9.4.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [amcrest2mqtt-11.2.3](https://github.com/truecharts/charts/compare/amcrest2mqtt-11.2.2...amcrest2mqtt-11.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [americasarmy-pg-5.2.3](https://github.com/truecharts/charts/compare/americasarmy-pg-5.2.2...americasarmy-pg-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [amule-7.2.3](https://github.com/truecharts/charts/compare/amule-7.2.2...amule-7.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [android-8-0-5.2.3](https://github.com/truecharts/charts/compare/android-8-0-5.2.2...android-8-0-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [androiddebugbridge-5.2.3](https://github.com/truecharts/charts/compare/androiddebugbridge-5.2.2...androiddebugbridge-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [anki-sync-server-6.2.3](https://github.com/truecharts/charts/compare/anki-sync-server-6.2.2...anki-sync-server-6.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [anonaddy-20.6.4](https://github.com/truecharts/charts/compare/anonaddy-20.6.3...anonaddy-20.6.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [anope-5.2.3](https://github.com/truecharts/charts/compare/anope-5.2.2...anope-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [answer-3.2.3](https://github.com/truecharts/charts/compare/answer-3.2.2...answer-3.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [apache-musicindex-11.2.3](https://github.com/truecharts/charts/compare/apache-musicindex-11.2.2...apache-musicindex-11.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [apache-webdav-5.2.3](https://github.com/truecharts/charts/compare/apache-webdav-5.2.2...apache-webdav-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [appdaemon-16.2.3](https://github.com/truecharts/charts/compare/appdaemon-16.2.2...appdaemon-16.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [apt-cacher-ng-8.2.3](https://github.com/truecharts/charts/compare/apt-cacher-ng-8.2.2...apt-cacher-ng-8.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [archiveteam-warrior-5.2.3](https://github.com/truecharts/charts/compare/archiveteam-warrior-5.2.2...archiveteam-warrior-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [aria2-12.2.3](https://github.com/truecharts/charts/compare/aria2-12.2.2...aria2-12.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [ariang-8.2.3](https://github.com/truecharts/charts/compare/ariang-8.2.2...ariang-8.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [arksurvivalevolved-7.2.3](https://github.com/truecharts/charts/compare/arksurvivalevolved-7.2.2...arksurvivalevolved-7.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [arma3-5.2.3](https://github.com/truecharts/charts/compare/arma3-5.2.2...arma3-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [arma3exilemod-5.2.3](https://github.com/truecharts/charts/compare/arma3exilemod-5.2.2...arma3exilemod-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [assettocorsa-5.2.3](https://github.com/truecharts/charts/compare/assettocorsa-5.2.2...assettocorsa-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [audacity-12.2.3](https://github.com/truecharts/charts/compare/audacity-12.2.2...audacity-12.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [audiobookshelf-9.2.3](https://github.com/truecharts/charts/compare/audiobookshelf-9.2.2...audiobookshelf-9.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [aurora-files-5.2.3](https://github.com/truecharts/charts/compare/aurora-files-5.2.2...aurora-files-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [authentik-24.2.5](https://github.com/truecharts/charts/compare/authentik-24.2.4...authentik-24.2.5) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [auto-yt-dl-5.2.3](https://github.com/truecharts/charts/compare/auto-yt-dl-5.2.2...auto-yt-dl-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [autobrr-8.3.3](https://github.com/truecharts/charts/compare/autobrr-8.3.2...autobrr-8.3.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [automatic-music-downloader-9.2.3](https://github.com/truecharts/charts/compare/automatic-music-downloader-9.2.2...automatic-music-downloader-9.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [automatic-ripping-machine-3.2.3](https://github.com/truecharts/charts/compare/automatic-ripping-machine-3.2.2...automatic-ripping-machine-3.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [autoscan-8.2.4](https://github.com/truecharts/charts/compare/autoscan-8.2.3...autoscan-8.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [avidemux-9.2.3](https://github.com/truecharts/charts/compare/avidemux-9.2.2...avidemux-9.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [avorion-5.2.3](https://github.com/truecharts/charts/compare/avorion-5.2.2...avorion-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [babybuddy-16.2.4](https://github.com/truecharts/charts/compare/babybuddy-16.2.3...babybuddy-16.2.4) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [backuppc-6.2.3](https://github.com/truecharts/charts/compare/backuppc-6.2.2...backuppc-6.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [baikal-5.2.3](https://github.com/truecharts/charts/compare/baikal-5.2.2...baikal-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [barcodebuddy-5.2.3](https://github.com/truecharts/charts/compare/barcodebuddy-5.2.2...barcodebuddy-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [barotrauma-5.2.3](https://github.com/truecharts/charts/compare/barotrauma-5.2.2...barotrauma-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [baserow-12.2.3](https://github.com/truecharts/charts/compare/baserow-12.2.2...baserow-12.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

View File

@ -1,9 +0,0 @@
## [batnoter-5.2.3](https://github.com/truecharts/charts/compare/batnoter-5.2.2...batnoter-5.2.3) (2024-03-05)
### Chore
- bump everything to force helm release again

Some files were not shown because too many files have changed in this diff Show More