mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-03 08:37:03 +02:00
More CI improvements
This commit is contained in:
parent
d83abae451
commit
bcded223a6
41 changed files with 359 additions and 120 deletions
|
@ -97,8 +97,10 @@ function filterChangedCharts(files, parentFolder) {
|
||||||
let changedCharts = [];
|
let changedCharts = [];
|
||||||
filteredChartFiles.forEach((file) => {
|
filteredChartFiles.forEach((file) => {
|
||||||
const absoluteParentFolder = path.resolve(parentFolder);
|
const absoluteParentFolder = path.resolve(parentFolder);
|
||||||
const absoluteChartFolder = path.resolve(path.dirname(file));
|
const absoluteFileDirname = path.resolve(path.dirname(file));
|
||||||
const chart = absoluteChartFolder.slice(absoluteParentFolder.length + 1);
|
const relativeFileDirname = absoluteFileDirname.slice(absoluteParentFolder.length + 1);
|
||||||
|
const chartPathParts = relativeFileDirname.split("/");
|
||||||
|
const chart = `${chartPathParts[0]}/${chartPathParts[1]}`;
|
||||||
changedCharts.push(chart);
|
changedCharts.push(chart);
|
||||||
});
|
});
|
||||||
// Return only unique items
|
// Return only unique items
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -71,8 +71,12 @@ function filterChangedCharts(files: string[], parentFolder: string) {
|
||||||
let changedCharts: string[] = [];
|
let changedCharts: string[] = [];
|
||||||
filteredChartFiles.forEach((file) => {
|
filteredChartFiles.forEach((file) => {
|
||||||
const absoluteParentFolder = path.resolve(parentFolder);
|
const absoluteParentFolder = path.resolve(parentFolder);
|
||||||
const absoluteChartFolder = path.resolve(path.dirname(file));
|
const absoluteFileDirname = path.resolve(path.dirname(file));
|
||||||
const chart = absoluteChartFolder.slice(absoluteParentFolder.length + 1);
|
const relativeFileDirname = absoluteFileDirname.slice(
|
||||||
|
absoluteParentFolder.length + 1
|
||||||
|
);
|
||||||
|
const chartPathParts = relativeFileDirname.split("/");
|
||||||
|
const chart = `${chartPathParts[0]}/${chartPathParts[1]}`;
|
||||||
changedCharts.push(chart);
|
changedCharts.push(chart);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
35
.github/actions/override-chart-deps/action.yaml
vendored
Normal file
35
.github/actions/override-chart-deps/action.yaml
vendored
Normal 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}
|
35
.github/workflows/charts-test.yaml
vendored
35
.github/workflows/charts-test.yaml
vendored
|
@ -9,8 +9,14 @@ on:
|
||||||
chartsToTest:
|
chartsToTest:
|
||||||
description: >
|
description: >
|
||||||
A JSON encoded array of charts to lint
|
A JSON encoded array of charts to lint
|
||||||
required: true
|
|
||||||
type: string
|
type: string
|
||||||
|
required: true
|
||||||
|
overrideDeps:
|
||||||
|
description: >
|
||||||
|
A JSON encoded array of dependencies to override before testing
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
default: '[]'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
HELM_VERSION: 3.9.2
|
HELM_VERSION: 3.9.2
|
||||||
|
@ -19,7 +25,7 @@ jobs:
|
||||||
install-chart:
|
install-chart:
|
||||||
name: Install chart
|
name: Install chart
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
if: ${{ inputs.chartsToTest != '' && inputs.chartsToTest != '[]' }}
|
if: ${{ inputs.chartsToTest != '[]' && inputs.chartsToTest != '' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
chart: ${{ fromJSON(inputs.chartsToTest) }}
|
chart: ${{ fromJSON(inputs.chartsToTest) }}
|
||||||
|
@ -57,6 +63,13 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
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)
|
- name: Run chart-testing (install)
|
||||||
run: ct install --config .ci/ct/ct.yaml --charts "charts/${{ matrix.chart }}"
|
run: ct install --config .ci/ct/ct.yaml --charts "charts/${{ matrix.chart }}"
|
||||||
|
|
||||||
|
@ -70,13 +83,13 @@ jobs:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Check install matrix status
|
- 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
|
run: exit 1
|
||||||
|
|
||||||
unittest-chart:
|
unittest-chart:
|
||||||
name: Unit-test chart
|
name: Unit-test chart
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
if: ${{ inputs.chartsToTest != '' && inputs.chartsToTest != '[]' }}
|
if: ${{ inputs.chartsToTest != '[]' && inputs.chartsToTest != '' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
chart: ${{ fromJSON(inputs.chartsToTest) }}
|
chart: ${{ fromJSON(inputs.chartsToTest) }}
|
||||||
|
@ -95,12 +108,18 @@ jobs:
|
||||||
helmv3
|
helmv3
|
||||||
helm: "${{ env.HELM_VERSION }}"
|
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
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
helm plugin install https://github.com/vbehar/helm3-unittest --version v1.0.16
|
helm plugin install https://github.com/vbehar/helm3-unittest --version v1.0.16
|
||||||
cd "charts/${{ matrix.chart }}"
|
helm dep update "charts/${{ matrix.chart }}"
|
||||||
helm dep update
|
helm unittest -f "tests/**/*_test.yaml" "charts/${{ matrix.chart }}"
|
||||||
helm unittest -f "tests/**/*_test.yaml" .
|
|
||||||
|
|
||||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||||
unittest_success:
|
unittest_success:
|
||||||
|
@ -112,5 +131,5 @@ jobs:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Check unittest matrix status
|
- 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
|
run: exit 1
|
||||||
|
|
18
.github/workflows/pr-validate.yaml
vendored
18
.github/workflows/pr-validate.yaml
vendored
|
@ -53,3 +53,21 @@ jobs:
|
||||||
with:
|
with:
|
||||||
checkoutCommit: ${{ github.sha }}
|
checkoutCommit: ${{ github.sha }}
|
||||||
chartsToTest: ${{ needs.pr-metadata.outputs.chartsToInstall }}
|
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": "*"}
|
||||||
|
]
|
||||||
|
|
|
@ -22,3 +22,11 @@ tasks:
|
||||||
cmds:
|
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}}"
|
- 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
|
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
|
||||||
|
|
|
@ -2,7 +2,7 @@ apiVersion: v2
|
||||||
name: common
|
name: common
|
||||||
description: Function library for k8s-at-home charts
|
description: Function library for k8s-at-home charts
|
||||||
type: library
|
type: library
|
||||||
version: 4.4.2
|
version: 4.5.0
|
||||||
kubeVersion: ">=1.16.0-0"
|
kubeVersion: ">=1.16.0-0"
|
||||||
keywords:
|
keywords:
|
||||||
- k8s-at-home
|
- k8s-at-home
|
||||||
|
@ -13,5 +13,3 @@ maintainers:
|
||||||
email: me@bjw-s.dev
|
email: me@bjw-s.dev
|
||||||
- name: onedr0p
|
- name: onedr0p
|
||||||
email: devin.kray@gmail.com
|
email: devin.kray@gmail.com
|
||||||
- name: dirtycajunrice
|
|
||||||
email: nick@cajun.pro
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# common
|
# common
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Function library for k8s-at-home charts
|
Function library for k8s-at-home charts
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ N/A
|
||||||
|
|
||||||
## Values
|
## 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 |
|
| 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.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.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.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.repository | string | `"ghcr.io/coder/code-server"` | Specify the code-server image |
|
||||||
| addons.codeserver.image.tag | string | `"3.9.2"` | Specify the code-server image tag |
|
| 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.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.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.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.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 | 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.enabled | bool | `false` | Enable running a netshoot container in the pod |
|
||||||
| addons.netshoot.env | object | `{}` | Set any environment variables for netshoot here |
|
| 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.pullPolicy | string | `"IfNotPresent"` | Specify the netshoot image pull policy |
|
||||||
| addons.netshoot.image.repository | string | `"nicolaka/netshoot"` | Specify the netshoot image |
|
| addons.netshoot.image.repository | string | `"ghcr.io/nicolaka/netshoot"` | Specify the netshoot image |
|
||||||
| addons.netshoot.image.tag | string | `"latest"` | Specify the netshoot image tag |
|
| 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 | 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.args | list | `[]` | Set promtail command line arguments |
|
||||||
| addons.promtail.enabled | bool | `false` | Enable running a promtail container in the pod |
|
| 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.env | object | `{}` | Set any environment variables for promtail here |
|
||||||
| addons.promtail.image.pullPolicy | string | `"IfNotPresent"` | Specify the promtail image pull policy |
|
| 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.repository | string | `"docker.io/grafana/promtail"` | Specify the promtail image |
|
||||||
| addons.promtail.image.tag | string | `"2.2.0"` | Specify the promtail image tag |
|
| 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.logs | list | `[]` | The paths to logs on the volume |
|
||||||
| addons.promtail.loki | string | `""` | The URL to Loki |
|
| 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! |
|
| 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.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.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.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.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.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) |
|
| 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.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.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.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 | object | See below | WireGuard specific configuration |
|
||||||
| addons.vpn.wireguard.image.pullPolicy | string | `"IfNotPresent"` | Specify the WireGuard image pull policy |
|
| 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 |
|
| 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/),
|
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).
|
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]
|
### [4.4.2]
|
||||||
|
|
||||||
#### Fixed
|
#### Fixed
|
||||||
|
|
|
@ -51,7 +51,7 @@ Read through the [values.yaml](./values.yaml) file. It has several commented out
|
||||||
{{- define "custom.valuesSection" -}}
|
{{- define "custom.valuesSection" -}}
|
||||||
## Values
|
## 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" . }}
|
{{ template "chart.valuesTable" . }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -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/),
|
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).
|
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]
|
### [4.4.2]
|
||||||
|
|
||||||
#### Fixed
|
#### Fixed
|
||||||
|
|
|
@ -21,9 +21,9 @@ spec:
|
||||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- with .Values.podAnnotations }}
|
{{- with include ("common.podAnnotations") . }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||||
|
|
|
@ -39,9 +39,9 @@ spec:
|
||||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{ if .Values.podAnnotations }}
|
{{- with include ("common.podAnnotations") . }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- tpl (toYaml .Values.podAnnotations) . | nindent 8 }}
|
{{- . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||||
|
|
|
@ -34,9 +34,9 @@ spec:
|
||||||
serviceName: {{ include "common.names.fullname" . }}
|
serviceName: {{ include "common.names.fullname" . }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- with .Values.podAnnotations }}
|
{{- with include ("common.podAnnotations") . }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||||
|
|
|
@ -12,6 +12,10 @@ It will include / inject the required templates based on the given values.
|
||||||
{{- include "common.addon.wireguard" . }}
|
{{- include "common.addon.wireguard" . }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if eq "gluetun" .Values.addons.vpn.type -}}
|
||||||
|
{{- include "common.addon.gluetun" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/* Include the configmap if not empty */}}
|
{{/* Include the configmap if not empty */}}
|
||||||
{{- $configmap := include "common.addon.vpn.configmap" . -}}
|
{{- $configmap := include "common.addon.vpn.configmap" . -}}
|
||||||
{{- if $configmap -}}
|
{{- if $configmap -}}
|
||||||
|
|
|
@ -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 -}}
|
|
@ -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 -}}
|
|
@ -11,14 +11,15 @@ securityContext:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.addons.vpn.env }}
|
{{- with .Values.addons.vpn.env }}
|
||||||
env:
|
env:
|
||||||
{{- range $k, $v := . }}
|
{{- . | toYaml | nindent 2 }}
|
||||||
- name: {{ $k }}
|
|
||||||
value: {{ $v | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.addons.vpn.envFrom }}
|
||||||
|
envFrom:
|
||||||
|
{{- . | toYaml | nindent 2 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.addons.vpn.args }}
|
||||||
args:
|
args:
|
||||||
{{- range .Values.addons.vpn.args }}
|
{{- . | toYaml | nindent 2 }}
|
||||||
- {{ . | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if or .Values.addons.vpn.openvpn.auth .Values.addons.vpn.openvpn.authSecret }}
|
{{- if or .Values.addons.vpn.openvpn.auth .Values.addons.vpn.openvpn.authSecret }}
|
||||||
envFrom:
|
envFrom:
|
||||||
|
|
|
@ -11,14 +11,15 @@ securityContext:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.addons.vpn.env }}
|
{{- with .Values.addons.vpn.env }}
|
||||||
env:
|
env:
|
||||||
{{- range $k, $v := . }}
|
{{- . | toYaml | nindent 2 }}
|
||||||
- name: {{ $k }}
|
|
||||||
value: {{ $v | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.addons.vpn.envFrom }}
|
||||||
|
envFrom:
|
||||||
|
{{- . | toYaml | nindent 2 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.addons.vpn.args }}
|
||||||
args:
|
args:
|
||||||
{{- range .Values.addons.vpn.args }}
|
{{- . | toYaml | nindent 2 }}
|
||||||
- {{ . | quote }}
|
|
||||||
{{- end }}
|
{{- 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 }}
|
{{- 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:
|
volumeMounts:
|
||||||
|
|
|
@ -8,3 +8,20 @@
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- 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 -}}
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
{{- if hasKey $value "value" }}
|
{{- if hasKey $value "value" }}
|
||||||
{{- $value = $value.value -}}
|
{{- $value = $value.value -}}
|
||||||
{{- else if hasKey $value "valueFrom" }}
|
{{- else if hasKey $value "valueFrom" }}
|
||||||
{{- toYaml $value | nindent 6 }}
|
{{- dict "valueFrom" $value.valueFrom | toYaml | nindent 6 }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- dict "valueFrom" $value | toYaml | nindent 6 }}
|
{{- dict "valueFrom" $value | toYaml | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -483,7 +483,7 @@ addons:
|
||||||
# -- Enable running a VPN in the pod to route traffic through a VPN
|
# -- Enable running a VPN in the pod to route traffic through a VPN
|
||||||
enabled: false
|
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
|
type: openvpn
|
||||||
|
|
||||||
# -- OpenVPN specific configuration
|
# -- OpenVPN specific configuration
|
||||||
|
@ -514,6 +514,18 @@ addons:
|
||||||
# -- Specify the WireGuard image pull policy
|
# -- Specify the WireGuard image pull policy
|
||||||
pullPolicy: IfNotPresent
|
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
|
# -- Set the VPN container securityContext
|
||||||
# @default -- See values.yaml
|
# @default -- See values.yaml
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -605,9 +617,9 @@ addons:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
# -- Specify the code-server image
|
# -- Specify the code-server image
|
||||||
repository: codercom/code-server
|
repository: ghcr.io/coder/code-server
|
||||||
# -- Specify the code-server image tag
|
# -- Specify the code-server image tag
|
||||||
tag: 3.9.2
|
tag: 4.5.1
|
||||||
# -- Specify the code-server image pull policy
|
# -- Specify the code-server image pull policy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
@ -671,6 +683,11 @@ addons:
|
||||||
# kubernetes.io/tls-acme: "true"
|
# kubernetes.io/tls-acme: "true"
|
||||||
|
|
||||||
labels: {}
|
labels: {}
|
||||||
|
|
||||||
|
# -- Set the ingressClass that is used for this ingress.
|
||||||
|
# Requires Kubernetes >=1.19
|
||||||
|
ingressClassName: # "nginx"
|
||||||
|
|
||||||
hosts:
|
hosts:
|
||||||
- host: code.chart-example.local
|
- host: code.chart-example.local
|
||||||
paths:
|
paths:
|
||||||
|
@ -693,9 +710,9 @@ addons:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
# -- Specify the promtail image
|
# -- Specify the promtail image
|
||||||
repository: grafana/promtail
|
repository: docker.io/grafana/promtail
|
||||||
# -- Specify the promtail image tag
|
# -- Specify the promtail image tag
|
||||||
tag: 2.2.0
|
tag: 2.6.1
|
||||||
# -- Specify the promtail image pull policy
|
# -- Specify the promtail image pull policy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
@ -731,11 +748,11 @@ addons:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
# -- Specify the netshoot image
|
# -- Specify the netshoot image
|
||||||
repository: nicolaka/netshoot
|
repository: ghcr.io/nicolaka/netshoot
|
||||||
# -- Specify the netshoot image tag
|
# -- Specify the netshoot image tag
|
||||||
tag: latest
|
tag: v0.7
|
||||||
# -- Specify the netshoot image pull policy
|
# -- Specify the netshoot image pull policy
|
||||||
pullPolicy: Always
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# -- Set any environment variables for netshoot here
|
# -- Set any environment variables for netshoot here
|
||||||
env: {}
|
env: {}
|
||||||
|
|
|
@ -22,5 +22,9 @@
|
||||||
.vscode/
|
.vscode/
|
||||||
# OWNERS file for Kubernetes
|
# OWNERS file for Kubernetes
|
||||||
OWNERS
|
OWNERS
|
||||||
|
|
||||||
# helm-docs templates
|
# helm-docs templates
|
||||||
*.gotmpl
|
*.gotmpl
|
||||||
|
|
||||||
|
# helm unit tests
|
||||||
|
tests/
|
||||||
|
|
|
@ -45,7 +45,7 @@ tests:
|
||||||
- documentIndex: *AddonServiceDocument
|
- documentIndex: *AddonServiceDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: addon enabled with deployKey should pass
|
- it: addon enabled with deployKey should pass
|
||||||
set:
|
set:
|
||||||
|
@ -83,11 +83,11 @@ tests:
|
||||||
items:
|
items:
|
||||||
- key: id_rsa
|
- key: id_rsa
|
||||||
path: id_rsa
|
path: id_rsa
|
||||||
secretName: RELEASE-NAME-common-test-deploykey
|
secretName: RELEASE-NAME-kah-common-chart-deploykey
|
||||||
- documentIndex: *AddonDeployKeySecretDocument
|
- documentIndex: *AddonDeployKeySecretDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-deploykey
|
value: RELEASE-NAME-kah-common-chart-deploykey
|
||||||
|
|
||||||
- it: addon enabled with InlineBase64 deployKey should pass
|
- it: addon enabled with InlineBase64 deployKey should pass
|
||||||
set:
|
set:
|
||||||
|
@ -125,11 +125,11 @@ tests:
|
||||||
items:
|
items:
|
||||||
- key: id_rsa
|
- key: id_rsa
|
||||||
path: id_rsa
|
path: id_rsa
|
||||||
secretName: RELEASE-NAME-common-test-deploykey
|
secretName: RELEASE-NAME-kah-common-chart-deploykey
|
||||||
- documentIndex: *AddonDeployKeySecretDocument
|
- documentIndex: *AddonDeployKeySecretDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-deploykey
|
value: RELEASE-NAME-kah-common-chart-deploykey
|
||||||
|
|
||||||
- it: addon enabled with existingSecret deployKey should pass
|
- it: addon enabled with existingSecret deployKey should pass
|
||||||
set:
|
set:
|
||||||
|
|
|
@ -68,11 +68,11 @@ tests:
|
||||||
items:
|
items:
|
||||||
- key: vpnConfigfile
|
- key: vpnConfigfile
|
||||||
path: vpnConfigfile
|
path: vpnConfigfile
|
||||||
secretName: RELEASE-NAME-common-test-vpnconfig
|
secretName: RELEASE-NAME-kah-common-chart-vpnconfig
|
||||||
- documentIndex: *AddonVPNConfigSecretDocument
|
- documentIndex: *AddonVPNConfigSecretDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
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
|
- it: addon enabled with existing configFile secret should pass
|
||||||
set:
|
set:
|
||||||
|
|
|
@ -20,8 +20,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -47,8 +47,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -81,7 +81,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -71,7 +71,7 @@ tests:
|
||||||
- documentIndex: 0
|
- documentIndex: 0
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-config
|
value: RELEASE-NAME-kah-common-chart-config
|
||||||
|
|
||||||
- it: with nameOverride should pass
|
- it: with nameOverride should pass
|
||||||
set:
|
set:
|
||||||
|
@ -88,4 +88,4 @@ tests:
|
||||||
- documentIndex: 0
|
- documentIndex: 0
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-http
|
value: RELEASE-NAME-kah-common-chart-http
|
||||||
|
|
|
@ -15,4 +15,4 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: spec.template.metadata.annotations
|
path: spec.template.metadata.annotations
|
||||||
value:
|
value:
|
||||||
checksum/config: 13f83afec54139bc9b797ac55ba4d79494f6fd94c0159101836ef127bec95a28
|
checksum/config: 08f1047e9078ea3a6e593bffc1bf2d1b7db4163b9bb0c8203d8c70f2a6a5e551
|
||||||
|
|
|
@ -40,4 +40,4 @@ tests:
|
||||||
path: spec.template.spec.containers[0].envFrom[0]
|
path: spec.template.spec.containers[0].envFrom[0]
|
||||||
value:
|
value:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: RELEASE-NAME-common-test
|
name: RELEASE-NAME-kah-common-chart
|
||||||
|
|
|
@ -18,8 +18,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -44,8 +44,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -77,7 +77,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -18,8 +18,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -44,8 +44,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -77,7 +77,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -18,8 +18,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -44,8 +44,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -77,7 +77,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -10,7 +10,7 @@ tests:
|
||||||
- documentIndex: *ControllerDoc
|
- documentIndex: *ControllerDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: daemonset should pass
|
- it: daemonset should pass
|
||||||
set:
|
set:
|
||||||
|
@ -22,7 +22,7 @@ tests:
|
||||||
- documentIndex: *ControllerDoc
|
- documentIndex: *ControllerDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: statefulset should pass
|
- it: statefulset should pass
|
||||||
set:
|
set:
|
||||||
|
@ -34,7 +34,7 @@ tests:
|
||||||
- documentIndex: *ControllerDoc
|
- documentIndex: *ControllerDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: disabled should pass
|
- it: disabled should pass
|
||||||
set:
|
set:
|
||||||
|
|
|
@ -18,8 +18,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -44,8 +44,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -77,7 +77,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -13,7 +13,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: spec.rules[0].http.paths[0].backend
|
path: spec.rules[0].http.paths[0].backend
|
||||||
value:
|
value:
|
||||||
serviceName: RELEASE-NAME-common-test
|
serviceName: RELEASE-NAME-kah-common-chart
|
||||||
servicePort: null
|
servicePort: null
|
||||||
|
|
||||||
- it: custom service reference should pass
|
- it: custom service reference should pass
|
||||||
|
|
|
@ -17,7 +17,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
name: config
|
name: config
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: RELEASE-NAME-common-test-config
|
claimName: RELEASE-NAME-kah-common-chart-config
|
||||||
|
|
||||||
- it: with existingClaim should pass
|
- it: with existingClaim should pass
|
||||||
set:
|
set:
|
||||||
|
@ -55,7 +55,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
name: claimWithoutSuffix
|
name: claimWithoutSuffix
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: RELEASE-NAME-common-test
|
claimName: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: custom suffix should pass
|
- it: custom suffix should pass
|
||||||
set:
|
set:
|
||||||
|
@ -75,4 +75,4 @@ tests:
|
||||||
value:
|
value:
|
||||||
name: claimWithNameOverride
|
name: claimWithNameOverride
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: RELEASE-NAME-common-test-suffix
|
claimName: RELEASE-NAME-kah-common-chart-suffix
|
||||||
|
|
|
@ -65,7 +65,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
name: configmap
|
name: configmap
|
||||||
configMap:
|
configMap:
|
||||||
name: RELEASE-NAME-common-test-config
|
name: RELEASE-NAME-kah-common-chart-config
|
||||||
|
|
||||||
- it: secret persistence type should pass
|
- it: secret persistence type should pass
|
||||||
set:
|
set:
|
||||||
|
|
|
@ -18,8 +18,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: retain enabled should pass
|
- it: retain enabled should pass
|
||||||
set:
|
set:
|
||||||
|
@ -41,8 +41,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -67,8 +67,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -100,7 +100,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -35,7 +35,7 @@ tests:
|
||||||
- documentIndex: *PersistentVolumeClaimDocument
|
- documentIndex: *PersistentVolumeClaimDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-config
|
value: RELEASE-NAME-kah-common-chart-config
|
||||||
|
|
||||||
- it: without suffix should pass
|
- it: without suffix should pass
|
||||||
set:
|
set:
|
||||||
|
@ -49,7 +49,7 @@ tests:
|
||||||
- documentIndex: *PersistentVolumeClaimDocument
|
- documentIndex: *PersistentVolumeClaimDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: with custom suffix should pass
|
- it: with custom suffix should pass
|
||||||
set:
|
set:
|
||||||
|
@ -63,4 +63,4 @@ tests:
|
||||||
- documentIndex: *PersistentVolumeClaimDocument
|
- documentIndex: *PersistentVolumeClaimDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-custom
|
value: RELEASE-NAME-kah-common-chart-custom
|
||||||
|
|
|
@ -16,8 +16,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
|
|
||||||
- it: custom metadata should pass
|
- it: custom metadata should pass
|
||||||
set:
|
set:
|
||||||
|
@ -42,8 +42,8 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
||||||
- it: custom metadata with global metadata should pass
|
- it: custom metadata with global metadata should pass
|
||||||
|
@ -75,7 +75,7 @@ tests:
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: common-test
|
app.kubernetes.io/name: kah-common-chart
|
||||||
global_label: test
|
global_label: test
|
||||||
helm.sh/chart: common-test-0.1.0
|
helm.sh/chart: kah-common-chart-1.1.2
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -12,7 +12,7 @@ tests:
|
||||||
- documentIndex: *ServiceDocument
|
- documentIndex: *ServiceDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test
|
value: RELEASE-NAME-kah-common-chart
|
||||||
|
|
||||||
- it: custom name suffix should pass
|
- it: custom name suffix should pass
|
||||||
set:
|
set:
|
||||||
|
@ -26,4 +26,4 @@ tests:
|
||||||
- documentIndex: *ServiceDocument
|
- documentIndex: *ServiceDocument
|
||||||
equal:
|
equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-common-test-http
|
value: RELEASE-NAME-kah-common-chart-http
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue