Compare commits
148 Commits
pyload-3.0
...
uptimerobo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e853c19868 | ||
|
|
3767232a34 | ||
|
|
13d028db2f | ||
|
|
57477f7f45 | ||
|
|
93502f1946 | ||
|
|
02471a1b11 | ||
|
|
0d2abb800f | ||
|
|
a227188fae | ||
|
|
8f284df2f5 | ||
|
|
47f4ce2ffe | ||
|
|
1726590f14 | ||
|
|
56a328e8cb | ||
|
|
dfd04a3e67 | ||
|
|
841275dcef | ||
|
|
0302182b3c | ||
|
|
da42d2b8d6 | ||
|
|
a0c91706e2 | ||
|
|
0b95691902 | ||
|
|
e3a7855ce0 | ||
|
|
164459390b | ||
|
|
8c7886aca6 | ||
|
|
64b0f9e85c | ||
|
|
1f6a7848f7 | ||
|
|
9992a5d4cc | ||
|
|
5714a48d9b | ||
|
|
7c477c4a0e | ||
|
|
8def5650cd | ||
|
|
c98cae2e31 | ||
|
|
02bb8528b6 | ||
|
|
6c91d1ab33 | ||
|
|
f3fabbc093 | ||
|
|
6822478f7c | ||
|
|
ee59e9ada2 | ||
|
|
00d17bb5cc | ||
|
|
2c9806a2fd | ||
|
|
dde260bef5 | ||
|
|
91aef6139f | ||
|
|
01983ee081 | ||
|
|
09c6416bff | ||
|
|
6683b9b293 | ||
|
|
91c8466022 | ||
|
|
d8f9e8ce85 | ||
|
|
8ec4a9ab93 | ||
|
|
12df5053ab | ||
|
|
3a78db20ad | ||
|
|
1eaf501196 | ||
|
|
1a64e26400 | ||
|
|
461b727e3f | ||
|
|
8f35b43d38 | ||
|
|
134eaddf9a | ||
|
|
2b32f7ee83 | ||
|
|
dfceb6b41d | ||
|
|
f5aa0cb525 | ||
|
|
367853d6a6 | ||
|
|
5a17a2c1ec | ||
|
|
a69bef244c | ||
|
|
841b72482e | ||
|
|
8d34db1ead | ||
|
|
00ea6e06c3 | ||
|
|
f49a054d38 | ||
|
|
bb2432755e | ||
|
|
04da77a004 | ||
|
|
1335a5687e | ||
|
|
5f5b815cca | ||
|
|
e8734bef7c | ||
|
|
53f9166783 | ||
|
|
6c6bc95452 | ||
|
|
f81faa9219 | ||
|
|
11d18f1fe5 | ||
|
|
14c1ea96e3 | ||
|
|
9b04daa026 | ||
|
|
54074cc4a4 | ||
|
|
8eb2c6f8bd | ||
|
|
8b2a8b906c | ||
|
|
5119815aea | ||
|
|
060d27f9e7 | ||
|
|
76ca8d4fa3 | ||
|
|
959bdc6d6a | ||
|
|
5a0a792cc7 | ||
|
|
a5bdcad97b | ||
|
|
de46063893 | ||
|
|
70ea338e4e | ||
|
|
abf2d3b857 | ||
|
|
5b57026d00 | ||
|
|
d6fadad88f | ||
|
|
ddc9693916 | ||
|
|
6283f771be | ||
|
|
802ee07407 | ||
|
|
6a48d3fdb0 | ||
|
|
4a02be7d10 | ||
|
|
837f1c396e | ||
|
|
1b751c7d3e | ||
|
|
b191930b0c | ||
|
|
7b746e514d | ||
|
|
f6f548e7fb | ||
|
|
ab6cbbb1b0 | ||
|
|
194990c6c0 | ||
|
|
761d9996f6 | ||
|
|
e238de9de2 | ||
|
|
b648e8cddc | ||
|
|
8993e6d60b | ||
|
|
beaf1d697a | ||
|
|
41841cd579 | ||
|
|
47f775ff1d | ||
|
|
a4b9ef649d | ||
|
|
4b23411778 | ||
|
|
6b0324f3bf | ||
|
|
d4f05ae10d | ||
|
|
8acb00bd4c | ||
|
|
a4b0adde3b | ||
|
|
8f45bca459 | ||
|
|
a032abb1a6 | ||
|
|
5e98e3c4c5 | ||
|
|
c5a3fc36a0 | ||
|
|
a7bb41b467 | ||
|
|
f93046f40f | ||
|
|
97b2477fba | ||
|
|
99b4b09bac | ||
|
|
09b5b565b2 | ||
|
|
2e29840788 | ||
|
|
18966b01ab | ||
|
|
ba978447bf | ||
|
|
201652581c | ||
|
|
ceeab47aa6 | ||
|
|
48c20bd85e | ||
|
|
0129518222 | ||
|
|
5e47a7c1df | ||
|
|
c2065fba97 | ||
|
|
2336f09bf8 | ||
|
|
bd76ee081d | ||
|
|
519d381a25 | ||
|
|
c46d2dc089 | ||
|
|
4d7c76e021 | ||
|
|
56b6d69af7 | ||
|
|
edf7b69ca6 | ||
|
|
87863db2ca | ||
|
|
1676ddfb6b | ||
|
|
aa0786fcc8 | ||
|
|
207c6de178 | ||
|
|
e6dfc81f58 | ||
|
|
3dfb279101 | ||
|
|
4dca3dd1b5 | ||
|
|
b3f339dd77 | ||
|
|
22b8975741 | ||
|
|
628d8df6f4 | ||
|
|
d9f263e2ee | ||
|
|
9e4fd47bf8 | ||
|
|
fd53494429 |
168
.all-contributorsrc
Normal file
168
.all-contributorsrc
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"files": [
|
||||
"README.md"
|
||||
],
|
||||
"imageSize": 100,
|
||||
"commit": false,
|
||||
"contributors": [
|
||||
{
|
||||
"login": "devfaz",
|
||||
"name": "Fabian Zimmermann",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/4060372?v=4",
|
||||
"profile": "https://github.com/devfaz",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "angelnu",
|
||||
"name": "Vegetto",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/4406403?v=4",
|
||||
"profile": "https://github.com/angelnu",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "trly",
|
||||
"name": "Travis Lyons",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/212733?v=4",
|
||||
"profile": "https://github.com/trly",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "bjw-s",
|
||||
"name": "Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6213398?v=4",
|
||||
"profile": "https://github.com/bjw-s",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Ornias1993",
|
||||
"name": "Kjeld Schouten-Lebbing",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7613738?v=4",
|
||||
"profile": "http://schouten-lebbing.nl",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rolfberkenbosch",
|
||||
"name": "Rolf Berkenbosch",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/30292281?v=4",
|
||||
"profile": "https://www.meetup.com/nl-NL/I-I-Inspiratie-Innovatie/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "auricom",
|
||||
"name": "auricom",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/27022259?v=4",
|
||||
"profile": "https://github.com/auricom",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "acjohnson",
|
||||
"name": "Aaron Johnson",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1386238?v=4",
|
||||
"profile": "http://aaronjohnson.io",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "brujoand",
|
||||
"name": "Anders Brujordet",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/124421?v=4",
|
||||
"profile": "https://github.com/brujoand",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Diaoul",
|
||||
"name": "Antoine Bertin",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/319220?v=4",
|
||||
"profile": "https://github.com/Diaoul",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "onedr0p",
|
||||
"name": "ᗪєνιη ᗷυнʟ",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/213795?v=4",
|
||||
"profile": "https://github.com/onedr0p",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Ardetus",
|
||||
"name": "Ardetus",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2253935?v=4",
|
||||
"profile": "https://github.com/Ardetus",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dynamicat",
|
||||
"name": "Chris Golden",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/12977282?v=4",
|
||||
"profile": "https://github.com/dynamicat",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "psychopenguin",
|
||||
"name": "Fabio Brito d'Araujo e Oliveira",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1420115?v=4",
|
||||
"profile": "https://github.com/psychopenguin",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "allenporter",
|
||||
"name": "Allen Porter",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6026418?v=4",
|
||||
"profile": "https://github.com/allenporter",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rasmustwh",
|
||||
"name": "Rasmus Hermansen",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2485005?v=4",
|
||||
"profile": "https://github.com/rasmustwh",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "FlipEnergy",
|
||||
"name": "Dennis Zhang",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7714381?v=4",
|
||||
"profile": "http://pleasenoddos.com",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"projectName": "charts",
|
||||
"projectOwner": "k8s-at-home",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"skipCi": true
|
||||
}
|
||||
@@ -6,14 +6,21 @@ FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY Gemfile /tmp/Gemfile
|
||||
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& \
|
||||
apt-get -y install --no-install-recommends \
|
||||
jq \
|
||||
libjq-dev \
|
||||
libonig-dev \
|
||||
gnupg2 \
|
||||
&& \
|
||||
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin \
|
||||
&& \
|
||||
curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | /bin/bash -
|
||||
curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | /bin/bash - \
|
||||
&& \
|
||||
bundle config set system 'true' \
|
||||
&& bundle install --gemfile /tmp/Gemfile \
|
||||
&& rm /tmp/Gemfile
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
{
|
||||
"name": "Ruby",
|
||||
"build": {
|
||||
"context": "..",
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": {
|
||||
// Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5
|
||||
|
||||
2
.github/CODEOWNERS
vendored
Normal file
2
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
|
||||
* @onedr0p @bjw-s @billimek @carpenike
|
||||
2
.github/ISSUE_TEMPLATE/bug-report.md
vendored
2
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -2,7 +2,7 @@
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
labels: kind:bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Ask a question
|
||||
url: https://github.com/k8s-at-home/charts/discussions
|
||||
about: Please ask and answer questions here.
|
||||
- name: Discuss on Discord
|
||||
url: https://discord.com/invite/sTMX7Vh
|
||||
about: Join our Discord community
|
||||
- name: Ask a question
|
||||
url: https://github.com/k8s-at-home/organization/discussions
|
||||
about: Please ask and answer questions here.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
labels: kind:enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
16
.github/ct-install.yaml
vendored
Normal file
16
.github/ct-install.yaml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
remote: origin
|
||||
target-branch: master
|
||||
helm-extra-args: --timeout 600s
|
||||
chart-dirs:
|
||||
- charts/incubator
|
||||
- charts/stable
|
||||
excluded-charts:
|
||||
- charts/stable/alertmanager-bot
|
||||
- charts/stable/dnsmadeeasy-webhook
|
||||
- charts/stable/ser2sock
|
||||
- charts/stable/zalando-postgres-cluster
|
||||
- charts/stable/zigbee2mqtt
|
||||
chart-repos:
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
- k8s-at-home-libraries=https://library-charts.k8s-at-home.com
|
||||
- k8s-at-home=https://k8s-at-home.com/charts
|
||||
6
.github/ct.yaml → .github/ct-lint.yaml
vendored
6
.github/ct.yaml → .github/ct-lint.yaml
vendored
@@ -2,10 +2,10 @@ remote: origin
|
||||
target-branch: master
|
||||
helm-extra-args: --timeout 600s
|
||||
chart-dirs:
|
||||
- charts
|
||||
- charts/incubator
|
||||
- charts/stable
|
||||
excluded-charts:
|
||||
- common
|
||||
- common-test
|
||||
chart-repos:
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
- k8s-at-home-libraries=https://library-charts.k8s-at-home.com
|
||||
- k8s-at-home=https://k8s-at-home.com/charts
|
||||
3
.github/renovate.json5
vendored
3
.github/renovate.json5
vendored
@@ -29,7 +29,8 @@
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "major",
|
||||
"labels": ["dependency/major"],
|
||||
"packageNames": ["common"]
|
||||
"packageNames": ["common"],
|
||||
"groupName": ["internal major dep"]
|
||||
},
|
||||
{
|
||||
"updateTypes": ["minor"],
|
||||
|
||||
52
.github/workflows/charts-helm-docs.yaml.disabled
vendored
Normal file
52
.github/workflows/charts-helm-docs.yaml.disabled
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
#
|
||||
# Disabled until we fix the chart releaser
|
||||
#
|
||||
|
||||
# name: "Charts: helm-docs"
|
||||
|
||||
# on:
|
||||
# workflow_dispatch:
|
||||
# schedule:
|
||||
# - cron: "0 0 * * *"
|
||||
|
||||
# jobs:
|
||||
# update-helm-docs:
|
||||
# runs-on: ubuntu-20.04
|
||||
# steps:
|
||||
# - name: Checkout
|
||||
# uses: actions/checkout@v2
|
||||
# with:
|
||||
# fetch-depth: 0
|
||||
|
||||
# - name: Install Helm
|
||||
# uses: azure/setup-helm@v1
|
||||
# with:
|
||||
# version: v3.5.3
|
||||
|
||||
# - uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: 3.7
|
||||
|
||||
# - name: Install helm-docs
|
||||
# run: |
|
||||
# wget -O /tmp/helm-docs.deb https://github.com/norwoodj/helm-docs/releases/download/v1.5.0/helm-docs_1.5.0_linux_amd64.deb
|
||||
# sudo dpkg -i /tmp/helm-docs.deb
|
||||
|
||||
# - name: Update Helm docs
|
||||
# run: |
|
||||
# ./hack/gen-helm-docs.sh
|
||||
|
||||
# - name: Create pull request for helm-docs
|
||||
# uses: peter-evans/create-pull-request@v3
|
||||
# with:
|
||||
# token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# branch: "helm-docs/ci"
|
||||
# delete-branch: true
|
||||
# title: "chore(docs): update helm-docs [ci-skip]"
|
||||
# signoff: true
|
||||
# committer: "${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>"
|
||||
# author: "${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>"
|
||||
# commit-message: "chore(docs): update helm-docs [ci-skip]"
|
||||
# body: |
|
||||
# Signed-off-by: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||
# labels: helm-docs
|
||||
251
.github/workflows/charts-lint-test.yaml
vendored
251
.github/workflows/charts-lint-test.yaml
vendored
@@ -10,11 +10,160 @@ on:
|
||||
- '!charts/**/README_CONFIG.md.gotmpl'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
changes-lint:
|
||||
if: "!contains(github.event.head_commit.message, '[ci-skip]')"
|
||||
name: Detect changes for linting
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
changed: ${{ steps.list-changed.outputs.changed }}
|
||||
common: ${{ steps.list-changed.outputs.common }}
|
||||
matrix: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts }}
|
||||
}
|
||||
detected: ${{ steps.list-changed.outputs.detected }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.0.1
|
||||
|
||||
- name: Install Dev tools
|
||||
run: |
|
||||
sudo wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64 -O /usr/bin/yq
|
||||
sudo chmod +x /usr/bin/yq
|
||||
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
run: |
|
||||
EXCLUDED=$(yq eval -j '.excluded-charts // []' .github/ct-lint.yaml)
|
||||
CHARTS=$(ct list-changed --config .github/ct-lint.yaml)
|
||||
CHARTS_JSON=$(echo "${CHARTS}" | jq -R -s -c 'split("\n")[:-1]')
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED}, \"all\": ${CHARTS_JSON}}" | jq -c '.all-.excluded')
|
||||
echo ::set-output name=charts::${OUTPUT_JSON}
|
||||
if [[ $(echo ${OUTPUT_JSON} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected::true"
|
||||
fi
|
||||
|
||||
changes-install:
|
||||
if: "!contains(github.event.head_commit.message, '[ci-skip]')"
|
||||
name: Detect changes for install
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
matrix: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts }}
|
||||
}
|
||||
detected: ${{ steps.list-changed.outputs.detected }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.0.1
|
||||
|
||||
- name: Install Dev tools
|
||||
run: |
|
||||
sudo wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64 -O /usr/bin/yq
|
||||
sudo chmod +x /usr/bin/yq
|
||||
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
run: |
|
||||
EXCLUDED=$(yq eval -j '.excluded-charts // []' .github/ct-install.yaml)
|
||||
CHARTS=$(ct list-changed --config .github/ct-install.yaml)
|
||||
CHARTS_JSON=$(echo "${CHARTS}" | jq -R -s -c 'split("\n")[:-1]')
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED}, \"all\": ${CHARTS_JSON}}" | jq -c '.all-.excluded')
|
||||
echo ::set-output name=charts::${OUTPUT_JSON}
|
||||
if [[ $(echo ${OUTPUT_JSON} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected::true"
|
||||
fi
|
||||
|
||||
check_version:
|
||||
needs:
|
||||
- changes-lint
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci-skip]') &&
|
||||
needs.changes-lint.outputs.detected == 'true'
|
||||
name: Check chart version numbers
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.changes-lint.outputs.matrix) }}
|
||||
fail-fast: true
|
||||
max-parallel: 15
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get version
|
||||
id: version-get
|
||||
run: |
|
||||
shopt -s extglob
|
||||
OUTPUT=$(helm inspect chart ${{ matrix.chart }} | grep "^version:")
|
||||
VERSION=${OUTPUT#"version:"}
|
||||
echo "::set-output name=version::${VERSION##*( )}"
|
||||
shopt -u extglob
|
||||
|
||||
- name: Parse version
|
||||
id: version-parse
|
||||
uses: apexskier/github-semver-parse@v1
|
||||
with:
|
||||
version: ${{ steps.version-get.outputs.version }}
|
||||
|
||||
- name: Check version
|
||||
id: version-check
|
||||
run: |
|
||||
if [[ ${{ matrix.chart }} =~ ^charts\/(.*)\/.* ]]; then
|
||||
TYPE="${BASH_REMATCH[1]}"
|
||||
case $TYPE in
|
||||
stable)
|
||||
if [[ ${{ steps.version-parse.outputs.major }} -lt 1 ]]; then
|
||||
echo "::error file=${{ matrix.chart }}::Chart version for \"$TYPE\" charts must be >= 1.0.0"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
incubator)
|
||||
if [[ ${{ steps.version-parse.outputs.major }} -gt 0 ]]; then
|
||||
echo "::error file=${{ matrix.chart }}::Chart version for \"$TYPE\" charts must be < 1.0.0"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "::error file=${{ matrix.chart }}::Unhandled chart type: $TYPE"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||
check_version_success:
|
||||
needs:
|
||||
- changes-lint
|
||||
- check_version
|
||||
if: ${{ always() }}
|
||||
name: Version check successful
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check Version matrix status
|
||||
if: ${{ !contains(github.event.head_commit.message, '[ci-skip]') && needs.changes-lint.outputs.detected == 'true' && needs.check_version.result != 'success' }}
|
||||
run: |
|
||||
exit 1
|
||||
|
||||
lint:
|
||||
needs:
|
||||
- changes-lint
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci-skip]')
|
||||
&&
|
||||
needs.changes-lint.outputs.detected == 'true'
|
||||
name: Lint charts
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -24,7 +173,7 @@ jobs:
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
version: v3.5.3
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
@@ -33,27 +182,30 @@ jobs:
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.0.1
|
||||
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
run: |
|
||||
changed=$(ct list-changed --config .github/ct.yaml)
|
||||
if [[ -n "$changed" ]]; then
|
||||
echo "::set-output name=changed::true"
|
||||
fi
|
||||
|
||||
changed_unfiltered=$(ct list-changed --config .github/ct.yaml --excluded-charts "")
|
||||
if [[ $(grep -E "^charts/common(-test)?$" <<< "$changed_unfiltered") ]]; then
|
||||
echo "::set-output name=common::true"
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
id: lint
|
||||
run: ct lint --config .github/ct.yaml --excluded-charts ""
|
||||
if: steps.list-changed.outputs.changed == 'true' || steps.list-changed.outputs.common == 'true'
|
||||
run: ct lint --config .github/ct-lint.yaml
|
||||
|
||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||
lint_success:
|
||||
needs:
|
||||
- changes-lint
|
||||
- lint
|
||||
if: ${{ always() }}
|
||||
name: Lint successful
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check lint matrix status
|
||||
if: ${{ !contains(github.event.head_commit.message, '[ci-skip]') && needs.changes-lint.outputs.detected == 'true' && needs.lint.result != 'success' }}
|
||||
run: exit 1
|
||||
|
||||
unittest:
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
needs:
|
||||
- lint_success
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci-skip]')
|
||||
name: Run unit tests
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -66,7 +218,7 @@ jobs:
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
version: v3.5.3
|
||||
|
||||
- name: Install Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
@@ -74,17 +226,30 @@ jobs:
|
||||
ruby-version: 2.7
|
||||
|
||||
- name: Install dependencies
|
||||
env:
|
||||
RUBYJQ_USE_SYSTEM_LIBRARIES: 1
|
||||
run: |
|
||||
export RUBYJQ_USE_SYSTEM_LIBRARIES=1
|
||||
bundle install
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
bundle exec m -r test/charts
|
||||
bundle exec m -r ./test/
|
||||
|
||||
install:
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
needs:
|
||||
- changes-install
|
||||
- check_version_success
|
||||
- lint_success
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci-skip]')
|
||||
&&
|
||||
needs.changes-install.outputs.detected == 'true'
|
||||
name: Install charts
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.changes-install.outputs.matrix) }}
|
||||
fail-fast: true
|
||||
max-parallel: 15
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -94,7 +259,7 @@ jobs:
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
version: v3.5.3
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
@@ -103,15 +268,27 @@ jobs:
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.0.1
|
||||
|
||||
- name: Create kind cluster
|
||||
uses: helm/kind-action@v1.1.0
|
||||
if: needs.lint.outputs.changed == 'true' || needs.lint.outputs.common == 'true'
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
with:
|
||||
version: v1.19
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config .github/ct.yaml --excluded-charts ""
|
||||
if: needs.lint.outputs.changed == 'true'
|
||||
run: ct install --config .github/ct-install.yaml --charts ${{ matrix.chart }}
|
||||
|
||||
- name: Run chart-testing (common-test)
|
||||
run: |
|
||||
ct install --config .github/ct.yaml --charts 'charts/common-test'
|
||||
if: needs.lint.outputs.common == 'true'
|
||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||
install_success:
|
||||
needs:
|
||||
- changes-install
|
||||
- install
|
||||
if: ${{ always() }}
|
||||
name: Install successful
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check install matrix status
|
||||
if: ${{ !contains(github.event.head_commit.message, '[ci-skip]') && needs.changes-install.outputs.detected == 'true' && needs.install.result != 'success' }}
|
||||
run: exit 1
|
||||
|
||||
10
.github/workflows/charts-release.yaml
vendored
10
.github/workflows/charts-release.yaml
vendored
@@ -1,6 +1,7 @@
|
||||
name: "Charts: Release"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
@@ -13,7 +14,8 @@ on:
|
||||
|
||||
jobs:
|
||||
pre-release:
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[ci-skip]')"
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Block concurrent jobs
|
||||
@@ -24,8 +26,9 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
release:
|
||||
if: "!contains(github.event.head_commit.message, '[ci-skip]')"
|
||||
needs: pre-release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Block concurrent jobs
|
||||
uses: softprops/turnstyle@v1
|
||||
@@ -47,11 +50,12 @@ jobs:
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
version: v3.5.3
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.2.0
|
||||
with:
|
||||
charts_dir: charts/*
|
||||
charts_repo_url: https://k8s-at-home.com/charts/
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
21
.github/workflows/invalid-template.yaml
vendored
Normal file
21
.github/workflows/invalid-template.yaml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
|
||||
name: 'Invalid Template'
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, unlabeled, reopened]
|
||||
|
||||
jobs:
|
||||
support:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: dessant/support-requests@v2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
support-label: 'kind:invalid-template'
|
||||
issue-comment: >
|
||||
:wave: @{issue-author}, please follow the template provided.
|
||||
close-issue: true
|
||||
lock-issue: true
|
||||
issue-lock-reason: 'resolved'
|
||||
27
.github/workflows/support.yaml
vendored
Normal file
27
.github/workflows/support.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
|
||||
name: 'Support requests'
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, unlabeled, reopened]
|
||||
|
||||
jobs:
|
||||
support:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: dessant/support-requests@v2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
support-label: 'kind:support'
|
||||
issue-comment: >
|
||||
:wave: @{issue-author}, we use the issue tracker exclusively
|
||||
for bug reports and feature requests. However, this issue appears
|
||||
to be a support request. Please use our support channels
|
||||
to get help.
|
||||
- [Docs](https://docs.k8s-at-home.com/)
|
||||
- [Discord](https://discord.gg/sTMX7Vh)
|
||||
- [GitHub Discussions](https://github.com/k8s-at-home/organization/discussions)
|
||||
close-issue: true
|
||||
lock-issue: false
|
||||
issue-lock-reason: 'off-topic'
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -7,8 +7,8 @@
|
||||
.devcontainer/
|
||||
|
||||
# Helm resources
|
||||
charts/*/Chart.lock
|
||||
charts/*/charts
|
||||
charts/**/Chart.lock
|
||||
charts/**/charts
|
||||
|
||||
# Other rsources
|
||||
.env
|
||||
|
||||
@@ -1,29 +1 @@
|
||||
charts/adguard-home
|
||||
charts/bitwardenrs
|
||||
charts/blocky
|
||||
charts/comcast
|
||||
charts/deconz
|
||||
charts/digitalocean-dyndns
|
||||
charts/duplicati
|
||||
charts/homebridge
|
||||
charts/icantbelieveitsnotvaletudo
|
||||
charts/intel-gpu-plugin
|
||||
charts/librespeed
|
||||
charts/modem-stats
|
||||
charts/mosquitto
|
||||
charts/node-feature-discovery
|
||||
charts/oauth2-proxy
|
||||
charts/plex
|
||||
charts/powerdns
|
||||
charts/prometheus-nut-exporter
|
||||
charts/rtorrent-flood
|
||||
charts/ser2sock
|
||||
charts/speedtest-prometheus
|
||||
charts/speedtest
|
||||
charts/statping
|
||||
charts/teslamate
|
||||
charts/traefik-forward-auth
|
||||
charts/unifi
|
||||
charts/uptimerobot-prometheus
|
||||
charts/uptimerobot
|
||||
charts/common-test
|
||||
|
||||
@@ -7,41 +7,52 @@ tasks:
|
||||
desc: create new chart
|
||||
cmds:
|
||||
- git checkout -b add-chart-{{.CHART}}
|
||||
- cp -r {{.GIT_ROOT}}/templates/chart {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
- ./.bin/go-replace -s '${CHARTNAME}' -r "{{.CHART}}" --path={{.GIT_ROOT}}/charts/{{.CHART}} --path-pattern='*.*'
|
||||
- cp -r {{.GIT_ROOT}}/templates/chart "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
- ./.bin/go-replace -s '${CHARTNAME}' -r "{{.CHART}}" --path="{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}" --path-pattern='*.*'
|
||||
- task: dependency
|
||||
- echo "Congratulations, charts/{{.CHART}} successfully generated, you can now edit chart informations ( Chart.yaml and values.yaml )"
|
||||
- echo "Congratulations, charts/{{.CHART_TYPE}}/{{.CHART}} successfully generated, you can now edit chart informations ( Chart.yaml and values.yaml )"
|
||||
status:
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
- test -d "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
deps:
|
||||
- check-chart
|
||||
silent: true
|
||||
|
||||
dependency:
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
cmds:
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}/Chart.lock && rm {{.GIT_ROOT}}/charts/{{.CHART}}/Chart.lock || exit 0
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}/tmpcharts && rm -rf {{.GIT_ROOT}}/charts/{{.CHART}}/tmpcharts || exit 0
|
||||
- cd {{.GIT_ROOT}}/charts/{{.CHART}} && helm dependency update
|
||||
- test -d Chart.lock && rm Chart.lock || exit 0
|
||||
- test -d tmpcharts && rm -rf tmpcharts || exit 0
|
||||
- helm dependency update
|
||||
silent: true
|
||||
|
||||
lint:
|
||||
desc: lint your chart code
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
cmds:
|
||||
- cd {{.GIT_ROOT}}/charts/{{.CHART}} && helm lint
|
||||
- helm lint
|
||||
deps:
|
||||
- dependency
|
||||
- check-chart
|
||||
|
||||
ct-lint:
|
||||
desc: Run `ct lint` on your chart code
|
||||
desc: run `ct lint` on your chart code
|
||||
cmds:
|
||||
- docker run --rm -it --user $(id -u):$(id -g) -e "HELM_CONFIG_HOME=/tmp/helm" -e "HELM_CACHE_HOME=/tmp/helm" -v {{.GIT_ROOT}}:/ci -w /ci quay.io/helmpack/chart-testing:latest ct lint --charts charts/{{.CHART}} --config /ci/.github/ct.yaml
|
||||
- docker run --rm -it --user $(id -u):$(id -g) -e "HELM_CONFIG_HOME=/tmp/helm" -e "HELM_CACHE_HOME=/tmp/helm" -v {{.GIT_ROOT}}:/ci -w /ci quay.io/helmpack/chart-testing:latest ct lint --charts "charts/{{.CHART_TYPE}}/{{.CHART}}" --config /ci/.github/ct-lint.yaml
|
||||
deps:
|
||||
- check-chart
|
||||
- lint
|
||||
|
||||
helm-docs:
|
||||
desc: generate helm-docs
|
||||
dir: "{{.GIT_ROOT}}/hack"
|
||||
cmds:
|
||||
- ./gen-helm-docs.sh "{{.CHART_TYPE}}" "{{.CHART}}"
|
||||
deps:
|
||||
- check-chart
|
||||
|
||||
# Checks Parameters
|
||||
check-chart:
|
||||
cmds:
|
||||
- cmd: test ! -z "{{.CHART}}" || (echo "Please define CHART parameter"; exit 1)
|
||||
- test ! -z "{{.CHART_TYPE}}" || (echo "Please define CHART_TYPE parameter"; exit 1)
|
||||
- test ! -z "{{.CHART}}" || (echo "Please define CHART parameter"; exit 1)
|
||||
silent: true
|
||||
|
||||
@@ -39,24 +39,6 @@ See `git help commit`:
|
||||
|
||||
Once changes have been merged, the release job will automatically run to package and release changed charts.
|
||||
|
||||
### Create new chart
|
||||
```
|
||||
# Clone
|
||||
git clone
|
||||
cd charts
|
||||
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b .bin
|
||||
|
||||
# Create chart
|
||||
PATH=$PATH:$PWD/.bin
|
||||
task deps:install
|
||||
task chart:create CHART=chart_name
|
||||
# Don't forgot edit some chart informations in charts/char_name/Chart.yaml and charts/char_name/values.yaml
|
||||
|
||||
# Linting
|
||||
task chart:lint CHART=chart_name
|
||||
task chart:ct-lint CHART=chart_name
|
||||
```
|
||||
|
||||
### Immutability
|
||||
|
||||
Chart releases must be immutable. Any change to a chart warrants a chart version bump even if it is only changed to the documentation.
|
||||
@@ -70,6 +52,6 @@ Charts should start at `1.0.0`. Any breaking (backwards incompatible) changes to
|
||||
1. Bump the MAJOR version
|
||||
2. In the README, under a section called "Upgrading", describe the manual steps necessary to upgrade to the new (specified) MAJOR version
|
||||
|
||||
### pre-commit
|
||||
### Pre-commit
|
||||
|
||||
This repo supports the [pre-commit](https://pre-commit.com) framework. By installing the framework (see [docs](https://pre-commit.com/#install)) it is possible to perform the chart linting step before committing your code. This can help prevent linter issues in the pipeline. Note that this requires having Docker running on your development environment.
|
||||
|
||||
6
Gemfile
6
Gemfile
@@ -4,9 +4,9 @@ source 'https://rubygems.org'
|
||||
|
||||
group :test do
|
||||
gem 'm'
|
||||
gem 'minitest'
|
||||
gem 'minitest', "5.14.4"
|
||||
gem 'minitest-implicit-subject'
|
||||
gem 'minitest-reporters'
|
||||
gem 'pry'
|
||||
gem 'minitest-reporters', "1.4.3"
|
||||
gem 'pry', "0.14.0"
|
||||
gem 'ruby-jq'
|
||||
end
|
||||
|
||||
72
README.md
72
README.md
@@ -1,10 +1,13 @@
|
||||
# k8s@Home collection of helm charts
|
||||
# Helm charts
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[](#contributors-)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
[](https://discord.com/invite/7PbmHRK)
|
||||
[](https://github.com/k8s-at-home/charts/actions)
|
||||
[](https://github.com/pre-commit/pre-commit)
|
||||
[](https://artifacthub.io/packages/search?repo=k8s-at-home)
|
||||
[](https://opensource.org/licenses/Apache-2.0)
|
||||
[](https://docs.k8s-at-home.com/)
|
||||
[](https://discord.gg/sTMX7Vh)
|
||||
[](https://github.com/pre-commit/pre-commit)
|
||||
[](https://github.com/renovatebot/renovate)
|
||||
[](https://artifacthub.io/packages/search?repo=k8s-at-home)
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -19,20 +22,13 @@ helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
|
||||
You can then run `helm search repo k8s-at-home` to see the charts.
|
||||
|
||||
## Charts
|
||||
|
||||
See [Artifact Hub](https://artifacthub.io/packages/search?org=k8s-at-home) or [charts](./charts/) for a complete list.
|
||||
|
||||
## Common library
|
||||
|
||||
The majority of the charts in this repository are using a common library we built. The reason we went with this pattern is a lot of applications are pretty similar in their requirements for Helm charts. Using a library makes maintaining much easier and keeps charts consistent in features. If contributing a new chart first try to make it using the library we built.
|
||||
|
||||
More information can be found in our [wiki](https://github.com/k8s-at-home/charts/wiki) and in the common chart directory [here](https://github.com/k8s-at-home/charts/tree/master/charts/common).
|
||||
|
||||
## Support
|
||||
|
||||
- Having problems with a chart? Open a new [issue](https://github.com/k8s-at-home/charts/issues/new/choose) or discuss in our [Discord](https://discord.gg/sTMX7Vh) in the `#support` channel.
|
||||
- New idea? Discuss [here](https://github.com/k8s-at-home/charts/discussions) or in our [Discord](https://discord.gg/sTMX7Vh) in the `#charts` channel.
|
||||
We have a few outlets for getting support with our projects:
|
||||
|
||||
- Visit our [Docs](https://docs.k8s-at-home.com/).
|
||||
- Bugs or feature requests should be opened in an [issue](https://github.com/k8s-at-home/charts/issues/new/choose).
|
||||
- Questions or comments should be discussed in our [Discord](https://discord.gg/sTMX7Vh) or via [Github discussions](https://github.com/k8s-at-home/organization/discussions).
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -41,3 +37,43 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md)
|
||||
## License
|
||||
|
||||
[Apache 2.0 License](./LICENSE)
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/devfaz"><img src="https://avatars.githubusercontent.com/u/4060372?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fabian Zimmermann</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=devfaz" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/angelnu"><img src="https://avatars.githubusercontent.com/u/4406403?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vegetto</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=angelnu" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/trly"><img src="https://avatars.githubusercontent.com/u/212733?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Travis Lyons</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=trly" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/bjw-s"><img src="https://avatars.githubusercontent.com/u/6213398?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=bjw-s" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://schouten-lebbing.nl"><img src="https://avatars.githubusercontent.com/u/7613738?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kjeld Schouten-Lebbing</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=Ornias1993" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://www.meetup.com/nl-NL/I-I-Inspiratie-Innovatie/"><img src="https://avatars.githubusercontent.com/u/30292281?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rolf Berkenbosch</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=rolfberkenbosch" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/auricom"><img src="https://avatars.githubusercontent.com/u/27022259?v=4?s=100" width="100px;" alt=""/><br /><sub><b>auricom</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=auricom" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://aaronjohnson.io"><img src="https://avatars.githubusercontent.com/u/1386238?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Johnson</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=acjohnson" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/brujoand"><img src="https://avatars.githubusercontent.com/u/124421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Anders Brujordet</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=brujoand" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Diaoul"><img src="https://avatars.githubusercontent.com/u/319220?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antoine Bertin</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=Diaoul" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/onedr0p"><img src="https://avatars.githubusercontent.com/u/213795?v=4?s=100" width="100px;" alt=""/><br /><sub><b>ᗪєνιη ᗷυнʟ</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=onedr0p" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Ardetus"><img src="https://avatars.githubusercontent.com/u/2253935?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ardetus</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=Ardetus" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/dynamicat"><img src="https://avatars.githubusercontent.com/u/12977282?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Golden</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=dynamicat" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/psychopenguin"><img src="https://avatars.githubusercontent.com/u/1420115?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fabio Brito d'Araujo e Oliveira</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=psychopenguin" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/allenporter"><img src="https://avatars.githubusercontent.com/u/6026418?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allen Porter</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=allenporter" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/rasmustwh"><img src="https://avatars.githubusercontent.com/u/2485005?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rasmus Hermansen</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=rasmustwh" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://pleasenoddos.com"><img src="https://avatars.githubusercontent.com/u/7714381?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dennis Zhang</b></sub></a><br /><a href="https://github.com/k8s-at-home/charts/commits?author=FlipEnergy" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.102.0
|
||||
description: DNS proxy as ad-blocker for local network
|
||||
name: adguard-home
|
||||
version: 2.2.0
|
||||
keywords:
|
||||
- adguard-home
|
||||
- adguard
|
||||
- dns
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/adguard-home
|
||||
icon: https://avatars3.githubusercontent.com/u/8361145?s=200&v=4?sanitize=true
|
||||
sources:
|
||||
- https://github.com/AdguardTeam/AdGuardHome
|
||||
maintainers:
|
||||
- name: billimek
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
reviewers:
|
||||
- billimek
|
||||
@@ -1,184 +0,0 @@
|
||||
# adguard-home
|
||||
|
||||
 
|
||||
|
||||
DNS proxy as ad-blocker for local network
|
||||
|
||||
**Homepage:** <https://github.com/k8s-at-home/charts/tree/master/charts/adguard-home>
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| billimek | | |
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/AdguardTeam/AdGuardHome>
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| affinity | object | `{}` | |
|
||||
| configAsCode.config.bind_host | string | `"0.0.0.0"` | |
|
||||
| configAsCode.config.bind_port | int | `3000` | |
|
||||
| configAsCode.config.clients | list | `[]` | |
|
||||
| configAsCode.config.debug_pprof | bool | `false` | |
|
||||
| configAsCode.config.dhcp.enabled | bool | `false` | |
|
||||
| configAsCode.config.dhcp.gateway_ip | string | `""` | |
|
||||
| configAsCode.config.dhcp.icmp_timeout_msec | int | `1000` | |
|
||||
| configAsCode.config.dhcp.interface_name | string | `""` | |
|
||||
| configAsCode.config.dhcp.lease_duration | int | `86400` | |
|
||||
| configAsCode.config.dhcp.range_end | string | `""` | |
|
||||
| configAsCode.config.dhcp.range_start | string | `""` | |
|
||||
| configAsCode.config.dhcp.subnet_mask | string | `""` | |
|
||||
| configAsCode.config.dns.aaaa_disabled | bool | `false` | |
|
||||
| configAsCode.config.dns.all_servers | bool | `false` | |
|
||||
| configAsCode.config.dns.allowed_clients | list | `[]` | |
|
||||
| configAsCode.config.dns.anonymize_client_ip | bool | `false` | |
|
||||
| configAsCode.config.dns.bind_host | string | `"0.0.0.0"` | |
|
||||
| configAsCode.config.dns.blocked_hosts | list | `[]` | |
|
||||
| configAsCode.config.dns.blocked_response_ttl | int | `10` | |
|
||||
| configAsCode.config.dns.blocked_services | list | `[]` | |
|
||||
| configAsCode.config.dns.blocking_ipv4 | string | `""` | |
|
||||
| configAsCode.config.dns.blocking_ipv6 | string | `""` | |
|
||||
| configAsCode.config.dns.blocking_mode | string | `"default"` | |
|
||||
| configAsCode.config.dns.bogus_nxdomain | list | `[]` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[0] | string | `"9.9.9.10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[1] | string | `"149.112.112.10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[2] | string | `"2620:fe::10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[3] | string | `"2620:fe::fe:10"` | |
|
||||
| configAsCode.config.dns.cache_size | int | `4194304` | |
|
||||
| configAsCode.config.dns.cache_time | int | `30` | |
|
||||
| configAsCode.config.dns.cache_ttl_max | int | `0` | |
|
||||
| configAsCode.config.dns.cache_ttl_min | int | `0` | |
|
||||
| configAsCode.config.dns.disallowed_clients | list | `[]` | |
|
||||
| configAsCode.config.dns.edns_client_subnet | bool | `false` | |
|
||||
| configAsCode.config.dns.enable_dnssec | bool | `false` | |
|
||||
| configAsCode.config.dns.fastest_addr | bool | `false` | |
|
||||
| configAsCode.config.dns.filtering_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.filters_update_interval | int | `24` | |
|
||||
| configAsCode.config.dns.parental_block_host | string | `"family-block.dns.adguard.com"` | |
|
||||
| configAsCode.config.dns.parental_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.parental_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.port | int | `53` | |
|
||||
| configAsCode.config.dns.protection_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.querylog_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.querylog_interval | int | `90` | |
|
||||
| configAsCode.config.dns.querylog_size_memory | int | `1000` | |
|
||||
| configAsCode.config.dns.ratelimit | int | `0` | |
|
||||
| configAsCode.config.dns.ratelimit_whitelist | list | `[]` | |
|
||||
| configAsCode.config.dns.refuse_any | bool | `true` | |
|
||||
| configAsCode.config.dns.rewrites | list | `[]` | |
|
||||
| configAsCode.config.dns.safebrowsing_block_host | string | `"standard-block.dns.adguard.com"` | |
|
||||
| configAsCode.config.dns.safebrowsing_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.safebrowsing_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.safesearch_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.safesearch_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.statistics_interval | int | `1` | |
|
||||
| configAsCode.config.dns.upstream_dns[0] | string | `"https://dns10.quad9.net/dns-query"` | |
|
||||
| configAsCode.config.filters[0].enabled | bool | `true` | |
|
||||
| configAsCode.config.filters[0].id | int | `1` | |
|
||||
| configAsCode.config.filters[0].name | string | `"AdGuard DNS filter"` | |
|
||||
| configAsCode.config.filters[0].url | string | `"https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt"` | |
|
||||
| configAsCode.config.filters[1].enabled | bool | `false` | |
|
||||
| configAsCode.config.filters[1].id | int | `2` | |
|
||||
| configAsCode.config.filters[1].name | string | `"AdAway"` | |
|
||||
| configAsCode.config.filters[1].url | string | `"https://adaway.org/hosts.txt"` | |
|
||||
| configAsCode.config.filters[2].enabled | bool | `false` | |
|
||||
| configAsCode.config.filters[2].id | int | `4` | |
|
||||
| configAsCode.config.filters[2].name | string | `"MalwareDomainList.com Hosts List"` | |
|
||||
| configAsCode.config.filters[2].url | string | `"https://www.malwaredomainlist.com/hostslist/hosts.txt"` | |
|
||||
| configAsCode.config.http_proxy | string | `""` | |
|
||||
| configAsCode.config.language | string | `"en"` | |
|
||||
| configAsCode.config.log_file | string | `""` | |
|
||||
| configAsCode.config.rlimit_nofile | int | `0` | |
|
||||
| configAsCode.config.schema_version | int | `6` | |
|
||||
| configAsCode.config.tls.allow_unencrypted_doh | bool | `false` | |
|
||||
| configAsCode.config.tls.certificate_chain | string | `""` | |
|
||||
| configAsCode.config.tls.certificate_path | string | `""` | |
|
||||
| configAsCode.config.tls.enabled | bool | `false` | |
|
||||
| configAsCode.config.tls.force_https | bool | `false` | |
|
||||
| configAsCode.config.tls.port_dns_over_tls | int | `853` | |
|
||||
| configAsCode.config.tls.port_https | int | `443` | |
|
||||
| configAsCode.config.tls.private_key | string | `""` | |
|
||||
| configAsCode.config.tls.private_key_path | string | `""` | |
|
||||
| configAsCode.config.tls.server_name | string | `""` | |
|
||||
| configAsCode.config.tls.strict_sni_check | bool | `false` | |
|
||||
| configAsCode.config.user_rules | list | `[]` | |
|
||||
| configAsCode.config.users | list | `[]` | |
|
||||
| configAsCode.config.verbose | bool | `false` | |
|
||||
| configAsCode.config.web_session_ttl | int | `720` | |
|
||||
| configAsCode.config.whitelist_filters | list | `[]` | |
|
||||
| configAsCode.enabled | bool | `false` | |
|
||||
| configAsCode.image.pullPolicy | string | `"Always"` | |
|
||||
| configAsCode.image.repository | string | `"busybox"` | |
|
||||
| configAsCode.image.tag | string | `"latest"` | |
|
||||
| configAsCode.resources | object | `{}` | |
|
||||
| fullnameOverride | string | `""` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"adguard/adguardhome"` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| ingress.hosts[0] | string | `"chart-example.local"` | |
|
||||
| ingress.path | string | `"/"` | |
|
||||
| ingress.tls | list | `[]` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| nodeSelector | object | `{}` | |
|
||||
| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
|
||||
| persistence.config.enabled | bool | `true` | |
|
||||
| persistence.config.size | string | `"20Mi"` | |
|
||||
| persistence.config.skipuninstall | bool | `false` | |
|
||||
| persistence.work.accessMode | string | `"ReadWriteOnce"` | |
|
||||
| persistence.work.enabled | bool | `true` | |
|
||||
| persistence.work.size | string | `"10Gi"` | |
|
||||
| persistence.work.skipuninstall | bool | `false` | |
|
||||
| podAnnotations."prometheus.io/port" | string | `"api"` | |
|
||||
| podAnnotations."prometheus.io/scrape" | string | `"true"` | |
|
||||
| podSecurityContext | object | `{}` | |
|
||||
| probes.liveness.enabled | bool | `true` | |
|
||||
| probes.liveness.failureThreshold | int | `5` | |
|
||||
| probes.liveness.initialDelaySeconds | int | `5` | |
|
||||
| probes.liveness.periodSeconds | int | `10` | |
|
||||
| probes.readiness.enabled | bool | `false` | |
|
||||
| probes.readiness.failureThreshold | int | `5` | |
|
||||
| probes.readiness.initialDelaySeconds | int | `5` | |
|
||||
| probes.readiness.periodSeconds | int | `10` | |
|
||||
| probes.startup.enabled | bool | `false` | |
|
||||
| probes.startup.failureThreshold | int | `30` | |
|
||||
| probes.startup.initialDelaySeconds | int | `5` | |
|
||||
| probes.startup.periodSeconds | int | `10` | |
|
||||
| resources | object | `{}` | |
|
||||
| securityContext | object | `{}` | |
|
||||
| service.annotations | object | `{}` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| serviceDHCP.annotations | object | `{}` | |
|
||||
| serviceDHCP.enabled | bool | `false` | |
|
||||
| serviceDHCP.loadBalancerIP | string | `""` | |
|
||||
| serviceDHCP.type | string | `"NodePort"` | |
|
||||
| serviceDNSOverTLS.annotations | object | `{}` | |
|
||||
| serviceDNSOverTLS.enabled | bool | `false` | |
|
||||
| serviceDNSOverTLS.loadBalancerIP | string | `""` | |
|
||||
| serviceDNSOverTLS.type | string | `"NodePort"` | |
|
||||
| serviceMonitor.additionalLabels | object | `{}` | |
|
||||
| serviceMonitor.enabled | bool | `false` | |
|
||||
| serviceTCP.annotations | object | `{}` | |
|
||||
| serviceTCP.enabled | bool | `false` | |
|
||||
| serviceTCP.loadBalancerIP | string | `""` | |
|
||||
| serviceTCP.type | string | `"NodePort"` | |
|
||||
| serviceUDP.annotations | object | `{}` | |
|
||||
| serviceUDP.enabled | bool | `true` | |
|
||||
| serviceUDP.loadBalancerIP | string | `""` | |
|
||||
| serviceUDP.type | string | `"NodePort"` | |
|
||||
| strategyType | string | `"Recreate"` | |
|
||||
| timezone | string | `"UTC"` | |
|
||||
| tlsSecretName | string | `""` | |
|
||||
| tolerations | list | `[]` | |
|
||||
| volumePermissions.image.pullPolicy | string | `"Always"` | |
|
||||
| volumePermissions.image.repository | string | `"busybox"` | |
|
||||
| volumePermissions.image.tag | string | `"latest"` | |
|
||||
| volumePermissions.resources | object | `{}` | |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
@@ -1,15 +0,0 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.serviceUDP.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "adguard-home.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.serviceUDP.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ include "adguard-home.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "adguard-home.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.serviceUDP.port }}
|
||||
{{- else if contains "ClusterIP" .Values.serviceUDP.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "adguard-home.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:3000
|
||||
{{- end }}
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
{{- if and .Values.persistence.config.enabled (not .Values.persistence.config.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "adguard-home.fullname" . }}-config
|
||||
{{- if .Values.persistence.config.skipuninstall }}
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.config.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.config.size | quote }}
|
||||
{{- if .Values.persistence.config.storageClass }}
|
||||
{{- if (eq "-" .Values.persistence.config.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.persistence.config.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,14 +0,0 @@
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
data:
|
||||
AdGuardHome.yaml: |
|
||||
{{- toYaml .Values.configAsCode.config | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -1,196 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: {{ .Values.strategyType }}
|
||||
revisionHistoryLimit: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
annotations:
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if or .Values.configAsCode.enabled .Values.securityContext.runAsUser }}
|
||||
initContainers:
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
- name: "config"
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
image: "{{ .Values.configAsCode.image.repository }}:{{ .Values.configAsCode.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.configAsCode.image.pullPolicy }}
|
||||
command: ["sh", "-c", "cat /configmap/AdGuardHome.yaml > /opt/adguardhome/conf/AdGuardHome.yaml"]
|
||||
resources: {{- toYaml .Values.configAsCode.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: configmap
|
||||
mountPath: /configmap
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
{{- if .Values.securityContext.runAsUser }}
|
||||
- name: "volume-permissions"
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
image: "{{ .Values.volumePermissions.image.repository }}:{{ .Values.volumePermissions.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy }}
|
||||
command: ["/bin/chown", "-R", "{{ .Values.securityContext.runAsUser }}:", "/opt/adguardhome/work", "/opt/adguardhome/conf"]
|
||||
resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: work
|
||||
mountPath: /opt/adguardhome/work
|
||||
readOnly: false
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
{{- if .Values.timezone }}
|
||||
- name: TZ
|
||||
value: {{ .Values.timezone | quote }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: work
|
||||
mountPath: /opt/adguardhome/work
|
||||
readOnly: false
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
readOnly: false
|
||||
{{- if .Values.tlsSecretName }}
|
||||
- name: certs
|
||||
mountPath: /certs
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.bind_port | default 3000 }}
|
||||
{{- else }}
|
||||
containerPort: 3000
|
||||
{{- end }}
|
||||
- name: dns
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.dns.port | default 53 }}
|
||||
{{- else }}
|
||||
containerPort: 53
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
- name: dns-udp
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.dns.port | default 53 }}
|
||||
{{- else }}
|
||||
containerPort: 53
|
||||
{{- end }}
|
||||
protocol: UDP
|
||||
{{- if .Values.serviceDHCP.enabled }}
|
||||
- name: dhcp-server-udp
|
||||
containerPort: 67
|
||||
protocol: UDP
|
||||
- name: dhcp-client-tcp
|
||||
containerPort: 68
|
||||
protocol: TCP
|
||||
- name: dhcp-client-udp
|
||||
containerPort: 68
|
||||
protocol: UDP
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDNSOverTLS.enabled }}
|
||||
- name: dns-over-tls
|
||||
containerPort: 853
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.probes.liveness.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.probes.readiness.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.probes.startup.enabled }}
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.startup.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
{{- if .Values.tlsSecretName }}
|
||||
- name: certs
|
||||
secret:
|
||||
secretName: {{ .Values.tlsSecretName }}
|
||||
{{- end }}
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
- name: configmap
|
||||
configMap:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
{{- end }}
|
||||
- name: config
|
||||
{{- if .Values.persistence.config.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.config.existingClaim }}{{ .Values.persistence.config.existingClaim }}{{- else }}{{ template "adguard-home.fullname" . }}-config{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
- name: work
|
||||
{{- if .Values.persistence.work.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.work.existingClaim }}{{ .Values.persistence.work.existingClaim }}{{- else }}{{ template "adguard-home.fullname" . }}-work{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -1,38 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "adguard-home.fullname" . -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,45 +0,0 @@
|
||||
{{- if .Values.serviceDHCP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-dhcp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceDHCP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceDHCP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceDHCP.type }}
|
||||
{{- if .Values.serviceDHCP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceDHCP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDHCP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceDHCP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceDHCP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceDHCP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceDHCP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 67
|
||||
targetPort: dhcp-server-udp
|
||||
protocol: UDP
|
||||
name: dhcp-server-udp
|
||||
- port: 68
|
||||
targetPort: dhcp-client-tcp
|
||||
protocol: TCP
|
||||
name: dhcp-client-tcp
|
||||
- port: 68
|
||||
targetPort: dhcp-client-udp
|
||||
protocol: UDP
|
||||
name: dhcp-client-udp
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceDNSOverTLS.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-dns-over-tls
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceDNSOverTLS.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceDNSOverTLS.type }}
|
||||
{{- if .Values.serviceDNSOverTLS.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceDNSOverTLS.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDNSOverTLS.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceDNSOverTLS.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceDNSOverTLS.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 853
|
||||
targetPort: dns-over-tls
|
||||
protocol: TCP
|
||||
name: dns-over-tls
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceTCP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-tcp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceTCP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceTCP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceTCP.type }}
|
||||
{{- if .Values.serviceTCP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceTCP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceTCP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceTCP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceTCP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceTCP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceTCP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns
|
||||
protocol: TCP
|
||||
name: dns
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceUDP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-udp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceUDP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceUDP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceUDP.type }}
|
||||
{{- if .Values.serviceUDP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceUDP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceUDP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceUDP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceUDP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceUDP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceUDP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns-udp
|
||||
protocol: UDP
|
||||
name: dns-udp
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,35 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if .Values.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.service.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.service.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 3000
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
@@ -1,23 +0,0 @@
|
||||
{{- if .Values.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
{{- with .Values.serviceMonitor.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
endpoints:
|
||||
- port: http
|
||||
interval: 30s
|
||||
path: /
|
||||
{{- end }}
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
{{- if and .Values.persistence.work.enabled (not .Values.persistence.work.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "adguard-home.fullname" . }}-work
|
||||
{{- if .Values.persistence.work.skipuninstall }}
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.work.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.work.size | quote }}
|
||||
{{- if .Values.persistence.work.storageClass }}
|
||||
{{- if (eq "-" .Values.persistence.work.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.persistence.work.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,362 +0,0 @@
|
||||
# upgrade strategy type (e.g. Recreate or RollingUpdate)
|
||||
strategyType: Recreate
|
||||
|
||||
configAsCode:
|
||||
enabled: false
|
||||
resources: {}
|
||||
# requests:
|
||||
# memory: 128Mi
|
||||
# cpu: 100m
|
||||
image:
|
||||
repository: busybox
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
config:
|
||||
bind_host: 0.0.0.0
|
||||
bind_port: 3000
|
||||
users: []
|
||||
# - name: admin
|
||||
# password: $2y$05$mV4GSa5Dymk4Hjg3NCscBuCYSckCGfc2mbS57SNkBkBAfvqfOdFfm
|
||||
http_proxy: ""
|
||||
language: "en"
|
||||
rlimit_nofile: 0
|
||||
debug_pprof: false
|
||||
web_session_ttl: 720
|
||||
dns:
|
||||
bind_host: 0.0.0.0
|
||||
port: 53
|
||||
statistics_interval: 1
|
||||
querylog_enabled: true
|
||||
querylog_interval: 90
|
||||
querylog_size_memory: 1000
|
||||
anonymize_client_ip: false
|
||||
protection_enabled: true
|
||||
blocking_mode: default
|
||||
blocking_ipv4: ""
|
||||
blocking_ipv6: ""
|
||||
blocked_response_ttl: 10
|
||||
parental_block_host: family-block.dns.adguard.com
|
||||
safebrowsing_block_host: standard-block.dns.adguard.com
|
||||
ratelimit: 0
|
||||
ratelimit_whitelist: []
|
||||
refuse_any: true
|
||||
upstream_dns:
|
||||
- https://dns10.quad9.net/dns-query
|
||||
bootstrap_dns:
|
||||
- 9.9.9.10
|
||||
- 149.112.112.10
|
||||
- 2620:fe::10
|
||||
- 2620:fe::fe:10
|
||||
all_servers: false
|
||||
fastest_addr: false
|
||||
allowed_clients: []
|
||||
# - 10.0.0.1
|
||||
# - 10.0.1.1/24
|
||||
disallowed_clients: []
|
||||
# - 10.0.1.1
|
||||
# - 10.0.11.1/24
|
||||
blocked_hosts: []
|
||||
# - example.org
|
||||
# - '*.example.org'
|
||||
# - '||example.org^'
|
||||
cache_size: 4194304
|
||||
cache_ttl_min: 0
|
||||
cache_ttl_max: 0
|
||||
bogus_nxdomain: []
|
||||
aaaa_disabled: false
|
||||
enable_dnssec: false
|
||||
edns_client_subnet: false
|
||||
filtering_enabled: true
|
||||
filters_update_interval: 24
|
||||
parental_enabled: false
|
||||
safesearch_enabled: false
|
||||
safebrowsing_enabled: false
|
||||
safebrowsing_cache_size: 1048576
|
||||
safesearch_cache_size: 1048576
|
||||
parental_cache_size: 1048576
|
||||
cache_time: 30
|
||||
rewrites: []
|
||||
# - domain: example.org
|
||||
# answer: 127.0.0.1
|
||||
# - domain: '*.example.org'
|
||||
# answer: 127.0.0.1
|
||||
blocked_services: []
|
||||
# - facebook
|
||||
# - origin
|
||||
# - twitter
|
||||
# - snapchat
|
||||
# - skype
|
||||
# - whatsapp
|
||||
# - instagram
|
||||
# - youtube
|
||||
# - netflix
|
||||
# - twitch
|
||||
# - discord
|
||||
# - amazon
|
||||
# - ebay
|
||||
# - cloudflare
|
||||
# - steam
|
||||
# - epic_games
|
||||
# - reddit
|
||||
# - ok
|
||||
# - vk
|
||||
# - mail_ru
|
||||
# - tiktok
|
||||
tls:
|
||||
enabled: false
|
||||
server_name: ""
|
||||
force_https: false
|
||||
port_https: 443
|
||||
port_dns_over_tls: 853
|
||||
allow_unencrypted_doh: false
|
||||
strict_sni_check: false
|
||||
certificate_chain: ""
|
||||
private_key: ""
|
||||
certificate_path: ""
|
||||
private_key_path: ""
|
||||
filters:
|
||||
- enabled: true
|
||||
url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
|
||||
name: AdGuard DNS filter
|
||||
id: 1
|
||||
- enabled: false
|
||||
url: https://adaway.org/hosts.txt
|
||||
name: AdAway
|
||||
id: 2
|
||||
- enabled: false
|
||||
url: https://www.malwaredomainlist.com/hostslist/hosts.txt
|
||||
name: MalwareDomainList.com Hosts List
|
||||
id: 4
|
||||
whitelist_filters: []
|
||||
# - enabled: true
|
||||
# url: https://easylist-downloads.adblockplus.org/exceptionrules.txt
|
||||
# name: Allow nonintrusive advertising
|
||||
# id: 1595760241
|
||||
user_rules: []
|
||||
# - '||example.org^'
|
||||
# - '@@||example.org^'
|
||||
# - 127.0.0.1 example.org
|
||||
# - '! Here goes a comment'
|
||||
# - '# Also a comment'
|
||||
dhcp:
|
||||
enabled: false
|
||||
interface_name: ""
|
||||
gateway_ip: ""
|
||||
subnet_mask: ""
|
||||
range_start: ""
|
||||
range_end: ""
|
||||
lease_duration: 86400
|
||||
icmp_timeout_msec: 1000
|
||||
clients: []
|
||||
# - name: myuser
|
||||
# tags:
|
||||
# - user_admin
|
||||
# ids:
|
||||
# - 192.168.91.1
|
||||
# use_global_settings: true
|
||||
# filtering_enabled: false
|
||||
# parental_enabled: false
|
||||
# safesearch_enabled: false
|
||||
# safebrowsing_enabled: false
|
||||
# use_global_blocked_services: true
|
||||
# blocked_services: []
|
||||
# upstreams: []
|
||||
log_file: ""
|
||||
verbose: false
|
||||
schema_version: 6
|
||||
|
||||
tlsSecretName: ""
|
||||
# name of the secret that contains the tls cert and key.
|
||||
# this secret will be mounted inside the adguard container /certs path. e.g. works with cert-manager
|
||||
|
||||
image:
|
||||
repository: adguard/adguardhome
|
||||
# Image tag is set via charts appVersion. If you want to override the tag, specify it here
|
||||
# tag: vX.Y.Z
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# add:
|
||||
# - NET_BIND_SERVICE
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
timezone: "UTC"
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
path: /
|
||||
hosts:
|
||||
- chart-example.local
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
|
||||
# Probes configuration
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 5
|
||||
periodSeconds: 10
|
||||
readiness:
|
||||
enabled: false
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 5
|
||||
periodSeconds: 10
|
||||
startup:
|
||||
enabled: false
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 30
|
||||
periodSeconds: 10
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
# loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceTCP:
|
||||
enabled: false
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceUDP:
|
||||
enabled: true
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceDNSOverTLS:
|
||||
enabled: false
|
||||
## Enable if you use AdGuard as a DNS over TLS/HTTPS server
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceDHCP:
|
||||
enabled: false
|
||||
## Enable if you use AdGuard as a DHCP Server
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
additionalLabels: {}
|
||||
|
||||
## Pod Annotations
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "api"
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
## adguard-home configuration data Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
# storageClass: "-"
|
||||
##
|
||||
## If you want to reuse an existing claim, you can pass the name of the PVC using
|
||||
## the existingClaim variable
|
||||
# existingClaim: your-claim
|
||||
# subPath: some-subpath
|
||||
accessMode: ReadWriteOnce
|
||||
size: 20Mi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
skipuninstall: false
|
||||
work:
|
||||
enabled: true
|
||||
## adguard-home work volume configuration
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
# storageClass: "-"
|
||||
##
|
||||
## If you want to reuse an existing claim, you can pass the name of the PVC using
|
||||
## the existingClaim variable
|
||||
# existingClaim: your-claim
|
||||
# subPath: some-subpath
|
||||
accessMode: ReadWriteOnce
|
||||
size: 10Gi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
skipuninstall: false
|
||||
|
||||
volumePermissions:
|
||||
image:
|
||||
repository: busybox
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
resources: {}
|
||||
# requests:
|
||||
# memory: 128Mi
|
||||
# cpu: 100m
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# memory: 500Mi
|
||||
# requests:
|
||||
# cpu: 50m
|
||||
# memory: 275Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
@@ -1,8 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
@@ -1,8 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
@@ -1,8 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- DirtyCajunRice
|
||||
reviewers:
|
||||
- DirtyCajunRice
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.12
|
||||
description: DNS proxy as ad-blocker for local network
|
||||
name: blocky
|
||||
version: 5.0.0
|
||||
keywords:
|
||||
- blocky
|
||||
- adblock
|
||||
- dns
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/blocky
|
||||
icon: https://github.com/0xERR0R/blocky/raw/master/docs/blocky.svg?sanitize=true
|
||||
sources:
|
||||
- https://github.com/0xERR0R/blocky
|
||||
maintainers:
|
||||
- name: billimek
|
||||
email: jeff@billimek.com
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
reviewers:
|
||||
- billimek
|
||||
@@ -1,15 +0,0 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.serviceUDP.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "blocky.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.serviceUDP.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ include "blocky.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "blocky.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.serviceUDP.port }}
|
||||
{{- else if contains "ClusterIP" .Values.serviceUDP.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "blocky.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:80
|
||||
{{- end }}
|
||||
@@ -1,41 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "blocky.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "blocky.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified postgresql name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "blocky.postgresql.fullname" -}}
|
||||
{{- $name := default "postgresql" .Values.postgresql.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "blocky.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "blocky.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
data:
|
||||
config.yml: |
|
||||
{{ .Values.config | indent 4 }}
|
||||
@@ -1,120 +0,0 @@
|
||||
{{- $blockyConfig := .Values.config | fromYaml }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
revisionHistoryLimit: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
annotations:
|
||||
checksum/configmap: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
{{- if .Values.timeZone }}
|
||||
- name: TZ
|
||||
value: {{ .Values.timeZone | quote }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /app/config.yml
|
||||
subPath: config.yml
|
||||
readOnly: true
|
||||
{{- range $name, $value := .Values.extraLists }}
|
||||
- name: config
|
||||
mountPath: /app/{{ $name }}
|
||||
subPath: {{ $name }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- if hasKey $blockyConfig "queryLog" }}
|
||||
- name: data
|
||||
mountPath: {{ $blockyConfig.queryLog.dir }}
|
||||
{{- if .Values.persistence.subPath }}
|
||||
subPath: {{ .Values.persistence.subPath }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: api
|
||||
containerPort: 4000
|
||||
- name: dns
|
||||
containerPort: 53
|
||||
protocol: TCP
|
||||
- name: dns-udp
|
||||
containerPort: 53
|
||||
protocol: UDP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: api
|
||||
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: api
|
||||
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: api
|
||||
initialDelaySeconds: {{ .Values.probes.startup.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
- name: config
|
||||
projected:
|
||||
defaultMode: 0444
|
||||
sources:
|
||||
- configMap:
|
||||
name: {{ template "blocky.fullname" . }}
|
||||
items:
|
||||
- key: config.yml
|
||||
path: config.yml
|
||||
{{- range $name, $value := .Values.extraLists }}
|
||||
- key: {{ $name }}
|
||||
path: {{ $name }}
|
||||
{{- end }}
|
||||
{{- if hasKey $blockyConfig "queryLog" }}
|
||||
- name: data
|
||||
{{- if .Values.persistence.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "blocky.fullname" . }}{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -1,33 +0,0 @@
|
||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.persistence.finalizers }}
|
||||
finalizers:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
{{- toYaml .Values.persistence.accessModes | nindent 4 }}
|
||||
{{- if .Values.persistence.storageClassName }}
|
||||
storageClassName: {{ .Values.persistence.storageClassName }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
{{- with .Values.persistence.selectorLabels }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- toYaml . | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,34 +0,0 @@
|
||||
{{- if .Values.serviceTCP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}-tcp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceTCP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceTCP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceTCP.type }}
|
||||
{{- if .Values.serviceTCP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceTCP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceTCP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceTCP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceTCP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns
|
||||
protocol: TCP
|
||||
name: dns
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
{{- if .Values.serviceUDP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}-udp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceUDP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceUDP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceUDP.type }}
|
||||
{{- if .Values.serviceUDP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceUDP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceUDP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceUDP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceUDP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns-udp
|
||||
protocol: UDP
|
||||
name: dns-udp
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,45 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }}
|
||||
type: ClusterIP
|
||||
{{- if .Values.service.clusterIP }}
|
||||
clusterIP: {{ .Values.service.clusterIP }}
|
||||
{{end}}
|
||||
{{- else if eq .Values.service.type "LoadBalancer" }}
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if .Values.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
type: {{ .Values.service.type }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.service.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: api
|
||||
port: 4000
|
||||
targetPort: api
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
@@ -1,23 +0,0 @@
|
||||
{{- if .Values.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "blocky.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "blocky.chart" . }}
|
||||
{{- with .Values.serviceMonitor.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "blocky.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
endpoints:
|
||||
- port: api
|
||||
interval: 30s
|
||||
path: /metrics
|
||||
{{- end }}
|
||||
@@ -1,8 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
@@ -1,8 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
@@ -1,145 +0,0 @@
|
||||
{{- define "custom.repository.organization" -}}
|
||||
k8s-at-home
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.repository.url" -}}
|
||||
https://github.com/k8s-at-home/charts
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.url" -}}
|
||||
https://k8s-at-home.com/charts/
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.path" -}}
|
||||
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.notes" -}}
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.requirements" -}}
|
||||
## Requirements
|
||||
|
||||
{{ template "chart.kubeVersionLine" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.dependencies" -}}
|
||||
## Dependencies
|
||||
|
||||
{{ template "chart.requirementsTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install.tldr" -}}
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
|
||||
helm repo update
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install" -}}
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `{{ template "chart.name" . }}`
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.uninstall" -}}
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `{{ template "chart.name" . }}` deployment
|
||||
|
||||
```console
|
||||
helm uninstall {{ template "chart.name" . }}
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.header" -}}
|
||||
## Configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.readValues" -}}
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.set" -}}
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} \
|
||||
--set env.TZ="America/New York" \
|
||||
{{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.file" -}}
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.valuesSection" -}}
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
|
||||
|
||||
{{ template "chart.valuesTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.support" -}}
|
||||
## Support
|
||||
|
||||
- See the [Wiki](https://github.com/k8s-at-home/charts/wiki)
|
||||
- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/charts/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
{{- end -}}
|
||||
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "custom.notes" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
{{ template "custom.requirements" . }}
|
||||
|
||||
{{ template "custom.dependencies" . }}
|
||||
|
||||
{{ template "custom.install.tldr" . }}
|
||||
|
||||
{{ template "custom.install" . }}
|
||||
|
||||
{{ template "custom.uninstall" . }}
|
||||
|
||||
{{ template "custom.configuration.header" . }}
|
||||
|
||||
{{ template "custom.configuration.readValues" . }}
|
||||
|
||||
{{ template "custom.configuration.example.set" . }}
|
||||
|
||||
{{ template "custom.configuration.example.file" . }}
|
||||
|
||||
{{ template "custom.custom.configuration" . }}
|
||||
|
||||
{{ template "custom.valuesSection" . }}
|
||||
|
||||
{{ template "custom.changelog" . }}
|
||||
|
||||
{{ template "custom.support" . }}
|
||||
|
||||
{{ template "helm-docs.versionFooter" . }}
|
||||
@@ -1,27 +0,0 @@
|
||||
{{- define "custom.changelog.header" -}}
|
||||
## Changelog
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.changelog" -}}
|
||||
{{ template "custom.changelog.header" . }}
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- N/A
|
||||
|
||||
#### Changed
|
||||
|
||||
- N/A
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[1.0.0]: #1.0.0
|
||||
{{- end -}}
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
reviewers:
|
||||
- billimek
|
||||
@@ -1,41 +0,0 @@
|
||||
# comcast
|
||||
|
||||
 
|
||||
|
||||
periodic comcast data usage checks and save the results to InfluxDB
|
||||
|
||||
**Homepage:** <https://github.com/k8s-at-home/charts/tree/master/charts/comcast>
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| billimek | jeff@billimek.com | |
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/billimek/comcastUsage-for-influxdb>
|
||||
* <https://github.com/k8s-at-home/charts>
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| config.comcast.password | string | `"somepassword"` | |
|
||||
| config.comcast.username | string | `"someuser"` | |
|
||||
| config.delay | int | `3600` | |
|
||||
| config.influxdb.database | string | `"comcast"` | |
|
||||
| config.influxdb.host | string | `"influxdb-influxdb"` | |
|
||||
| config.influxdb.port | int | `8086` | |
|
||||
| config.influxdb.ssl | bool | `false` | |
|
||||
| debug | bool | `false` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"billimek/comcastusage-for-influxdb"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| nodeSelector | object | `{}` | |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| replicaCount | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v2
|
||||
name: common-test
|
||||
description: Helper chart to test different use cases of the common library
|
||||
version: 1.0.4
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- k8s-at-home
|
||||
- common
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/common-test
|
||||
maintainers:
|
||||
- name: bjw-s
|
||||
email: me@bjw-s.dev
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: n/a
|
||||
@@ -1,34 +0,0 @@
|
||||
# common-test
|
||||
|
||||

|
||||
|
||||
Helper chart to test different use cases of the common library
|
||||
|
||||
**Homepage:** <https://github.com/k8s-at-home/charts/tree/master/charts/common-test>
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| bjw-s | me@bjw-s.dev | |
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| file://../common | common | n/a |
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"b4bz/homer"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| ingress.enabled | bool | `true` | |
|
||||
| service.port.port | int | `8080` | |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
@@ -1,19 +0,0 @@
|
||||
image:
|
||||
repository: b4bz/homer
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 8080
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
readiness:
|
||||
enabled: true
|
||||
startup:
|
||||
enabled: true
|
||||
@@ -1,27 +0,0 @@
|
||||
image:
|
||||
repository: b4bz/homer
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 8080
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /www/assets
|
||||
|
||||
addons:
|
||||
codeserver:
|
||||
enabled: true
|
||||
workingDir: "/www/assets"
|
||||
ingress:
|
||||
enabled: true
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /www/assets
|
||||
@@ -1,11 +0,0 @@
|
||||
image:
|
||||
repository: b4bz/homer
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 8080
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v2
|
||||
name: common
|
||||
description: Function library for k8s-at-home charts
|
||||
type: library
|
||||
version: 3.0.1
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- k8s-at-home
|
||||
- common
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/common
|
||||
maintainers:
|
||||
- name: bjw-s
|
||||
email: me@bjw-s.dev
|
||||
@@ -1,424 +0,0 @@
|
||||
# common
|
||||
|
||||
 
|
||||
|
||||
Function library for k8s-at-home charts
|
||||
|
||||
**WARNING: THIS CHART IS NOT MEANT TO BE INSTALLED DIRECTLY**
|
||||
|
||||
This is a [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm). It's purpose is for grouping common logic between the k8s@home charts.
|
||||
|
||||
Since a lot of charts follow the same pattern this library was built to reduce maintenance cost between the charts that use it and try achieve a goal of being DRY.
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm repo update
|
||||
helm install common k8s-at-home/common
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `common`
|
||||
|
||||
```console
|
||||
helm install common k8s-at-home/common
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `common` deployment
|
||||
|
||||
```console
|
||||
helm uninstall common
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install common \
|
||||
--set env.TZ="America/New York" \
|
||||
k8s-at-home/common
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install common k8s-at-home/common -f values.yaml
|
||||
```
|
||||
|
||||
## Creating a new chart
|
||||
|
||||
First be sure to checkout the many charts that already use this like [qBittorrent](../qbittorrent/), [node-red](../node-red/) or the many others in this repository.
|
||||
|
||||
Include this chart as a dependency in your `Chart.yaml` e.g.
|
||||
|
||||
```yaml
|
||||
# Chart.yaml
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 3.0.1
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
```
|
||||
Write a `values.yaml` with some basic defaults you want to present to the user e.g.
|
||||
|
||||
```yaml
|
||||
#
|
||||
# IMPORTANT NOTE
|
||||
#
|
||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||
# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml
|
||||
#
|
||||
|
||||
image:
|
||||
repository: nodered/node-red
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 1.2.5
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
# See more environment variables in the node-red documentation
|
||||
# https://nodered.org/docs/getting-started/docker
|
||||
env: {}
|
||||
# TZ:
|
||||
# NODE_OPTIONS:
|
||||
# NODE_RED_ENABLE_PROJECTS:
|
||||
# NODE_RED_ENABLE_SAFE_MODE:
|
||||
# FLOWS:
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 1880
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
|
||||
persistence:
|
||||
data:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
mountPath: /data
|
||||
```
|
||||
|
||||
If not using a service, set the `service.enabled` to `false`.
|
||||
```yaml
|
||||
...
|
||||
service:
|
||||
enabled: false
|
||||
...
|
||||
```
|
||||
|
||||
Add files to the `templates` folder.
|
||||
```yaml
|
||||
# templates/common.yaml
|
||||
{{ include "common.all . }}
|
||||
|
||||
# templates/NOTES.txt
|
||||
{{ include "common.notes.defaultNotes" . }}
|
||||
```
|
||||
|
||||
If testing locally make sure you update the dependencies with:
|
||||
|
||||
```bash
|
||||
helm dependency update
|
||||
```
|
||||
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| additionalContainers | list | `[]` | |
|
||||
| additionalVolumeMounts | list | `[]` | |
|
||||
| additionalVolumes | list | `[]` | |
|
||||
| addons.codeserver.args[0] | string | `"--auth"` | |
|
||||
| addons.codeserver.args[1] | string | `"none"` | |
|
||||
| addons.codeserver.enabled | bool | `false` | |
|
||||
| addons.codeserver.env | object | `{}` | |
|
||||
| addons.codeserver.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| addons.codeserver.image.repository | string | `"codercom/code-server"` | |
|
||||
| addons.codeserver.image.tag | string | `"3.7.4"` | |
|
||||
| addons.codeserver.ingress.annotations | object | `{}` | |
|
||||
| addons.codeserver.ingress.enabled | bool | `false` | |
|
||||
| addons.codeserver.ingress.hosts[0].host | string | `"code.chart-example.local"` | |
|
||||
| addons.codeserver.ingress.hosts[0].paths[0].path | string | `"/"` | |
|
||||
| addons.codeserver.ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | |
|
||||
| addons.codeserver.ingress.labels | object | `{}` | |
|
||||
| addons.codeserver.ingress.nameSuffix | string | `"codeserver"` | |
|
||||
| addons.codeserver.ingress.tls | list | `[]` | |
|
||||
| addons.codeserver.securityContext.runAsUser | int | `0` | |
|
||||
| addons.codeserver.service.annotations | object | `{}` | |
|
||||
| addons.codeserver.service.enabled | bool | `true` | |
|
||||
| addons.codeserver.service.labels | object | `{}` | |
|
||||
| addons.codeserver.service.port.name | string | `"codeserver"` | |
|
||||
| addons.codeserver.service.port.port | int | `12321` | |
|
||||
| addons.codeserver.service.port.protocol | string | `"TCP"` | |
|
||||
| addons.codeserver.service.port.targetPort | string | `"codeserver"` | |
|
||||
| addons.codeserver.service.type | string | `"ClusterIP"` | |
|
||||
| addons.codeserver.volumeMounts | list | `[]` | |
|
||||
| addons.codeserver.workingDir | string | `""` | |
|
||||
| addons.vpn.additionalVolumeMounts | list | `[]` | |
|
||||
| addons.vpn.configFile | string | `nil` | |
|
||||
| addons.vpn.enabled | bool | `false` | |
|
||||
| addons.vpn.env | object | `{}` | |
|
||||
| addons.vpn.livenessProbe | object | `{}` | |
|
||||
| addons.vpn.networkPolicy.egress | string | `nil` | |
|
||||
| addons.vpn.networkPolicy.enabled | bool | `false` | |
|
||||
| addons.vpn.openvpn.auth | string | `nil` | |
|
||||
| addons.vpn.openvpn.authSecret | string | `nil` | |
|
||||
| addons.vpn.openvpn.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| addons.vpn.openvpn.image.repository | string | `"dperson/openvpn-client"` | |
|
||||
| addons.vpn.openvpn.image.tag | string | `"latest"` | |
|
||||
| addons.vpn.scripts.down | string | `nil` | |
|
||||
| addons.vpn.scripts.up | string | `nil` | |
|
||||
| addons.vpn.securityContext.capabilities.add[0] | string | `"NET_ADMIN"` | |
|
||||
| addons.vpn.securityContext.capabilities.add[1] | string | `"SYS_MODULE"` | |
|
||||
| addons.vpn.type | string | `"openvpn"` | |
|
||||
| addons.vpn.wireguard.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| addons.vpn.wireguard.image.repository | string | `"k8sathome/wireguard"` | |
|
||||
| addons.vpn.wireguard.image.tag | string | `"1.0.20200827"` | |
|
||||
| affinity | object | `{}` | |
|
||||
| args | list | `[]` | |
|
||||
| command | list | `[]` | |
|
||||
| controllerAnnotations | object | `{}` | |
|
||||
| controllerLabels | object | `{}` | |
|
||||
| controllerType | string | `"deployment"` | |
|
||||
| dnsPolicy | string | `"ClusterFirst"` | |
|
||||
| enableServiceLinks | bool | `true` | |
|
||||
| env | object | `{}` | |
|
||||
| envFrom | list | `[]` | |
|
||||
| envTpl | object | `{}` | |
|
||||
| envValueFrom | object | `{}` | |
|
||||
| fullnameOverride | string | `""` | |
|
||||
| hostAliases | list | `[]` | |
|
||||
| hostNetwork | bool | `false` | |
|
||||
| ingress.additionalIngresses | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| ingress.hosts[0].host | string | `"chart-example.local"` | |
|
||||
| ingress.hosts[0].paths[0].path | string | `"/"` | |
|
||||
| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | |
|
||||
| ingress.labels | object | `{}` | |
|
||||
| ingress.tls | list | `[]` | |
|
||||
| initContainers | list | `[]` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| nodeSelector | object | `{}` | |
|
||||
| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
|
||||
| persistence.config.enabled | bool | `false` | |
|
||||
| persistence.config.mountPath | string | `"/config"` | |
|
||||
| persistence.config.size | string | `"1Gi"` | |
|
||||
| persistence.config.skipuninstall | bool | `false` | |
|
||||
| persistence.shared.emptyDir | bool | `true` | |
|
||||
| persistence.shared.enabled | bool | `false` | |
|
||||
| persistence.shared.mountPath | string | `"/shared"` | |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| podSecurityContext | object | `{}` | |
|
||||
| probes.liveness.custom | bool | `false` | |
|
||||
| probes.liveness.enabled | bool | `true` | |
|
||||
| probes.liveness.spec.failureThreshold | int | `3` | |
|
||||
| probes.liveness.spec.initialDelaySeconds | int | `0` | |
|
||||
| probes.liveness.spec.periodSeconds | int | `10` | |
|
||||
| probes.liveness.spec.timeoutSeconds | int | `1` | |
|
||||
| probes.readiness.custom | bool | `false` | |
|
||||
| probes.readiness.enabled | bool | `true` | |
|
||||
| probes.readiness.spec.failureThreshold | int | `3` | |
|
||||
| probes.readiness.spec.initialDelaySeconds | int | `0` | |
|
||||
| probes.readiness.spec.periodSeconds | int | `10` | |
|
||||
| probes.readiness.spec.timeoutSeconds | int | `1` | |
|
||||
| probes.startup.custom | bool | `false` | |
|
||||
| probes.startup.enabled | bool | `true` | |
|
||||
| probes.startup.spec.failureThreshold | int | `30` | |
|
||||
| probes.startup.spec.initialDelaySeconds | int | `0` | |
|
||||
| probes.startup.spec.periodSeconds | int | `5` | |
|
||||
| probes.startup.spec.timeoutSeconds | int | `1` | |
|
||||
| replicas | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
| securityContext | object | `{}` | |
|
||||
| service.additionalPorts | list | `[]` | |
|
||||
| service.additionalServices | list | `[]` | |
|
||||
| service.annotations | object | `{}` | |
|
||||
| service.enabled | bool | `true` | |
|
||||
| service.labels | object | `{}` | |
|
||||
| service.port.name | string | `nil` | |
|
||||
| service.port.port | string | `nil` | |
|
||||
| service.port.protocol | string | `"TCP"` | |
|
||||
| service.port.targetPort | string | `nil` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| serviceAccount.annotations | object | `{}` | |
|
||||
| serviceAccount.create | bool | `false` | |
|
||||
| serviceAccount.name | string | `""` | |
|
||||
| strategy.type | string | `"RollingUpdate"` | |
|
||||
| tolerations | list | `[]` | |
|
||||
| volumeClaimTemplates | list | `[]` | |
|
||||
|
||||
## Changelog
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](../common/README.md).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [3.0.1]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Fixed `kubeVersion` in `Chart.yaml` not working with people running k8s pre-releases
|
||||
- Added `ingressClassName` to `values.yaml`
|
||||
|
||||
### [3.0.0]
|
||||
|
||||
#### Changed
|
||||
|
||||
- `probes.startupProbe` is now enabled by default. This will allow for quicker `Ready` states on Pods. It will precede the liveness and readiness Probes. *Note:* This requires that you are running [Kubernetes 1.16](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
- Aligned our default values for liveness and readiness Probes with the Kubernetes defaults:
|
||||
- `initialDelaySeconds` is now `0`
|
||||
- `timeoutSeconds` is now `1`
|
||||
- `failureThreshold` is now `3`
|
||||
|
||||
### [2.5.1]
|
||||
|
||||
#### Added
|
||||
|
||||
- Fixed a small typo in `values.yaml`: `ingress.tls.hostTpl` -> `ingress.tls.hostsTpl`
|
||||
|
||||
### [2.5.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow setting ingress values through Helm templates:
|
||||
- `ingress.hosts.hostTpl`
|
||||
- `ingress.tls.secretNameTpl`
|
||||
- `ingress.tls.hostsTpl`
|
||||
|
||||
### [2.4.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow setting environment variables from Downward API via `envValueFrom`. See [the Kubernetes docs](https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/) for more information.
|
||||
|
||||
### [2.3.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow overriding the main container command.
|
||||
- Allow setting Helm templates as environment variables via `envTpl`. The given value is parsed through Helm's `tpl` function, allowing for powerful variable substitution.
|
||||
- Support for defining volumeClaimTemplates for StatefulSet.
|
||||
- Allow the following Pod spec fields to be configurable:
|
||||
- `priorityClassName`
|
||||
- `schedulerName`
|
||||
- `hostname`
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `values.yaml` now contains the following sections, these were already functional but were previously undocumented:
|
||||
- `podSecurityContext`
|
||||
- `securityContext`
|
||||
- `resources`
|
||||
|
||||
### [2.2.1]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Made explicit that `service.port.targetPort` cannot be a named port.
|
||||
|
||||
### [2.2.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow serviceLinks to be enabled/disabled.
|
||||
- Support for ingressClassName on apiVersion `networking.k8s.io/v1` by setting `ingress.ingressClassName`.
|
||||
- Added some initial proper unit tests for the `common` chart.
|
||||
|
||||
#### Changed
|
||||
|
||||
- `service.port.targetPort` is now used in the container spec instead of `service.port.port` if specified. This allows for different service and container ports. (Implements [#465](https://github.com/k8s-at-home/charts/issues/465)).
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Document setting environment variables for code-server add-on in `values.yaml` (Fixes [#436](https://github.com/k8s-at-home/charts/issues/436)).
|
||||
- Set service targetPort to the service port name first if no `targetPort` value is given.
|
||||
|
||||
### [2.1.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow for additional arguments to be added to code-server runtime via `addons.codeserver.args`
|
||||
|
||||
### [2.0.4]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `periodSeconds` now works for all probe types.
|
||||
|
||||
### [2.0.0]
|
||||
|
||||
#### Changed
|
||||
|
||||
- :warning: Updated `probes` logic to support custom probes, it is now possible to set your own custom probes by setting the `probes.[liveness|readiness|startup].custom` value to `true` and configuring them. Default is `false`.
|
||||
- :warning: `addon.vpn.imagePullPolicy` is now `addon.vpn.[openvpn|wireguard].image.pullPolicy`. Default is `IfNotPresent`
|
||||
- [code-server](https://github.com/cdr/code-server) is now an `addon` like `vpn`. This enables a code-server container inside the pod which allows you to modify a configuration in a volume attached to the pod. Default for `addons.codeserver.enabled` is `false`
|
||||
- Added `envFrom` for more configuration with environment variables
|
||||
- Added `dnsConfig` to be configurable
|
||||
- Added support for 1.19+ ingress spec
|
||||
- Added this [CHANGELOG.md](CHANGELOG.md)
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `nameOverride` and `fullNameOverride` not in `values.yaml`
|
||||
|
||||
### [1.7.0]
|
||||
|
||||
This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face:
|
||||
|
||||
[3.0.1]: #3.0.1
|
||||
|
||||
[3.0.0]: #3.0.0
|
||||
|
||||
[2.5.1]: #2.5.1
|
||||
|
||||
[2.5.0]: #2.5.0
|
||||
|
||||
[2.4.0]: #2.4.0
|
||||
|
||||
[2.3.0]: #2.3.0
|
||||
|
||||
[2.2.1]: #2.2.1
|
||||
|
||||
[2.2.0]: #2.2.0
|
||||
|
||||
[2.1.0]: #2.1.0
|
||||
|
||||
[2.0.4]: #2.0.4
|
||||
|
||||
[2.0.0]: #2.0.0
|
||||
|
||||
[1.7.0]: #1.7.0
|
||||
|
||||
## Support
|
||||
|
||||
- See the [Wiki](https://github.com/k8s-at-home/charts/wiki).
|
||||
- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/charts/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
@@ -1,147 +0,0 @@
|
||||
{{- define "custom.repository.organization" -}}
|
||||
k8s-at-home
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.repository.url" -}}
|
||||
https://github.com/k8s-at-home/charts
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.url" -}}
|
||||
https://k8s-at-home.com/charts/
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.path" -}}
|
||||
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.notes" -}}
|
||||
**WARNING: THIS CHART IS NOT MEANT TO BE INSTALLED DIRECTLY**
|
||||
|
||||
This is a [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm). It's purpose is for grouping common logic between the k8s@home charts.
|
||||
|
||||
Since a lot of charts follow the same pattern this library was built to reduce maintenance cost between the charts that use it and try achieve a goal of being DRY.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.requirements" -}}
|
||||
## Requirements
|
||||
|
||||
{{ template "chart.kubeVersionLine" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.dependencies" -}}
|
||||
## Dependencies
|
||||
|
||||
{{ template "chart.requirementsTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install.tldr" -}}
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
|
||||
helm repo update
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install" -}}
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `{{ template "chart.name" . }}`
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.uninstall" -}}
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `{{ template "chart.name" . }}` deployment
|
||||
|
||||
```console
|
||||
helm uninstall {{ template "chart.name" . }}
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.header" -}}
|
||||
## Configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.readValues" -}}
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.set" -}}
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} \
|
||||
--set env.TZ="America/New York" \
|
||||
{{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.file" -}}
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.valuesSection" -}}
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
|
||||
|
||||
{{ template "chart.valuesTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.support" -}}
|
||||
## Support
|
||||
|
||||
- See the [Wiki](https://github.com/k8s-at-home/charts/wiki).
|
||||
- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/charts/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
{{- end -}}
|
||||
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "custom.notes" . }}
|
||||
|
||||
{{ template "custom.requirements" . }}
|
||||
|
||||
{{ template "custom.dependencies" . }}
|
||||
|
||||
{{ template "custom.install.tldr" . }}
|
||||
|
||||
{{ template "custom.install" . }}
|
||||
|
||||
{{ template "custom.uninstall" . }}
|
||||
|
||||
{{ template "custom.configuration.header" . }}
|
||||
|
||||
{{ template "custom.configuration.readValues" . }}
|
||||
|
||||
{{ template "custom.configuration.example.set" . }}
|
||||
|
||||
{{ template "custom.configuration.example.file" . }}
|
||||
|
||||
{{ template "custom.custom.configuration" . }}
|
||||
|
||||
{{ template "custom.valuesSection" . }}
|
||||
|
||||
{{ template "custom.changelog" . }}
|
||||
|
||||
{{ template "custom.support" . }}
|
||||
|
||||
{{ template "helm-docs.versionFooter" . }}
|
||||
@@ -1,148 +0,0 @@
|
||||
{{- define "custom.changelog.header" -}}
|
||||
## Changelog
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.changelog" -}}
|
||||
{{ template "custom.changelog.header" . }}
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](../common/README.md).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [3.0.1]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Fixed `kubeVersion` in `Chart.yaml` not working with people running k8s pre-releases
|
||||
- Added `ingressClassName` to `values.yaml`
|
||||
|
||||
### [3.0.0]
|
||||
|
||||
#### Changed
|
||||
|
||||
- `probes.startupProbe` is now enabled by default. This will allow for quicker `Ready` states on Pods. It will precede the liveness and readiness Probes. *Note:* This requires that you are running [Kubernetes 1.16](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
- Aligned our default values for liveness and readiness Probes with the Kubernetes defaults:
|
||||
- `initialDelaySeconds` is now `0`
|
||||
- `timeoutSeconds` is now `1`
|
||||
- `failureThreshold` is now `3`
|
||||
|
||||
### [2.5.1]
|
||||
|
||||
#### Added
|
||||
|
||||
- Fixed a small typo in `values.yaml`: `ingress.tls.hostTpl` -> `ingress.tls.hostsTpl`
|
||||
|
||||
### [2.5.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow setting ingress values through Helm templates:
|
||||
- `ingress.hosts.hostTpl`
|
||||
- `ingress.tls.secretNameTpl`
|
||||
- `ingress.tls.hostsTpl`
|
||||
|
||||
### [2.4.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow setting environment variables from Downward API via `envValueFrom`. See [the Kubernetes docs](https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/) for more information.
|
||||
|
||||
### [2.3.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow overriding the main container command.
|
||||
- Allow setting Helm templates as environment variables via `envTpl`. The given value is parsed through Helm's `tpl` function, allowing for powerful variable substitution.
|
||||
- Support for defining volumeClaimTemplates for StatefulSet.
|
||||
- Allow the following Pod spec fields to be configurable:
|
||||
- `priorityClassName`
|
||||
- `schedulerName`
|
||||
- `hostname`
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `values.yaml` now contains the following sections, these were already functional but were previously undocumented:
|
||||
- `podSecurityContext`
|
||||
- `securityContext`
|
||||
- `resources`
|
||||
|
||||
### [2.2.1]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Made explicit that `service.port.targetPort` cannot be a named port.
|
||||
|
||||
### [2.2.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow serviceLinks to be enabled/disabled.
|
||||
- Support for ingressClassName on apiVersion `networking.k8s.io/v1` by setting `ingress.ingressClassName`.
|
||||
- Added some initial proper unit tests for the `common` chart.
|
||||
|
||||
#### Changed
|
||||
|
||||
- `service.port.targetPort` is now used in the container spec instead of `service.port.port` if specified. This allows for different service and container ports. (Implements [#465](https://github.com/k8s-at-home/charts/issues/465)).
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Document setting environment variables for code-server add-on in `values.yaml` (Fixes [#436](https://github.com/k8s-at-home/charts/issues/436)).
|
||||
- Set service targetPort to the service port name first if no `targetPort` value is given.
|
||||
|
||||
### [2.1.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Allow for additional arguments to be added to code-server runtime via `addons.codeserver.args`
|
||||
|
||||
### [2.0.4]
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `periodSeconds` now works for all probe types.
|
||||
|
||||
### [2.0.0]
|
||||
|
||||
#### Changed
|
||||
|
||||
- :warning: Updated `probes` logic to support custom probes, it is now possible to set your own custom probes by setting the `probes.[liveness|readiness|startup].custom` value to `true` and configuring them. Default is `false`.
|
||||
- :warning: `addon.vpn.imagePullPolicy` is now `addon.vpn.[openvpn|wireguard].image.pullPolicy`. Default is `IfNotPresent`
|
||||
- [code-server](https://github.com/cdr/code-server) is now an `addon` like `vpn`. This enables a code-server container inside the pod which allows you to modify a configuration in a volume attached to the pod. Default for `addons.codeserver.enabled` is `false`
|
||||
- Added `envFrom` for more configuration with environment variables
|
||||
- Added `dnsConfig` to be configurable
|
||||
- Added support for 1.19+ ingress spec
|
||||
- Added this [CHANGELOG.md](CHANGELOG.md)
|
||||
|
||||
#### Fixed
|
||||
|
||||
- `nameOverride` and `fullNameOverride` not in `values.yaml`
|
||||
|
||||
### [1.7.0]
|
||||
|
||||
This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face:
|
||||
|
||||
[3.0.1]: #3.0.1
|
||||
|
||||
[3.0.0]: #3.0.0
|
||||
|
||||
[2.5.1]: #2.5.1
|
||||
|
||||
[2.5.0]: #2.5.0
|
||||
|
||||
[2.4.0]: #2.4.0
|
||||
|
||||
[2.3.0]: #2.3.0
|
||||
|
||||
[2.2.1]: #2.2.1
|
||||
|
||||
[2.2.0]: #2.2.0
|
||||
|
||||
[2.1.0]: #2.1.0
|
||||
|
||||
[2.0.4]: #2.0.4
|
||||
|
||||
[2.0.0]: #2.0.0
|
||||
|
||||
[1.7.0]: #1.7.0
|
||||
{{- end -}}
|
||||
@@ -1,82 +0,0 @@
|
||||
{{- define "custom.custom.configuration.header" -}}
|
||||
## Creating a new chart
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.custom.configuration" -}}
|
||||
{{ template "custom.custom.configuration.header" . }}
|
||||
|
||||
First be sure to checkout the many charts that already use this like [qBittorrent](../qbittorrent/), [node-red](../node-red/) or the many others in this repository.
|
||||
|
||||
Include this chart as a dependency in your `Chart.yaml` e.g.
|
||||
|
||||
```yaml
|
||||
# Chart.yaml
|
||||
dependencies:
|
||||
- name: common
|
||||
version: {{ template "chart.version" . }}
|
||||
repository: {{ template "custom.helm.url" . }}
|
||||
```
|
||||
Write a `values.yaml` with some basic defaults you want to present to the user e.g.
|
||||
|
||||
```yaml
|
||||
#
|
||||
# IMPORTANT NOTE
|
||||
#
|
||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||
# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml
|
||||
#
|
||||
|
||||
image:
|
||||
repository: nodered/node-red
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 1.2.5
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
# See more environment variables in the node-red documentation
|
||||
# https://nodered.org/docs/getting-started/docker
|
||||
env: {}
|
||||
# TZ:
|
||||
# NODE_OPTIONS:
|
||||
# NODE_RED_ENABLE_PROJECTS:
|
||||
# NODE_RED_ENABLE_SAFE_MODE:
|
||||
# FLOWS:
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 1880
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
|
||||
persistence:
|
||||
data:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
mountPath: /data
|
||||
```
|
||||
|
||||
If not using a service, set the `service.enabled` to `false`.
|
||||
```yaml
|
||||
...
|
||||
service:
|
||||
enabled: false
|
||||
...
|
||||
```
|
||||
|
||||
Add files to the `templates` folder.
|
||||
```yaml
|
||||
# templates/common.yaml
|
||||
{{"{{"}} include "common.all . {{"}}"}}
|
||||
|
||||
# templates/NOTES.txt
|
||||
{{"{{"}} include "common.notes.defaultNotes" . {{"}}"}}
|
||||
```
|
||||
|
||||
If testing locally make sure you update the dependencies with:
|
||||
|
||||
```bash
|
||||
helm dependency update
|
||||
```
|
||||
{{- end -}}
|
||||
@@ -1,36 +0,0 @@
|
||||
{{/*
|
||||
Main entrypoint for the common library chart. It will render all underlying templates based on the provided values.
|
||||
*/}}
|
||||
{{- define "common.all" -}}
|
||||
{{- /* Merge the local chart values and the common chart defaults */ -}}
|
||||
{{- include "common.values.setup" . }}
|
||||
|
||||
{{- /* Enable code-server add-on if required */ -}}
|
||||
{{- if .Values.addons.codeserver.enabled }}
|
||||
{{- include "common.addon.codeserver" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Enable VPN add-on if required */ -}}
|
||||
{{- if .Values.addons.vpn.enabled }}
|
||||
{{- include "common.addon.vpn" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Build the templates */ -}}
|
||||
{{- include "common.pvc" . }}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{- include "common.serviceAccount" . }}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{- end -}}
|
||||
{{- if eq .Values.controllerType "deployment" }}
|
||||
{{- include "common.deployment" . | nindent 0 }}
|
||||
{{ else if eq .Values.controllerType "daemonset" }}
|
||||
{{- include "common.daemonset" . | nindent 0 }}
|
||||
{{ else if eq .Values.controllerType "statefulset" }}
|
||||
{{- include "common.statefulset" . | nindent 0 }}
|
||||
{{- end -}}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{ include "common.service" . | nindent 0 }}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{ include "common.ingress" . | nindent 0 }}
|
||||
{{- end -}}
|
||||
@@ -1,33 +0,0 @@
|
||||
{{/*
|
||||
This template serves as the blueprint for the DaemonSet objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.daemonset" -}}
|
||||
apiVersion: {{ include "common.capabilities.daemonset.apiVersion" . }}
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with .Values.controllerLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controllerAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- include "common.controller.pod" . | nindent 6 }}
|
||||
{{- end }}
|
||||
@@ -1,38 +0,0 @@
|
||||
{{/*
|
||||
This template serves as the blueprint for the Deployment objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.deployment" -}}
|
||||
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with .Values.controllerLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controllerAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
{{- with .Values.strategy }}
|
||||
strategy:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- include "common.controller.pod" . | nindent 6 }}
|
||||
{{- end }}
|
||||
@@ -1,27 +0,0 @@
|
||||
{{/*
|
||||
Renders the Ingress objects required by the chart by returning a concatinated list
|
||||
of the main Ingress and any additionalIngresses.
|
||||
*/}}
|
||||
{{- define "common.ingress" -}}
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $svcPort := .Values.service.port.port -}}
|
||||
|
||||
{{- /* Generate primary ingress */ -}}
|
||||
{{- $ingressValues := .Values.ingress -}}
|
||||
{{- $_ := set . "ObjectValues" (dict "ingress" $ingressValues) -}}
|
||||
{{- include "common.classes.ingress" . }}
|
||||
|
||||
{{- /* Generate additional ingresses as required */ -}}
|
||||
{{- range $index, $extraIngress := .Values.ingress.additionalIngresses }}
|
||||
{{- if $extraIngress.enabled -}}
|
||||
{{- print ("---") | nindent 0 -}}
|
||||
{{- $ingressValues := $extraIngress -}}
|
||||
{{- if not $ingressValues.nameSuffix -}}
|
||||
{{- $_ := set $ingressValues "nameSuffix" $index -}}
|
||||
{{ end -}}
|
||||
{{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}}
|
||||
{{- include "common.classes.ingress" $ -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,25 +0,0 @@
|
||||
{{/*
|
||||
Default NOTES.txt content.
|
||||
*/}}
|
||||
{{- define "common.notes.defaultNotes" -}}
|
||||
{{- $svcPort := .Values.service.port.port -}}
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{- if .hostTpl }}{{ tpl .hostTpl $ }}{{ else }}{{ .host }}{{ end }}{{ (first .paths).path }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ include "common.names.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ $svcPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,18 +0,0 @@
|
||||
{{/*
|
||||
Renders the PersistentVolumeClaim objects required by the chart by returning a concatinated list
|
||||
of all the entries of the persistence key.
|
||||
*/}}
|
||||
{{- define "common.pvc" -}}
|
||||
{{- /* Generate pvc as required */ -}}
|
||||
{{- range $index, $PVC := .Values.persistence }}
|
||||
{{- if and $PVC.enabled (not (or $PVC.emptyDir $PVC.existingClaim)) -}}
|
||||
{{- $persistenceValues := $PVC -}}
|
||||
{{- if not $persistenceValues.nameSuffix -}}
|
||||
{{- $_ := set $persistenceValues "nameSuffix" $index -}}
|
||||
{{- end -}}
|
||||
{{- $_ := set $ "ObjectValues" (dict "persistence" $persistenceValues) -}}
|
||||
{{- print ("---") | nindent 0 -}}
|
||||
{{- include "common.classes.pvc" $ -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,23 +0,0 @@
|
||||
{{/*
|
||||
Renders the Service objects required by the chart by returning a concatinated list
|
||||
of the main Service and any additionalServices.
|
||||
*/}}
|
||||
{{- define "common.service" -}}
|
||||
{{- if .Values.service.enabled -}}
|
||||
{{- /* Generate primary service */ -}}
|
||||
{{- include "common.classes.service" . }}
|
||||
|
||||
{{- /* Generate additional services as required */ -}}
|
||||
{{- range $index, $extraService := .Values.service.additionalServices }}
|
||||
{{- if $extraService.enabled -}}
|
||||
{{- print ("---") | nindent 0 -}}
|
||||
{{- $serviceValues := $extraService -}}
|
||||
{{- if not $serviceValues.nameSuffix -}}
|
||||
{{- $_ := set $serviceValues "nameSuffix" $index -}}
|
||||
{{ end -}}
|
||||
{{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}}
|
||||
{{- include "common.classes.service" $ -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,15 +0,0 @@
|
||||
{{/*
|
||||
The ServiceAccount object to be created.
|
||||
*/}}
|
||||
{{- define "common.serviceAccount" -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "common.names.serviceAccountName" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,53 +0,0 @@
|
||||
{{/*
|
||||
This template serves as the blueprint for the StatefulSet objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.statefulset" -}}
|
||||
apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }}
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with .Values.controllerLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controllerAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
{{- with .Values.strategy }}
|
||||
updateStrategy:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||
serviceName: {{ include "common.names.fullname" . }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- include "common.controller.pod" . | nindent 6 }}
|
||||
volumeClaimTemplates:
|
||||
{{- range $index, $vct := .Values.volumeClaimTemplates }}
|
||||
- metadata:
|
||||
name: {{ $vct.name }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ required (printf "accessMode is required for vCT %v" $vct.name) $vct.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required (printf "size is required for PVC %v" $vct.name) $vct.size | quote }}
|
||||
{{- if $vct.storageClass }}
|
||||
storageClassName: {{ if (eq "-" $vct.storageClass) }}""{{- else }}{{ $vct.storageClass | quote }}{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,44 +0,0 @@
|
||||
{{/*
|
||||
Template to render code-server addon
|
||||
It will include / inject the required templates based on the given values.
|
||||
*/}}
|
||||
{{- define "common.addon.codeserver" -}}
|
||||
{{- if .Values.addons.codeserver.enabled -}}
|
||||
{{/* Append the code-server container to the additionalContainers */}}
|
||||
{{- $container := include "common.addon.codeserver.container" . | fromYaml -}}
|
||||
{{- if $container -}}
|
||||
{{- $additionalContainers := append .Values.additionalContainers $container -}}
|
||||
{{- $_ := set .Values "additionalContainers" $additionalContainers -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Add the code-server service */}}
|
||||
{{- if .Values.addons.codeserver.service.enabled -}}
|
||||
{{- print ("---") | nindent 0 -}}
|
||||
{{- $serviceValues := .Values.addons.codeserver.service -}}
|
||||
{{- if not $serviceValues.nameSuffix -}}
|
||||
{{- $_ := set $serviceValues "nameSuffix" "codeserver" -}}
|
||||
{{ end -}}
|
||||
{{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}}
|
||||
{{- include "common.classes.service" $ -}}
|
||||
{{- $_ := unset $ "ObjectValues" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Add the code-server ingress */}}
|
||||
{{- if .Values.addons.codeserver.ingress.enabled -}}
|
||||
{{- print ("---") | nindent 0 -}}
|
||||
{{- $ingressValues := .Values.addons.codeserver.ingress -}}
|
||||
{{- if not $ingressValues.nameSuffix -}}
|
||||
{{- $_ := set $ingressValues "nameSuffix" "codeserver" -}}
|
||||
{{ end -}}
|
||||
|
||||
{{/* Determine the target service name & port */}}
|
||||
{{- $svcName := printf "%v-%v" (include "common.names.fullname" .) .Values.addons.codeserver.service.nameSuffix -}}
|
||||
{{- $_ := set $ingressValues "serviceName" $svcName -}}
|
||||
{{- $_ := set $ingressValues "servicePort" .Values.addons.codeserver.service.port.port -}}
|
||||
|
||||
{{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}}
|
||||
{{- include "common.classes.ingress" $ -}}
|
||||
{{- $_ := unset $ "ObjectValues" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,41 +0,0 @@
|
||||
{{/*
|
||||
The code-server sidecar container to be inserted.
|
||||
*/}}
|
||||
{{- define "common.addon.codeserver.container" -}}
|
||||
{{- if lt (len .Values.addons.codeserver.volumeMounts) 1 }}
|
||||
{{- fail "At least 1 volumeMount is required for codeserver container" }}
|
||||
{{- end -}}
|
||||
name: codeserver
|
||||
image: "{{ .Values.addons.codeserver.image.repository }}:{{ .Values.addons.codeserver.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.addons.codeserver.pullPolicy }}
|
||||
{{- with .Values.addons.codeserver.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.codeserver.env }}
|
||||
env:
|
||||
{{- range $k, $v := . }}
|
||||
- name: {{ $k }}
|
||||
value: {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: {{ .Values.addons.codeserver.service.port.name }}
|
||||
containerPort: {{ .Values.addons.codeserver.service.port.port }}
|
||||
protocol: TCP
|
||||
args:
|
||||
{{- range .Values.addons.codeserver.args }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
- "--port"
|
||||
- "{{ .Values.addons.codeserver.service.port.port }}"
|
||||
- {{ .Values.addons.codeserver.workingDir | default (first .Values.addons.codeserver.volumeMounts).mountPath }}
|
||||
{{- with .Values.addons.codeserver.volumeMounts }}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.codeserver.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,26 +0,0 @@
|
||||
{{/*
|
||||
The VPN config and scripts to be included.
|
||||
*/}}
|
||||
{{- define "common.addon.vpn.configmap" -}}
|
||||
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-vpn
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- with .Values.addons.vpn.configFile }}
|
||||
vpnConfigfile: |-
|
||||
{{- . | nindent 4}}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.scripts.up }}
|
||||
up.sh: |-
|
||||
{{- . | nindent 4}}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.scripts.down }}
|
||||
down.sh: |-
|
||||
{{- . | nindent 4}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,21 +0,0 @@
|
||||
{{/*
|
||||
Blueprint for the NetworkPolicy object that can be included in the addon.
|
||||
*/}}
|
||||
{{- define "common.addon.vpn.networkpolicy" -}}
|
||||
{{- if .Values.addons.vpn.networkPolicy.enabled -}}
|
||||
kind: NetworkPolicy
|
||||
apiVersion: networking.k8s.io/v1
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||
policyTypes:
|
||||
- Egress
|
||||
egress:
|
||||
{{- with .Values.addons.vpn.networkPolicy.egress }}
|
||||
{{- . | toYaml | nindent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,25 +0,0 @@
|
||||
{{/*
|
||||
The volume (referencing VPN config and scripts) to be inserted into additionalVolumes.
|
||||
*/}}
|
||||
{{- define "common.addon.vpn.volume" -}}
|
||||
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down -}}
|
||||
name: vpnconfig
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-vpn
|
||||
items:
|
||||
{{- if .Values.addons.vpn.configFile }}
|
||||
- key: vpnConfigfile
|
||||
path: vpnConfigfile
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.up }}
|
||||
- key: up.sh
|
||||
path: up.sh
|
||||
mode: 0777
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.down }}
|
||||
- key: down.sh
|
||||
path: down.sh
|
||||
mode: 0777
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,36 +0,0 @@
|
||||
{{/*
|
||||
Template to render VPN addon
|
||||
It will include / inject the required templates based on the given values.
|
||||
*/}}
|
||||
{{- define "common.addon.vpn" -}}
|
||||
{{- if .Values.addons.vpn.enabled -}}
|
||||
{{- if eq "openvpn" .Values.addons.vpn.type -}}
|
||||
{{- include "common.addon.openvpn" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if eq "wireguard" .Values.addons.vpn.type -}}
|
||||
{{- include "common.addon.wireguard" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Include the configmap if not empty */}}
|
||||
{{- $configmap := include "common.addon.vpn.configmap" . -}}
|
||||
{{- if $configmap -}}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{- $configmap | nindent 0 -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the vpn config volume to the additionalVolumes */}}
|
||||
{{- $volume := include "common.addon.vpn.volume" . | fromYaml -}}
|
||||
{{- if $volume -}}
|
||||
{{- $additionalVolumes := append .Values.additionalVolumes $volume }}
|
||||
{{- $_ := set .Values "additionalVolumes" $additionalVolumes -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Include the networkpolicy if not empty */}}
|
||||
{{- $networkpolicy := include "common.addon.vpn.networkpolicy" . -}}
|
||||
{{- if $networkpolicy -}}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{- $networkpolicy | nindent 0 -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,19 +0,0 @@
|
||||
{{/*
|
||||
Template to render OpenVPN addon. It will add the container to the list of additionalContainers
|
||||
and add a credentials secret if speciffied.
|
||||
*/}}
|
||||
{{- define "common.addon.openvpn" -}}
|
||||
{{/* Append the openVPN container to the additionalContainers */}}
|
||||
{{- $container := include "common.addon.openvpn.container" . | fromYaml -}}
|
||||
{{- if $container -}}
|
||||
{{- $additionalContainers := append .Values.additionalContainers $container -}}
|
||||
{{- $_ := set .Values "additionalContainers" $additionalContainers -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Include the secret if not empty */}}
|
||||
{{- $secret := include "common.addon.openvpn.secret" . -}}
|
||||
{{- if $secret -}}
|
||||
{{- print "---" | nindent 0 -}}
|
||||
{{- $secret | nindent 0 -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,61 +0,0 @@
|
||||
{{/*
|
||||
The OpenVPN sidecar container to be inserted.
|
||||
*/}}
|
||||
{{- define "common.addon.openvpn.container" -}}
|
||||
name: openvpn
|
||||
image: "{{ .Values.addons.vpn.openvpn.image.repository }}:{{ .Values.addons.vpn.openvpn.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.addons.vpn.openvpn.pullPolicy }}
|
||||
{{- with .Values.addons.vpn.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.env }}
|
||||
env:
|
||||
{{- range $k, $v := . }}
|
||||
- name: {{ $k }}
|
||||
value: {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or .Values.addons.vpn.openvpn.auth .Values.addons.vpn.openvpn.authSecret }}
|
||||
envFrom:
|
||||
- secretRef:
|
||||
{{- if .Values.addons.vpn.openvpn.authSecret }}
|
||||
name: {{ .Values.addons.vpn.openvpn.authSecret }}
|
||||
{{- else }}
|
||||
name: {{ include "common.names.fullname" . }}-openvpn
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down .Values.addons.vpn.additionalVolumeMounts .Values.persistence.shared.enabled }}
|
||||
volumeMounts:
|
||||
{{- if .Values.addons.vpn.configFile }}
|
||||
- name: vpnconfig
|
||||
mountPath: /vpn/vpn.conf
|
||||
subPath: vpnConfigfile
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.up }}
|
||||
- name: vpnconfig
|
||||
mountPath: /vpn/up.sh
|
||||
subPath: up.sh
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.down }}
|
||||
- name: vpnconfig
|
||||
mountPath: /vpn/down.sh
|
||||
subPath: down.sh
|
||||
{{- end }}
|
||||
{{- if .Values.persistence.shared.enabled }}
|
||||
- mountPath: {{ .Values.persistence.shared.mountPath }}
|
||||
name: shared
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.additionalVolumeMounts }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.livenessProbe }}
|
||||
livenessProbe:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end -}}
|
||||
{{- with .Values.addons.vpn.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,15 +0,0 @@
|
||||
{{/*
|
||||
The OpenVPN credentials secrets to be included.
|
||||
*/}}
|
||||
{{- define "common.addon.openvpn.secret" -}}
|
||||
{{- with .Values.addons.vpn.openvpn.auth -}}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" $ }}-openvpn
|
||||
labels:
|
||||
{{- include "common.labels" $ | nindent 4 }}
|
||||
data:
|
||||
VPN_AUTH: {{ . | b64enc }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,12 +0,0 @@
|
||||
{{/*
|
||||
Template to render Wireguard addon. It will add the container to the list of additionalContainers.
|
||||
*/}}
|
||||
*/}}
|
||||
{{- define "common.addon.wireguard" -}}
|
||||
{{/* Append the Wireguard container to the additionalContainers */}}
|
||||
{{- $container := fromYaml (include "common.addon.wireguard.container" .) -}}
|
||||
{{- if $container -}}
|
||||
{{- $additionalContainers := append .Values.additionalContainers $container -}}
|
||||
{{- $_ := set .Values "additionalContainers" $additionalContainers -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,52 +0,0 @@
|
||||
{{/*
|
||||
The Wireguard sidecar container to be inserted.
|
||||
*/}}
|
||||
{{- define "common.addon.wireguard.container" -}}
|
||||
name: wireguard
|
||||
image: "{{ .Values.addons.vpn.wireguard.image.repository }}:{{ .Values.addons.vpn.wireguard.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.addons.vpn.wireguard.pullPolicy }}
|
||||
{{- with .Values.addons.vpn.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.env }}
|
||||
env:
|
||||
{{- range $k, $v := . }}
|
||||
- name: {{ $k }}
|
||||
value: {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down .Values.addons.vpn.additionalVolumeMounts .Values.persistence.shared.enabled }}
|
||||
volumeMounts:
|
||||
{{- if .Values.addons.vpn.configFile }}
|
||||
- name: vpnconfig
|
||||
mountPath: /etc/wireguard/wg0.conf
|
||||
subPath: vpnConfigfile
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.up }}
|
||||
- name: vpnconfig
|
||||
mountPath: /config/up.sh
|
||||
subPath: up.sh
|
||||
{{- end }}
|
||||
{{- if .Values.addons.vpn.scripts.down }}
|
||||
- name: vpnconfig
|
||||
mountPath: /config/down.sh
|
||||
subPath: down.sh
|
||||
{{- end }}
|
||||
{{- if .Values.persistence.shared.enabled }}
|
||||
- mountPath: {{ .Values.persistence.shared.mountPath }}
|
||||
name: shared
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.additionalVolumeMounts }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.addons.vpn.livenessProbe }}
|
||||
livenessProbe:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end -}}
|
||||
{{- with .Values.addons.vpn.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,77 +0,0 @@
|
||||
{{/*
|
||||
This template serves as a blueprint for all Ingress objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.classes.ingress" -}}
|
||||
{{- $ingressName := include "common.names.fullname" . -}}
|
||||
{{- $values := .Values.ingress -}}
|
||||
{{- if hasKey . "ObjectValues" -}}
|
||||
{{- with .ObjectValues.ingress -}}
|
||||
{{- $values = . -}}
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
{{- if hasKey $values "nameSuffix" -}}
|
||||
{{- $ingressName = printf "%v-%v" $ingressName $values.nameSuffix -}}
|
||||
{{ end -}}
|
||||
{{- $svcName := $values.serviceName | default (include "common.names.fullname" .) -}}
|
||||
{{- $svcPort := $values.servicePort | default $.Values.service.port.port -}}
|
||||
apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $ingressName }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with $values.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||
{{- if $values.ingressClassName }}
|
||||
ingressClassName: {{ $values.ingressClassName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $values.tls }}
|
||||
tls:
|
||||
{{- range $values.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- range .hostsTpl }}
|
||||
- {{ tpl . $ | quote }}
|
||||
{{- end }}
|
||||
{{- if .secretNameTpl }}
|
||||
secretName: {{ tpl .secretNameTpl $ | quote}}
|
||||
{{- else }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range $values.hosts }}
|
||||
{{- if .hostTpl }}
|
||||
- host: {{ tpl .hostTpl $ | quote }}
|
||||
{{- else }}
|
||||
- host: {{ .host | quote }}
|
||||
{{- end }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }}
|
||||
{{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||
pathType: Prefix
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $svcName }}
|
||||
port:
|
||||
number: {{ $svcPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $svcName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,40 +0,0 @@
|
||||
{{/*
|
||||
This template serves as a blueprint for all PersistentVolumeClaim objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.classes.pvc" -}}
|
||||
{{- $values := .Values.persistence -}}
|
||||
{{- if hasKey . "ObjectValues" -}}
|
||||
{{- with .ObjectValues.persistence -}}
|
||||
{{- $values = . -}}
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
{{- $pvcName := include "common.names.fullname" . -}}
|
||||
{{- if hasKey $values "nameSuffix" -}}
|
||||
{{- $pvcName = printf "%v-%v" $pvcName $values.nameSuffix -}}
|
||||
{{ end -}}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ $pvcName }}
|
||||
{{- if or $values.skipuninstall $values.annotations }}
|
||||
annotations:
|
||||
{{- if $values.skipuninstall }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
{{- with $values.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ required (printf "accessMode is required for PVC %v" $pvcName) $values.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required (printf "size is required for PVC %v" $pvcName) $values.size | quote }}
|
||||
{{- if $values.storageClass }}
|
||||
storageClassName: {{ if (eq "-" $values.storageClass) }}""{{- else }}{{ $values.storageClass | quote }}{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,68 +0,0 @@
|
||||
{{/*
|
||||
This template serves as a blueprint for all Service objects that are created
|
||||
within the common library.
|
||||
*/}}
|
||||
{{- define "common.classes.service" -}}
|
||||
{{- $values := .Values.service -}}
|
||||
{{- if hasKey . "ObjectValues" -}}
|
||||
{{- with .ObjectValues.service -}}
|
||||
{{- $values = . -}}
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
{{- $serviceName := include "common.names.fullname" . -}}
|
||||
{{- if hasKey $values "nameSuffix" -}}
|
||||
{{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}}
|
||||
{{ end -}}
|
||||
{{- $svcType := $values.type | default "" -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ $serviceName }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- if $values.labels }}
|
||||
{{ toYaml $values.labels | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with $values.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if (or (eq $svcType "ClusterIP") (empty $svcType)) }}
|
||||
type: ClusterIP
|
||||
{{- if $values.clusterIP }}
|
||||
clusterIP: {{ $values.clusterIP }}
|
||||
{{end}}
|
||||
{{- else if eq $svcType "LoadBalancer" }}
|
||||
type: {{ $svcType }}
|
||||
{{- if $values.loadBalancerIP }}
|
||||
loadBalancerIP: {{ $values.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if $values.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ $values.externalTrafficPolicy }}
|
||||
{{- end }}
|
||||
{{- if $values.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml $values.loadBalancerSourceRanges | nindent 4 }}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
type: {{ $svcType }}
|
||||
{{- end }}
|
||||
{{- if $values.sessionAffinity }}
|
||||
sessionAffinity: {{ $values.sessionAffinity }}
|
||||
{{- if $values.sessionAffinityConfig }}
|
||||
sessionAffinityConfig:
|
||||
{{ toYaml $values.sessionAffinityConfig | nindent 4 }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- with $values.externalIPs }}
|
||||
externalIPs:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if $values.publishNotReadyAddresses }}
|
||||
publishNotReadyAddresses: {{ $values.publishNotReadyAddresses }}
|
||||
{{- end }}
|
||||
{{- include "common.classes.service.ports" (dict "svcType" $svcType "values" $values ) | trim | nindent 2 }}
|
||||
selector:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -1,23 +0,0 @@
|
||||
{{/*
|
||||
Render all the ports and additionalPorts for a Service object.
|
||||
*/}}
|
||||
{{- define "common.classes.service.ports" -}}
|
||||
{{- $ports := list -}}
|
||||
{{- $values := .values -}}
|
||||
{{- $ports = mustAppend $ports $values.port -}}
|
||||
{{- range $_ := $values.additionalPorts -}}
|
||||
{{- $ports = mustAppend $ports . -}}
|
||||
{{- end }}
|
||||
{{- if $ports -}}
|
||||
ports:
|
||||
{{- range $_ := $ports }}
|
||||
- port: {{ .port }}
|
||||
targetPort: {{ .targetPort | default .name | default "http" }}
|
||||
protocol: {{ .protocol | default "TCP" }}
|
||||
name: {{ .name | default "http" }}
|
||||
{{- if (and (eq $.svcType "NodePort") (not (empty .nodePort))) }}
|
||||
nodePort: {{ .nodePort }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
@@ -1,92 +0,0 @@
|
||||
{{/*
|
||||
Return the appropriate apiVersion for DaemonSet objects.
|
||||
*/}}
|
||||
{{- define "common.capabilities.daemonset.apiVersion" -}}
|
||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Waiting on https://github.com/helm/helm/pull/8608
|
||||
{{- define "common.capabilities.daemonset.apiVersion" -}}
|
||||
{{- if .Capabilities.APIVersions.Has "apps/v1/DaemonSet" -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- else -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
*/}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for Deployment objects.
|
||||
*/}}
|
||||
{{- define "common.capabilities.deployment.apiVersion" -}}
|
||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Waiting on https://github.com/helm/helm/pull/8608
|
||||
{{- define "common.capabilities.deployment.apiVersion" -}}
|
||||
{{- if .Capabilities.APIVersions.Has "apps/v1/Deployment" -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- else -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
*/}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for StatefulSet objects.
|
||||
*/}}
|
||||
{{- define "common.capabilities.statefulset.apiVersion" -}}
|
||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "apps/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Waiting on https://github.com/helm/helm/pull/8608
|
||||
{{- define "common.capabilities.statefulset.apiVersion" -}}
|
||||
{{- if .Capabilities.APIVersions.Has "apps/v1/StatefulSet" -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- else -}}
|
||||
{{- print "apps/v1beta1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
*/}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for Ingress objects.
|
||||
*/}}
|
||||
|
||||
{{- define "common.capabilities.ingress.apiVersion" -}}
|
||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "networking.k8s.io/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "networking.k8s.io/v1" -}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Waiting on https://github.com/helm/helm/pull/8608
|
||||
{{- define "common.capabilities.ingress.apiVersion" -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" -}}
|
||||
{{- print "networking.k8s.io/v1" -}}
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" -}}
|
||||
{{- print "networking.k8s.io/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
*/}}
|
||||
@@ -1,19 +0,0 @@
|
||||
{{/*
|
||||
Common labels shared across objects.
|
||||
*/}}
|
||||
{{- define "common.labels" -}}
|
||||
helm.sh/chart: {{ include "common.names.chart" . }}
|
||||
{{ include "common.labels.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels shared across objects.
|
||||
*/}}
|
||||
{{- define "common.labels.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "common.names.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,42 +0,0 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "common.names.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "common.names.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "common.names.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the ServiceAccount to use.
|
||||
*/}}
|
||||
{{- define "common.names.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "common.names.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,11 +0,0 @@
|
||||
{{/*
|
||||
Merge the local chart values and the common chart defaults.
|
||||
*/}}
|
||||
{{- define "common.values.setup" -}}
|
||||
{{- if .Values.common -}}
|
||||
{{- $defaultValues := deepCopy .Values.common -}}
|
||||
{{- $userValues := deepCopy (omit .Values "common") -}}
|
||||
{{- $mergedValues := mustMergeOverwrite $defaultValues $userValues -}}
|
||||
{{- $_ := set . "Values" (deepCopy $mergedValues) -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,66 +0,0 @@
|
||||
{{- /*
|
||||
The main container included in the controller.
|
||||
*/ -}}
|
||||
{{- define "common.controller.mainContainer" -}}
|
||||
- name: {{ include "common.names.fullname" . }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- with .Values.command }}
|
||||
command: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.args }}
|
||||
args: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.env .Values.envTpl .Values.envValueFrom }}
|
||||
env:
|
||||
{{- range $key, $value := .Values.env }}
|
||||
- name: {{ $key }}
|
||||
value: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.envTpl }}
|
||||
- name: {{ $key }}
|
||||
value: {{ tpl $value $ | quote }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.envValueFrom }}
|
||||
- name: {{ $key }}
|
||||
valueFrom:
|
||||
{{- $value | toYaml | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- include "common.controller.ports" . | trim | nindent 2 }}
|
||||
volumeMounts:
|
||||
{{- range $index, $PVC := .Values.persistence }}
|
||||
{{- if $PVC.enabled }}
|
||||
- mountPath: {{ $PVC.mountPath }}
|
||||
name: {{ $index }}
|
||||
{{- if $PVC.subPath }}
|
||||
subPath: {{ $PVC.subPath }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.additionalVolumeMounts }}
|
||||
{{- toYaml .Values.additionalVolumeMounts | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.controllerType "statefulset" }}
|
||||
{{- range $index, $vct := .Values.volumeClaimTemplates }}
|
||||
- mountPath: {{ $vct.mountPath }}
|
||||
name: {{ $vct.name }}
|
||||
{{- if $vct.subPath }}
|
||||
subPath: {{ $vct.subPath }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.controller.probes" . | nindent 2 }}
|
||||
{{- with .Values.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,63 +0,0 @@
|
||||
{{- /*
|
||||
The pod definition included in the controller.
|
||||
*/ -}}
|
||||
{{- define "common.controller.pod" -}}
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "common.names.serviceAccountName" . }}
|
||||
{{- with .Values.podSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.schedulerName }}
|
||||
schedulerName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.hostNetwork }}
|
||||
hostNetwork: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.hostname }}
|
||||
hostname: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.dnsPolicy }}
|
||||
dnsPolicy: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.dnsConfig }}
|
||||
dnsConfig:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
enableServiceLinks: {{ .Values.enableServiceLinks }}
|
||||
{{- with .Values.initContainers }}
|
||||
initContainers:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
{{- include "common.controller.mainContainer" . | nindent 0 }}
|
||||
{{- with .Values.additionalContainers }}
|
||||
{{- toYaml . | nindent 0 }}
|
||||
{{- end }}
|
||||
{{- with (include "common.controller.volumes" . | trim) }}
|
||||
volumes:
|
||||
{{- . | nindent 0 }}
|
||||
{{- end }}
|
||||
{{- with .Values.hostAliases }}
|
||||
hostAliases:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,42 +0,0 @@
|
||||
{{/*
|
||||
Ports included by the controller.
|
||||
*/}}
|
||||
{{- define "common.controller.ports" -}}
|
||||
{{- $ports := list -}}
|
||||
{{- with .Values.service -}}
|
||||
{{- $serviceValues := deepCopy . -}}
|
||||
{{/* append the ports for the main service */}}
|
||||
{{- if .enabled -}}
|
||||
{{- $_ := set .port "name" (default "http" .port.name) -}}
|
||||
{{- $ports = mustAppend $ports .port -}}
|
||||
{{- range $_ := .additionalPorts -}}
|
||||
{{/* append the additonalPorts for the main service */}}
|
||||
{{- $ports = mustAppend $ports . -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{/* append the ports for each additional service */}}
|
||||
{{- range $_ := .additionalServices }}
|
||||
{{- if .enabled -}}
|
||||
{{- $_ := set .port "name" (required "Missing port.name" .port.name) -}}
|
||||
{{- $ports = mustAppend $ports .port -}}
|
||||
{{- range $_ := .additionalPorts -}}
|
||||
{{/* append the additonalPorts for each additional service */}}
|
||||
{{- $ports = mustAppend $ports . -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/* export/render the list of ports */}}
|
||||
{{- if $ports -}}
|
||||
ports:
|
||||
{{- range $_ := $ports }}
|
||||
- name: {{ .name }}
|
||||
{{- if and .targetPort (kindIs "string" .targetPort) }}
|
||||
{{- fail (printf "Our charts do not support named ports for targetPort. (port name %s, targetPort %s)" .name .targetPort) }}
|
||||
{{- end }}
|
||||
containerPort: {{ .targetPort | default .port }}
|
||||
protocol: {{ .protocol | default "TCP" }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -1,22 +0,0 @@
|
||||
{{/*
|
||||
Probes selection logic.
|
||||
*/}}
|
||||
{{- define "common.controller.probes" -}}
|
||||
{{- $svcPort := .Values.service.port.name -}}
|
||||
{{- range $probeName, $probe := .Values.probes }}
|
||||
{{- if $probe.enabled -}}
|
||||
{{- "" | nindent 0 }}
|
||||
{{- $probeName }}Probe:
|
||||
{{- if $probe.custom -}}
|
||||
{{- $probe.spec | toYaml | nindent 2 }}
|
||||
{{- else }}
|
||||
{{- "tcpSocket:" | nindent 2 }}
|
||||
{{- printf "port: %v" $svcPort | nindent 4 }}
|
||||
{{- printf "initialDelaySeconds: %v" $probe.spec.initialDelaySeconds | nindent 2 }}
|
||||
{{- printf "failureThreshold: %v" $probe.spec.failureThreshold | nindent 2 }}
|
||||
{{- printf "timeoutSeconds: %v" $probe.spec.timeoutSeconds | nindent 2 }}
|
||||
{{- printf "periodSeconds: %v" $probe.spec.periodSeconds | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user