Skip to content

Commit d0e4169

Browse files
committed
Utilised file templates
1 parent 3c6f9f6 commit d0e4169

File tree

10 files changed

+332
-103
lines changed

10 files changed

+332
-103
lines changed

README.md.gotmpl

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
55

6+
{{ .Files.Get "DESCRIPTION.md" }}
7+
68
## Installing the Chart
79

810
To install the chart with the release name `{{ template "chart.name" . }}`, run the following commands:
@@ -18,3 +20,5 @@ $ helm install {{ template "chart.name" . }} raven/{{ template "chart.name" . }}
1820
{{ template "chart.valuesSection" . }}
1921

2022
{{ template "helm-docs.versionFooter" . }}
23+
24+
{{ .Files.Get "CHANGELOG.md" }}

charts/backupd/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,30 @@ $ helm install backupd raven/backupd
3939
| restore.schedule | string | `"1 * * * 1"` | |
4040
| restore.trigger | string | `nil` | |
4141

42+
# backupd
43+
44+
This chart will provision volsync backupd and restore manifests.
45+
This is to centralize the otherwise repeated backupd and restore manifests, from being ludicrously repetitive.
46+
This chart aims to have reasonable defaults to reduce the amount of customization required.
47+
This chart does not provision the volsync CRDs, this is left to the user, who must install the volsync operator and CRDs.
48+
This chart also does not provision the restic secrets, which necessarily must be generated by the end user.
49+
50+
These manifests will automatically restore from a backupd on volume creation. This means that when a volume is deleted the contents will be restored from the backupd.
51+
This chart makes use of volsyncs volume populator, which sources new volumes from a backupd on volume creation to restore from backupd.
52+
53+
## Changelog
54+
55+
### 0.7.0
56+
57+
This minor patch introduced backwards compatible restore changes. This included being able to select the previous integer, and asOf date so users can select which backup to restore.
58+
59+
No changes are necessary to the values.yaml but if you would like to use the new restore options you need to add `.restore.asOf` or `.restore.previous`. Note this are not populated by the base chart and they should be used mutually exclusively.
60+
61+
```yaml
62+
restore:
63+
...
64+
# define which backup to restore
65+
asOf: "" # string e.g: "2022-08-10T20:01:03-04:00"
66+
previous: # int e.g: 2
67+
```
68+

charts/corvid/CHANGELOG.md

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# Corvid
2-
31
## Changelog
42

53
### 0.8.0

charts/corvid/DESCRIPTION.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This library chart primarily deals with abstracting common boilerplate into customisable components for re-use.

charts/corvid/README.md

+89
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Common helm component and utility library
44

55
![Version: 0.8.0](https://img.shields.io/badge/Version-0.8.0-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square)
66

7+
This library chart primarily deals with abstracting common boilerplate into customisable components for re-use.
8+
79
## Installing the Chart
810

911
To install the chart with the release name `corvid`, run the following commands:
@@ -78,3 +80,90 @@ $ helm install corvid raven/corvid
7880
| volumeMounts | list | `[]` | |
7981
| volumes | list | `[]` | |
8082

83+
## Changelog
84+
85+
### 0.8.0
86+
87+
This release adds dnsPolicy and dnsConfig to the podSpec template.
88+
This is backwards compatible since this will be ignored if the values do not exist.
89+
To use this new template you can do something akin to the following as per your needs:
90+
91+
```yaml
92+
dnsPolicy: "None"
93+
dnsConfig:
94+
nameservers:
95+
- 1.1.1.1
96+
options:
97+
- name: ndots
98+
value: "1"
99+
```
100+
101+
However this should only be used if you know what you are doing, there are very specific cases where this might be required.
102+
One such instance is VPNs in containers.
103+
Otherwise it should be left empty:
104+
105+
```yaml
106+
dnsPolicy: ""
107+
dnsConfig: {}
108+
```
109+
110+
see: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
111+
112+
### 0.7.1
113+
114+
This release adds previously missing inbuilt startup probe configuration.
115+
This is backwards compatible since no changes to values.yaml and it does not change the default behaviour.
116+
117+
To add a startup probe you can add the following to your values.yaml for the most basic startup probe:
118+
119+
```yaml
120+
startupProbe:
121+
httpGet:
122+
path: /
123+
port: http # the port name if it is not call http
124+
```
125+
126+
### 0.7.0
127+
128+
This release introduces a daemonset template. This is backwards compatible since no changes to values.yaml. If you would like to use this new template you can do something akin to the following. Replace ``corvid-test`` with your charts name:
129+
130+
```yaml
131+
{{- define "corvid-test.daemonset" }}
132+
# your daemonset overrides here
133+
{{- end }}
134+
{{- include "corvid.daemonset" (list . "corvid-test.daemonset") }}
135+
```
136+
137+
### 0.6.5
138+
139+
This release introduces existingClaim persistence for the podSpec template. Thus this effects almost all usages, but only if ``.persistence.existingClaim`` is set.
140+
141+
By default please add the following to your values.yaml, although this is not required:
142+
143+
```yaml
144+
persistence:
145+
existingClaim: ""
146+
```
147+
148+
No changes are required in the templating itself, this is backwards compatible.
149+
150+
### 0.6.4
151+
152+
This release of corvid introduces CronJob templates. This is backwards compatible since the only new variables are part of a new template altogether to define a CronJob.
153+
Any users seeking to invoke this new CronJob will need to add the following to their values.yaml:
154+
155+
```yaml
156+
schedule: "@midnight" # or some other cron schedule, try: https://crontab.guru/
157+
```
158+
159+
They will also need to invoke this new template in their templates (substituting ``corvid-test`` for their chart name):
160+
161+
```yaml
162+
{{- define "corvid-test.cronjob" -}}
163+
# your cronjob overrides here
164+
{{- end -}}
165+
{{- include "corvid.cronjob" (list . "corvid-test.cronjob") -}}
166+
```
167+
168+
This is backwards compatible.
169+

charts/jellymeta/CHANGELOG.md charts/jellymeta/DESCRIPTION.md

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# Jellyfin Meta Chart
2-
31
This chart is a chart which contains multiple other more atomic charts as dependencies.
42
This allows you to control a broader deployment of interconnected resources.
53

charts/jellymeta/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ A Helm chart for Kubernetes
44

55
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square)
66

7+
This chart is a chart which contains multiple other more atomic charts as dependencies.
8+
This allows you to control a broader deployment of interconnected resources.
9+
10+
In this instance this is a meta chart for jellyfin, with components like metube and filebrowser to help automate and remotely administer the jellyfin data files. This is because jellyfin currently has no in-built video downloader, and thus we need tools like metube and filebrowser to help.
11+
712
## Installing the Chart
813

914
To install the chart with the release name `jellymeta`, run the following commands:

charts/qbittorrent/CHANGELOG.md

-99
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,3 @@
1-
# qBittorrent Helm Chart
2-
3-
This helm chart is used to deploy qBittorrent into a kubernetes cluster.
4-
This uses mostly standard values you will also find in other charts like those of bitnami.
5-
6-
This chart specifically has optional support for gluetun running as a side-car. See the initContainers section of the values.yaml for specific configuration to enable this. This will only require that you create your own secret to provide environment variables to gluetun. Please ensure you bind your qBittorrent in advanced options to only the tunnel interface. In my case this was tun0. Then also use ipleaks ``torrent address detection`` to ensure you are maintaining privacy. Also consider enabling qBittorrents anonymous mode.
7-
8-
This chart makes heavy use of my own corvid library chart, to reduce the amount of boilerplate I have to maintain across my charts.
9-
10-
More details are to come, please consult the values.yaml for specifics.
11-
12-
## Usage
13-
14-
### Example Values
15-
16-
To create a qbittorrent client with your VPN you can use the following values as a rough guide. You will need to change the storage, and the host to match your own needs. You will also need to bring your own secret. In the following configuration I use the ``gluetun`` secret. This will be mounted with every key as environment variables to configure your gluetun setup. See https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers for environment variables you will need to add to this secret.
17-
18-
```yaml
19-
persistence:
20-
enabled: true
21-
size: 400Gi # <----------- CHANGE ME
22-
accessModes:
23-
- ReadWriteMany
24-
25-
securityContext:
26-
#capabilities:
27-
# drop:
28-
# - ALL
29-
#readOnlyRootFilesystem: false
30-
#runAsNonRoot: true
31-
#runAsUser: 1000
32-
33-
env:
34-
- name: PUID
35-
value: "1000"
36-
- name: PGID
37-
value: "1000"
38-
- name: TZ
39-
value: "Europe/London"
40-
# https://github.com/linuxserver/docker-qbittorrent/issues/179
41-
- name: DOCKER_MODS
42-
value: "lscr.io/linuxserver/mods:universal-stdout-logs"
43-
- name: LOGS_TO_STDOUT
44-
value: "/config/qBittorrent/logs/qbittorrent.log"
45-
46-
ingress:
47-
enabled: true
48-
annotations:
49-
cert-manager.io/cluster-issuer: "letsencrypt-issuer" # <----------- CHANGE ME
50-
hosts:
51-
- host: torrent.org.example # <----------- CHANGE ME
52-
paths:
53-
- path: /
54-
pathType: ImplementationSpecific
55-
## @param ingress.tls [array] Ingress TLS
56-
tls:
57-
- secretName: torrent.org.example-tls # <----------- CHANGE ME
58-
hosts:
59-
- torrent.org.example # <----------- CHANGE ME
60-
61-
## @param initContainers Add bespoke init containers to the pods
62-
initContainers:
63-
# optional gluetun VPN client sidecar
64-
# https://github.com/qdm12/gluetun
65-
# https://github.com/qdm12/gluetun-wiki/pull/7
66-
- name: gluetun # init sidecar for VPN connection
67-
image: "ghcr.io/qdm12/gluetun:latest"
68-
restartPolicy: Always # makes this init into a sidecar container k8s 1.29
69-
imagePullPolicy: Always
70-
ports:
71-
- name: http-proxy
72-
containerPort: 8888
73-
protocol: TCP
74-
- name: tcp-shadowsocks
75-
containerPort: 8388
76-
protocol: TCP
77-
- name: udp-shadowsocks
78-
containerPort: 8388
79-
protocol: UDP
80-
envFrom:
81-
- secretRef:
82-
name: gluetun
83-
optional: false
84-
env:
85-
- name: TZ
86-
value: "Europe/London"
87-
- name: FIREWALL_DEBUG
88-
value: "on"
89-
- name: FIREWALL_INPUT_PORTS
90-
value: "8080"
91-
securityContext:
92-
capabilities:
93-
add:
94-
- NET_ADMIN
95-
#drop:
96-
#- ALL
97-
```
98-
99-
1001
## Changelog
1012

