More CI improvements

This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2022-07-29 21:10:46 +02:00
parent d83abae451
commit bcded223a6
No known key found for this signature in database
GPG key ID: BC5E2BD907F9A8EC
41 changed files with 359 additions and 120 deletions

View file

@ -97,8 +97,10 @@ function filterChangedCharts(files, parentFolder) {
let changedCharts = [];
filteredChartFiles.forEach((file) => {
const absoluteParentFolder = path.resolve(parentFolder);
const absoluteChartFolder = path.resolve(path.dirname(file));
const chart = absoluteChartFolder.slice(absoluteParentFolder.length + 1);
const absoluteFileDirname = path.resolve(path.dirname(file));
const relativeFileDirname = absoluteFileDirname.slice(absoluteParentFolder.length + 1);
const chartPathParts = relativeFileDirname.split("/");
const chart = `${chartPathParts[0]}/${chartPathParts[1]}`;
changedCharts.push(chart);
});
// Return only unique items

File diff suppressed because one or more lines are too long

View file

@ -71,8 +71,12 @@ function filterChangedCharts(files: string[], parentFolder: string) {
let changedCharts: string[] = [];
filteredChartFiles.forEach((file) => {
const absoluteParentFolder = path.resolve(parentFolder);
const absoluteChartFolder = path.resolve(path.dirname(file));
const chart = absoluteChartFolder.slice(absoluteParentFolder.length + 1);
const absoluteFileDirname = path.resolve(path.dirname(file));
const relativeFileDirname = absoluteFileDirname.slice(
absoluteParentFolder.length + 1
);
const chartPathParts = relativeFileDirname.split("/");
const chart = `${chartPathParts[0]}/${chartPathParts[1]}`;
changedCharts.push(chart);
});

View file

@ -0,0 +1,35 @@
name: "Override chart dependencies"
description: "Overrides the dependencies for a Helm chart"
inputs:
chart:
required: true
description: "Which chart to override the dependencies for"
overrides:
required: true
description: "A JSON encoded list of dependency overrides"
runs:
using: "composite"
steps:
- name: Override dependencies
shell: bash
run: |
overrides=( $(yq --null-input e -o=j -I=0 '${{ inputs.overrides }}[]' ) )
chartFile="charts/${{ matrix.chart }}/Chart.yaml"
if [[ ! -f ${chartFile} ]]; then
echo "Could not find ${chartFile}"!
exit 1
fi
for override in "${overrides[@]}"; do
name=$(echo "$override" | yq e '.name' -)
repository=$(echo "$override" | yq e '.repository' -)
version=$(echo "$override" | yq e '.version' -)
yq -i "(.dependencies[] | select(.name == \"$name\").repository) |= \"$repository\"" "${chartFile}"
yq -i "(.dependencies[] | select(.name == \"$name\").version) |= \"$version\"" "${chartFile}"
done
echo "Resulting chart:"
cat ${chartFile}

View file

@ -9,8 +9,14 @@ on:
chartsToTest:
description: >
A JSON encoded array of charts to lint
required: true
type: string
required: true
overrideDeps:
description: >
A JSON encoded array of dependencies to override before testing
type: string
required: false
default: '[]'
env:
HELM_VERSION: 3.9.2
@ -19,7 +25,7 @@ jobs:
install-chart:
name: Install chart
runs-on: ubuntu-22.04
if: ${{ inputs.chartsToTest != '' && inputs.chartsToTest != '[]' }}
if: ${{ inputs.chartsToTest != '[]' && inputs.chartsToTest != '' }}
strategy:
matrix:
chart: ${{ fromJSON(inputs.chartsToTest) }}
@ -57,6 +63,13 @@ jobs:
run: |
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
- name: Override chart dependencies
uses: ./.github/actions/override-chart-deps
if: ${{ inputs.overrideDeps != '[]' }}
with:
chart: ${{ matrix.chart }}
overrides: ${{ inputs.overrideDeps }}
- name: Run chart-testing (install)
run: ct install --config .ci/ct/ct.yaml --charts "charts/${{ matrix.chart }}"
@ -70,13 +83,13 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check install matrix status
if: ${{ (inputs.chartsToTest != '' && inputs.chartsToTest != '[]') && needs.install-chart.result != 'success' }}
if: ${{ (inputs.chartsToTest != '[]' && inputs.chartsToTest != '') && needs.install-chart.result != 'success' }}
run: exit 1
unittest-chart:
name: Unit-test chart
runs-on: ubuntu-20.04
if: ${{ inputs.chartsToTest != '' && inputs.chartsToTest != '[]' }}
if: ${{ inputs.chartsToTest != '[]' && inputs.chartsToTest != '' }}
strategy:
matrix:
chart: ${{ fromJSON(inputs.chartsToTest) }}
@ -95,12 +108,18 @@ jobs:
helmv3
helm: "${{ env.HELM_VERSION }}"
- name: Override chart dependencies
uses: ./.github/actions/override-chart-deps
if: ${{ inputs.overrideDeps != '[]' }}
with:
chart: ${{ matrix.chart }}
overrides: ${{ inputs.overrideDeps }}
- name: Run tests
run: |
helm plugin install https://github.com/vbehar/helm3-unittest --version v1.0.16
cd "charts/${{ matrix.chart }}"
helm dep update
helm unittest -f "tests/**/*_test.yaml" .
helm dep update "charts/${{ matrix.chart }}"
helm unittest -f "tests/**/*_test.yaml" "charts/${{ matrix.chart }}"
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
unittest_success:
@ -112,5 +131,5 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check unittest matrix status
if: ${{ (inputs.chartsToTest != '' && inputs.chartsToTest != '[]') && needs.unittest-chart.result != 'success' }}
if: ${{ (inputs.chartsToTest != '[]' && inputs.chartsToTest != '') && needs.unittest-chart.result != 'success' }}
run: exit 1

View file

@ -53,3 +53,21 @@ jobs:
with:
checkoutCommit: ${{ github.sha }}
chartsToTest: ${{ needs.pr-metadata.outputs.chartsToInstall }}
library-charts-test:
uses: bjw-s/helm-charts/.github/workflows/charts-test.yaml@main
needs:
- pr-metadata
with:
checkoutCommit: ${{ github.sha }}
chartsToTest: |-
${{
(
contains(fromJSON(needs.pr-metadata.outputs.addedOrModifiedCharts), 'library/common') &&
'["other/kah-common-chart"]'
) || '[]'
}}
overrideDeps: |-
[
{"name": "common", "repository": "file://../../library/common", "version": "*"}
]

View file

@ -22,3 +22,11 @@ tasks:
cmds:
- docker run --rm -it --workdir=/data --volume $(pwd):/data {{.CT_IMAGE}} ct lint --config {{.CT_CONFIG_FILE}} --all --excluded-charts "{{.CHARTS_EXCLUDED_FROM_LINT}}"
silent: true
dependency-cleanup:
desc: clean up chart dependencies
dir: "{{.PROJECT_DIR}}/charts"
cmds:
- find {{.PROJECT_DIR}}/charts/ -type f -name 'Chart.lock' -mindepth 1 -print0 | xargs -r -0 rm
- find {{.PROJECT_DIR}}/charts/ -type d -name 'charts' -mindepth 1 -print0 | xargs -r -0 rm -rf
silent: true

View file

@ -2,7 +2,7 @@ apiVersion: v2
name: common
description: Function library for k8s-at-home charts
type: library
version: 4.4.2
version: 4.5.0
kubeVersion: ">=1.16.0-0"
keywords:
- k8s-at-home
@ -13,5 +13,3 @@ maintainers:
email: me@bjw-s.dev
- name: onedr0p
email: devin.kray@gmail.com
- name: dirtycajunrice
email: nick@cajun.pro

View file

@ -1,6 +1,6 @@
# common
![Version: 4.4.2](https://img.shields.io/badge/Version-4.4.2-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square)
![Version: 4.5.0](https://img.shields.io/badge/Version-4.5.0-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square)
Function library for k8s-at-home charts
@ -45,7 +45,7 @@ N/A
## 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/library-charts/tree/main/charts/apps/common)
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
| Key | Type | Default | Description |
|-----|------|---------|-------------|
@ -60,25 +60,26 @@ N/A
| addons.codeserver.git.deployKeyBase64 | string | `""` | Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. |
| addons.codeserver.git.deployKeySecret | string | `""` | Existing secret containing SSH private key The chart expects it to be present under the `id_rsa` key. |
| addons.codeserver.image.pullPolicy | string | `"IfNotPresent"` | Specify the code-server image pull policy |
| addons.codeserver.image.repository | string | `"codercom/code-server"` | Specify the code-server image |
| addons.codeserver.image.tag | string | `"3.9.2"` | Specify the code-server image tag |
| addons.codeserver.image.repository | string | `"ghcr.io/coder/code-server"` | Specify the code-server image |
| addons.codeserver.image.tag | string | `"4.5.1"` | Specify the code-server image tag |
| addons.codeserver.ingress.enabled | bool | `false` | Enable an ingress for the code-server add-on. |
| addons.codeserver.ingress.ingressClassName | string | `nil` | Set the ingressClass that is used for this ingress. Requires Kubernetes >=1.19 |
| addons.codeserver.service.enabled | bool | `true` | Enable a service for the code-server add-on. |
| addons.codeserver.volumeMounts | list | `[]` | Specify a list of volumes that get mounted in the code-server container. At least 1 volumeMount is required! |
| addons.codeserver.workingDir | string | `""` | Specify the working dir that will be opened when code-server starts If not given, the app will default to the mountpah of the first specified volumeMount |
| addons.netshoot | object | See values.yaml | The common library supports adding a netshoot add-on to troubleshoot network issues within a Pod. It can be configured under this key. |
| addons.netshoot.enabled | bool | `false` | Enable running a netshoot container in the pod |
| addons.netshoot.env | object | `{}` | Set any environment variables for netshoot here |
| addons.netshoot.image.pullPolicy | string | `"Always"` | Specify the netshoot image pull policy |
| addons.netshoot.image.repository | string | `"nicolaka/netshoot"` | Specify the netshoot image |
| addons.netshoot.image.tag | string | `"latest"` | Specify the netshoot image tag |
| addons.netshoot.image.pullPolicy | string | `"IfNotPresent"` | Specify the netshoot image pull policy |
| addons.netshoot.image.repository | string | `"ghcr.io/nicolaka/netshoot"` | Specify the netshoot image |
| addons.netshoot.image.tag | string | `"v0.7"` | Specify the netshoot image tag |
| addons.promtail | object | See values.yaml | The common library supports adding a promtail add-on to to access logs and ship them to loki. It can be configured under this key. |
| addons.promtail.args | list | `[]` | Set promtail command line arguments |
| addons.promtail.enabled | bool | `false` | Enable running a promtail container in the pod |
| addons.promtail.env | object | `{}` | Set any environment variables for promtail here |
| addons.promtail.image.pullPolicy | string | `"IfNotPresent"` | Specify the promtail image pull policy |
| addons.promtail.image.repository | string | `"grafana/promtail"` | Specify the promtail image |
| addons.promtail.image.tag | string | `"2.2.0"` | Specify the promtail image tag |
| addons.promtail.image.repository | string | `"docker.io/grafana/promtail"` | Specify the promtail image |
| addons.promtail.image.tag | string | `"2.6.1"` | Specify the promtail image tag |
| addons.promtail.logs | list | `[]` | The paths to logs on the volume |
| addons.promtail.loki | string | `""` | The URL to Loki |
| addons.promtail.volumeMounts | list | `[]` | Specify a list of volumes that get mounted in the promtail container. At least 1 volumeMount is required! |
@ -88,6 +89,10 @@ N/A
| addons.vpn.configFileSecret | string | `nil` | Reference an existing secret that contains the VPN configuration file The chart expects it to be present under the `vpnConfigfile` key. |
| addons.vpn.enabled | bool | `false` | Enable running a VPN in the pod to route traffic through a VPN |
| addons.vpn.env | object | `{}` | All variables specified here will be added to the vpn sidecar container See the documentation of the VPN image for all config values |
| addons.vpn.gluetun | object | See below | Gluetun specific configuration -- Make sure to read the [documentation](https://github.com/qdm12/gluetun/wiki) to see how to configure this addon! |
| addons.vpn.gluetun.image.pullPolicy | string | `"IfNotPresent"` | Specify the Gluetun image pull policy |
| addons.vpn.gluetun.image.repository | string | `"docker.io/qmcgaw/gluetun"` | Specify the Gluetun image |
| addons.vpn.gluetun.image.tag | string | `"v3.30.0"` | Specify the Gluetun image tag |
| addons.vpn.livenessProbe | object | `{}` | Optionally specify a livenessProbe, e.g. to check if the connection is still being protected by the VPN |
| addons.vpn.networkPolicy.annotations | object | `{}` | Provide additional annotations which may be required. |
| addons.vpn.networkPolicy.egress | string | `nil` | The egress configuration for your network policy, All outbound traffic from the pod will be blocked unless specified here. [[ref]](https://kubernetes.io/docs/concepts/services-networking/network-policies/) [[recipes]](https://github.com/ahmetb/kubernetes-network-policy-recipes) |
@ -102,7 +107,7 @@ N/A
| addons.vpn.openvpn.image.tag | string | `"latest"` | Specify the openvpn client image tag |
| addons.vpn.scripts | object | See values.yaml | Provide custom up/down scripts that can be used by the vpn configuration. |
| addons.vpn.securityContext | object | See values.yaml | Set the VPN container securityContext |
| addons.vpn.type | string | `"openvpn"` | Specify the VPN type. Valid options are openvpn or wireguard |
| addons.vpn.type | string | `"openvpn"` | Specify the VPN type. Valid options are `openvpn`, `wireguard` and `gluetun`. |
| addons.vpn.wireguard | object | See below | WireGuard specific configuration |
| addons.vpn.wireguard.image.pullPolicy | string | `"IfNotPresent"` | Specify the WireGuard image pull policy |
| addons.vpn.wireguard.image.repository | string | `"ghcr.io/k8s-at-home/wireguard"` | Specify the WireGuard image |
@ -232,6 +237,25 @@ All notable changes to this library Helm chart will be documented in this file.
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).
### [4.5.0]
#### Added
- Support checksum/config annotations for configMaps to automate roll deployments/daemonsets/statefulsets after config changes.
- Support Gluetun VPN client add-on. Please see [the project repository](https://github.com/qdm12/gluetun) for more information and how to configure.
- Added support for the `envFrom` field in the VPN add-on.
#### Changed
- Updated and pinned `netshoot` add-on image to `v0.7`.
- Updated `code-server` add-on image to `4.5.1`.
- Updated `promtail` add-on image to `2.6.1`.
#### Fixed
- Added `ingressClassName` description under the `code-server` add-on.
- `valueFrom` now works correctly when `env` is a list of variables.
### [4.4.2]
#### Fixed

View file

@ -51,7 +51,7 @@ Read through the [values.yaml](./values.yaml) file. It has several commented out
{{- 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/library-charts/tree/main/charts/apps/common)
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
{{ template "chart.valuesTable" . }}
{{- end -}}

View file

@ -10,6 +10,25 @@ All notable changes to this library Helm chart will be documented in this file.
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).
### [4.5.0]
#### Added
- Support checksum/config annotations for configMaps to automate roll deployments/daemonsets/statefulsets after config changes.
- Support Gluetun VPN client add-on. Please see [the project repository](https://github.com/qdm12/gluetun) for more information and how to configure.
- Added support for the `envFrom` field in the VPN add-on.
#### Changed
- Updated and pinned `netshoot` add-on image to `v0.7`.
- Updated `code-server` add-on image to `4.5.1`.
- Updated `promtail` add-on image to `2.6.1`.
#### Fixed
- Added `ingressClassName` description under the `code-server` add-on.
- `valueFrom` now works correctly when `env` is a list of variables.
### [4.4.2]
#### Fixed

View file

@ -21,9 +21,9 @@ spec:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
{{- with include ("common.podAnnotations") . }}
annotations:
{{- toYaml . | nindent 8 }}
{{- . | nindent 8 }}
{{- end }}
labels:
{{- include "common.labels.selectorLabels" . | nindent 8 }}

View file

@ -39,9 +39,9 @@ spec:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
{{ if .Values.podAnnotations }}
{{- with include ("common.podAnnotations") . }}
annotations:
{{- tpl (toYaml .Values.podAnnotations) . | nindent 8 }}
{{- . | nindent 8 }}
{{- end }}
labels:
{{- include "common.labels.selectorLabels" . | nindent 8 }}

View file

@ -34,9 +34,9 @@ spec:
serviceName: {{ include "common.names.fullname" . }}
template:
metadata:
{{- with .Values.podAnnotations }}
{{- with include ("common.podAnnotations") . }}
annotations:
{{- toYaml . | nindent 8 }}
{{- . | nindent 8 }}
{{- end }}
labels:
{{- include "common.labels.selectorLabels" . | nindent 8 }}

View file

@ -12,6 +12,10 @@ It will include / inject the required templates based on the given values.
{{- include "common.addon.wireguard" . }}
{{- end -}}
{{- if eq "gluetun" .Values.addons.vpn.type -}}
{{- include "common.addon.gluetun" . }}
{{- end -}}
{{/* Include the configmap if not empty */}}
{{- $configmap := include "common.addon.vpn.configmap" . -}}
{{- if $configmap -}}

View file

@ -0,0 +1,11 @@
{{/*
Template to render gluetun addon. It will add the container to the list of additionalContainers.
*/}}
*/}}
{{- define "common.addon.gluetun" -}}
{{/* Append the gluetun container to the additionalContainers */}}
{{- $container := fromYaml (include "common.addon.gluetun.container" .) -}}
{{- if $container -}}
{{- $_ := set .Values.additionalContainers "addon-gluetun" $container -}}
{{- end -}}
{{- end -}}

View file

@ -0,0 +1,57 @@
{{/*
The gluetun sidecar container to be inserted.
*/}}
{{- define "common.addon.gluetun.container" -}}
name: gluetun
image: "{{ .Values.addons.vpn.gluetun.image.repository }}:{{ .Values.addons.vpn.gluetun.image.tag }}"
imagePullPolicy: {{ .Values.addons.vpn.gluetun.pullPolicy }}
{{- with .Values.addons.vpn.securityContext }}
securityContext:
{{- toYaml . | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.env }}
env:
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.envFrom }}
envFrom:
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.args }}
args:
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.configFileSecret .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down .Values.addons.vpn.additionalVolumeMounts .Values.persistence.shared.enabled }}
volumeMounts:
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.configFileSecret }}
- name: vpnconfig
mountPath: /gluetun/config.conf
subPath: vpnConfigfile
{{- end }}
{{- if .Values.addons.vpn.scripts.up }}
- name: vpnscript
mountPath: /gluetun/scripts/up.sh
subPath: up.sh
{{- end }}
{{- if .Values.addons.vpn.scripts.down }}
- name: vpnscript
mountPath: /gluetun/scripts/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 -}}

View file

@ -11,14 +11,15 @@ securityContext:
{{- end }}
{{- with .Values.addons.vpn.env }}
env:
{{- range $k, $v := . }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.envFrom }}
envFrom:
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.args }}
args:
{{- range .Values.addons.vpn.args }}
- {{ . | quote }}
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- if or .Values.addons.vpn.openvpn.auth .Values.addons.vpn.openvpn.authSecret }}
envFrom:

View file

@ -11,14 +11,15 @@ securityContext:
{{- end }}
{{- with .Values.addons.vpn.env }}
env:
{{- range $k, $v := . }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.envFrom }}
envFrom:
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- with .Values.addons.vpn.args }}
args:
{{- range .Values.addons.vpn.args }}
- {{ . | quote }}
{{- . | toYaml | nindent 2 }}
{{- end }}
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.configFileSecret .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down .Values.addons.vpn.additionalVolumeMounts .Values.persistence.shared.enabled }}
volumeMounts:

View file

@ -8,3 +8,20 @@
{{- end }}
{{- end }}
{{- end -}}
{{/* Determine the Pod annotations used in the controller */}}
{{- define "common.podAnnotations" -}}
{{- if .Values.podAnnotations -}}
{{- tpl (toYaml .Values.podAnnotations) . | nindent 0 -}}
{{- end -}}
{{- $configMapsFound := false -}}
{{- range $name, $configmap := .Values.configmap -}}
{{- if $configmap.enabled -}}
{{- $configMapsFound = true -}}
{{- end -}}
{{- end -}}
{{- if $configMapsFound -}}
{{- printf "checksum/config: %v" (include ("common.configmap") . | sha256sum) | nindent 0 -}}
{{- end -}}
{{- end -}}