1023
### 0.3.1

charts/qbittorrent/DESCRIPTION.md

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
This helm chart is used to deploy qBittorrent into a kubernetes cluster.
2+
This uses mostly standard values you will also find in other charts like those of bitnami.
3+
4+
This chart specifically has optional support for gluetun running as a side-car. See the initContainers section of the values.yaml for specific configuration to enable this. This will only require that you create your own secret to provide environment variables to gluetun. Please ensure you bind your qBittorrent in advanced options to only the tunnel interface. In my case this was tun0. Then also use ipleaks ``torrent address detection`` to ensure you are maintaining privacy. Also consider enabling qBittorrents anonymous mode.
5+
6+
## Usage
7+
8+
### Example Values
9+
10+
To create a qbittorrent client with your VPN you can use the following values as a rough guide. You will need to change the storage, and the host to match your own needs. You will also need to bring your own secret. In the following configuration I use the ``gluetun`` secret. This will be mounted with every key as environment variables to configure your gluetun setup. See https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers for environment variables you will need to add to this secret.
11+
12+
```yaml
13+
persistence:
14+
enabled: true
15+
size: 400Gi # <----------- CHANGE ME
16+
accessModes:
17+
- ReadWriteMany
18+
19+
securityContext:
20+
#capabilities:
21+
# drop:
22+
# - ALL
23+
#readOnlyRootFilesystem: false
24+
#runAsNonRoot: true
25+
#runAsUser: 1000
26+
27+
env:
28+
- name: PUID
29+
value: "1000"
30+
- name: PGID
31+
value: "1000"
32+
- name: TZ
33+
value: "Europe/London"
34+
# https://github.com/linuxserver/docker-qbittorrent/issues/179
35+
- name: DOCKER_MODS
36+
value: "lscr.io/linuxserver/mods:universal-stdout-logs"
37+
- name: LOGS_TO_STDOUT
38+
value: "/config/qBittorrent/logs/qbittorrent.log"
39+
40+
ingress:
41+
enabled: true
42+
annotations:
43+
cert-manager.io/cluster-issuer: "letsencrypt-issuer" # <----------- CHANGE ME
44+
hosts:
45+
- host: torrent.org.example # <----------- CHANGE ME
46+
paths:
47+
- path: /
48+
pathType: ImplementationSpecific
49+
## @param ingress.tls [array] Ingress TLS
50+
tls:
51+
- secretName: torrent.org.example-tls # <----------- CHANGE ME
52+
hosts:
53+
- torrent.org.example # <----------- CHANGE ME
54+
55+
## @param initContainers Add bespoke init containers to the pods
56+
initContainers:
57+
# optional gluetun VPN client sidecar
58+
# https://github.com/qdm12/gluetun
59+
# https://github.com/qdm12/gluetun-wiki/pull/7
60+
- name: gluetun # init sidecar for VPN connection
61+
image: "ghcr.io/qdm12/gluetun:latest"
62+
restartPolicy: Always # makes this init into a sidecar container k8s 1.29
63+
imagePullPolicy: Always
64+
ports:
65+
- name: http-proxy
66+
containerPort: 8888
67+
protocol: TCP
68+
- name: tcp-shadowsocks
69+
containerPort: 8388
70+
protocol: TCP
71+
- name: udp-shadowsocks
72+
containerPort: 8388
73+
protocol: UDP
74+
envFrom:
75+
- secretRef:
76+
name: gluetun
77+
optional: false
78+
env:
79+
- name: TZ
80+
value: "Europe/London"
81+
- name: FIREWALL_DEBUG
82+
value: "on"
83+
- name: FIREWALL_INPUT_PORTS
84+
value: "8080"
85+
securityContext:
86+
capabilities:
87+
add:
88+
- NET_ADMIN
89+
#drop:
90+
#- ALL
91+
```

0 commit comments

Comments
 (0)