View file

@ -47,7 +47,7 @@
{{- if hasKey $value "value" }}
{{- $value = $value.value -}}
{{- else if hasKey $value "valueFrom" }}
{{- toYaml $value | nindent 6 }}
{{- dict "valueFrom" $value.valueFrom | toYaml | nindent 6 }}
{{- else }}
{{- dict "valueFrom" $value | toYaml | nindent 6 }}
{{- end }}

View file

@ -483,7 +483,7 @@ addons:
# -- Enable running a VPN in the pod to route traffic through a VPN
enabled: false
# -- Specify the VPN type. Valid options are openvpn or wireguard
# -- Specify the VPN type. Valid options are `openvpn`, `wireguard` and `gluetun`.
type: openvpn
# -- OpenVPN specific configuration
@ -514,6 +514,18 @@ addons:
# -- Specify the WireGuard image pull policy
pullPolicy: IfNotPresent
# -- Gluetun specific configuration
# -- Make sure to read the [documentation](https://github.com/qdm12/gluetun/wiki) to see how to configure this addon!
# @default -- See below
gluetun:
image:
# -- Specify the Gluetun image
repository: docker.io/qmcgaw/gluetun
# -- Specify the Gluetun image tag
tag: v3.30.0
# -- Specify the Gluetun image pull policy
pullPolicy: IfNotPresent
# -- Set the VPN container securityContext
# @default -- See values.yaml
securityContext:
@ -605,9 +617,9 @@ addons:
image:
# -- Specify the code-server image
repository: codercom/code-server
repository: ghcr.io/coder/code-server
# -- Specify the code-server image tag
tag: 3.9.2
tag: 4.5.1
# -- Specify the code-server image pull policy
pullPolicy: IfNotPresent
@ -671,6 +683,11 @@ addons:
# kubernetes.io/tls-acme: "true"
labels: {}
# -- Set the ingressClass that is used for this ingress.
# Requires Kubernetes >=1.19
ingressClassName: # "nginx"
hosts:
- host: code.chart-example.local
paths:
@ -693,9 +710,9 @@ addons:
image:
# -- Specify the promtail image
repository: grafana/promtail
repository: docker.io/grafana/promtail
# -- Specify the promtail image tag
tag: 2.2.0
tag: 2.6.1
# -- Specify the promtail image pull policy
pullPolicy: IfNotPresent
@ -731,11 +748,11 @@ addons:
image:
# -- Specify the netshoot image
repository: nicolaka/netshoot
repository: ghcr.io/nicolaka/netshoot
# -- Specify the netshoot image tag
tag: latest
tag: v0.7
# -- Specify the netshoot image pull policy
pullPolicy: Always
pullPolicy: IfNotPresent
# -- Set any environment variables for netshoot here
env: {}

View file

@ -22,5 +22,9 @@
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# helm unit tests
tests/

View file

@ -45,7 +45,7 @@ tests:
- documentIndex: *AddonServiceDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: addon enabled with deployKey should pass
set:
@ -83,11 +83,11 @@ tests:
items:
- key: id_rsa
path: id_rsa
secretName: RELEASE-NAME-common-test-deploykey
secretName: RELEASE-NAME-kah-common-chart-deploykey
- documentIndex: *AddonDeployKeySecretDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-deploykey
value: RELEASE-NAME-kah-common-chart-deploykey
- it: addon enabled with InlineBase64 deployKey should pass
set:
@ -125,11 +125,11 @@ tests:
items:
- key: id_rsa
path: id_rsa
secretName: RELEASE-NAME-common-test-deploykey
secretName: RELEASE-NAME-kah-common-chart-deploykey
- documentIndex: *AddonDeployKeySecretDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-deploykey
value: RELEASE-NAME-kah-common-chart-deploykey
- it: addon enabled with existingSecret deployKey should pass
set:

View file

@ -68,11 +68,11 @@ tests:
items:
- key: vpnConfigfile
path: vpnConfigfile
secretName: RELEASE-NAME-common-test-vpnconfig
secretName: RELEASE-NAME-kah-common-chart-vpnconfig
- documentIndex: *AddonVPNConfigSecretDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-vpnconfig
value: RELEASE-NAME-kah-common-chart-vpnconfig
- it: addon enabled with existing configFile secret should pass
set:

View file

@ -20,8 +20,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -47,8 +47,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -81,7 +81,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -71,7 +71,7 @@ tests:
- documentIndex: 0
equal:
path: metadata.name
value: RELEASE-NAME-common-test-config
value: RELEASE-NAME-kah-common-chart-config
- it: with nameOverride should pass
set:
@ -88,4 +88,4 @@ tests:
- documentIndex: 0
equal:
path: metadata.name
value: RELEASE-NAME-common-test-http
value: RELEASE-NAME-kah-common-chart-http

View file

@ -15,4 +15,4 @@ tests:
equal:
path: spec.template.metadata.annotations
value:
checksum/config: 13f83afec54139bc9b797ac55ba4d79494f6fd94c0159101836ef127bec95a28
checksum/config: 08f1047e9078ea3a6e593bffc1bf2d1b7db4163b9bb0c8203d8c70f2a6a5e551

View file

@ -40,4 +40,4 @@ tests:
path: spec.template.spec.containers[0].envFrom[0]
value:
secretRef:
name: RELEASE-NAME-common-test
name: RELEASE-NAME-kah-common-chart

View file

@ -18,8 +18,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -44,8 +44,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -77,7 +77,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -18,8 +18,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -44,8 +44,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -77,7 +77,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -18,8 +18,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -44,8 +44,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -77,7 +77,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -10,7 +10,7 @@ tests:
- documentIndex: *ControllerDoc
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: daemonset should pass
set:
@ -22,7 +22,7 @@ tests:
- documentIndex: *ControllerDoc
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: statefulset should pass
set:
@ -34,7 +34,7 @@ tests:
- documentIndex: *ControllerDoc
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: disabled should pass
set:

View file

@ -18,8 +18,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -44,8 +44,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -77,7 +77,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -13,7 +13,7 @@ tests:
equal:
path: spec.rules[0].http.paths[0].backend
value:
serviceName: RELEASE-NAME-common-test
serviceName: RELEASE-NAME-kah-common-chart
servicePort: null
- it: custom service reference should pass

View file

@ -17,7 +17,7 @@ tests:
value:
name: config
persistentVolumeClaim:
claimName: RELEASE-NAME-common-test-config
claimName: RELEASE-NAME-kah-common-chart-config
- it: with existingClaim should pass
set:
@ -55,7 +55,7 @@ tests:
value:
name: claimWithoutSuffix
persistentVolumeClaim:
claimName: RELEASE-NAME-common-test
claimName: RELEASE-NAME-kah-common-chart
- it: custom suffix should pass
set:
@ -75,4 +75,4 @@ tests:
value:
name: claimWithNameOverride
persistentVolumeClaim:
claimName: RELEASE-NAME-common-test-suffix
claimName: RELEASE-NAME-kah-common-chart-suffix

View file

@ -65,7 +65,7 @@ tests:
value:
name: configmap
configMap:
name: RELEASE-NAME-common-test-config
name: RELEASE-NAME-kah-common-chart-config
- it: secret persistence type should pass
set:

View file

@ -18,8 +18,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: retain enabled should pass
set:
@ -41,8 +41,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -67,8 +67,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -100,7 +100,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -35,7 +35,7 @@ tests:
- documentIndex: *PersistentVolumeClaimDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-config
value: RELEASE-NAME-kah-common-chart-config
- it: without suffix should pass
set:
@ -49,7 +49,7 @@ tests:
- documentIndex: *PersistentVolumeClaimDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: with custom suffix should pass
set:
@ -63,4 +63,4 @@ tests:
- documentIndex: *PersistentVolumeClaimDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-custom
value: RELEASE-NAME-kah-common-chart-custom

View file

@ -16,8 +16,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
- it: custom metadata should pass
set:
@ -42,8 +42,8 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
helm.sh/chart: common-test-0.1.0
app.kubernetes.io/name: kah-common-chart
helm.sh/chart: kah-common-chart-1.1.2
test_label: test
- it: custom metadata with global metadata should pass
@ -75,7 +75,7 @@ tests:
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: common-test
app.kubernetes.io/name: kah-common-chart
global_label: test
helm.sh/chart: common-test-0.1.0
helm.sh/chart: kah-common-chart-1.1.2
test_label: test

View file

@ -12,7 +12,7 @@ tests:
- documentIndex: *ServiceDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test
value: RELEASE-NAME-kah-common-chart
- it: custom name suffix should pass
set:
@ -26,4 +26,4 @@ tests:
- documentIndex: *ServiceDocument
equal:
path: metadata.name
value: RELEASE-NAME-common-test-http
value: RELEASE-NAME-kah-common-chart-http