mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-03 08:37:03 +02:00
feat(common): Release v2.0.3 (#203)
Co-authored-by: JJGadgets <git@jjgadgets.tech> Co-authored-by: bjw-s-bot[bot] <87358111+bjw-s-bot[bot]@users.noreply.github.com>
This commit is contained in:
parent
f729651dbe
commit
ed015ee74b
12 changed files with 245 additions and 46 deletions
|
@ -75,7 +75,7 @@ jobs:
|
|||
helm repo index . --url https://bjw-s.github.io/helm-charts/
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
id: auto-commit
|
||||
with:
|
||||
repository: dest
|
||||
|
|
5
.github/workflows/charts-release-oci.yaml
vendored
5
.github/workflows/charts-release-oci.yaml
vendored
|
@ -10,11 +10,6 @@ on:
|
|||
default: "[]"
|
||||
required: false
|
||||
type: string
|
||||
secrets:
|
||||
BJWS_APP_ID:
|
||||
required: true
|
||||
BJWS_APP_PRIVATE_KEY:
|
||||
required: true
|
||||
|
||||
env:
|
||||
HELM_VERSION: 3.11.2
|
||||
|
|
25
.github/workflows/charts-release.yaml
vendored
25
.github/workflows/charts-release.yaml
vendored
|
@ -26,8 +26,8 @@ jobs:
|
|||
name: Prepare data required for release
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
libraryChartsToRelease: ${{ steps.collect-charts.outputs.chartsLibrary }}
|
||||
applicationChartsToRelease: ${{ steps.collect-charts.outputs.chartsApplication }}
|
||||
libraryChartsToRelease: ${{ steps.collect-charts.outputs.chartsLibraryToRelease }}
|
||||
applicationChartsToRelease: ${{ steps.collect-charts.outputs.chartsApplicationToRelease }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
|
@ -40,6 +40,7 @@ jobs:
|
|||
with:
|
||||
repoConfigFile: ./.ci/repo-config.yaml
|
||||
overrideCharts: "[${{ inputs.charts }}]"
|
||||
requireHeadAheadOfBase: false
|
||||
|
||||
release-library-charts:
|
||||
name: Release Library charts to GitHub pages
|
||||
|
@ -50,6 +51,16 @@ jobs:
|
|||
charts: "${{ needs.prepare.outputs.libraryChartsToRelease }}"
|
||||
secrets: inherit
|
||||
|
||||
tag-library-charts:
|
||||
name: Create git tags for library charts
|
||||
uses: ./.github/workflows/tag-charts.yaml
|
||||
needs:
|
||||
- prepare
|
||||
- release-library-charts
|
||||
with:
|
||||
charts: "${{ needs.prepare.outputs.libraryChartsToRelease }}"
|
||||
secrets: inherit
|
||||
|
||||
release-application-charts:
|
||||
name: Release Application charts to GitHub pages
|
||||
uses: ./.github/workflows/charts-release-ghpages.yaml
|
||||
|
@ -60,6 +71,16 @@ jobs:
|
|||
charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}"
|
||||
secrets: inherit
|
||||
|
||||
tag-application-charts:
|
||||
name: Create git tags for application charts
|
||||
uses: ./.github/workflows/tag-charts.yaml
|
||||
needs:
|
||||
- prepare
|
||||
- release-application-charts
|
||||
with:
|
||||
charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}"
|
||||
secrets: inherit
|
||||
|
||||
release-github-oci:
|
||||
name: Release Application charts to GitHub Container Registry
|
||||
uses: ./.github/workflows/charts-release-oci.yaml
|
||||
|
|
54
.github/workflows/tag-charts.yaml
vendored
Normal file
54
.github/workflows/tag-charts.yaml
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
name: "Charts: Create git tag"
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
charts:
|
||||
description: >
|
||||
Json encoded list of Helm charts to release.
|
||||
Defaults to releasing everything.
|
||||
default: "[]"
|
||||
required: false
|
||||
type: string
|
||||
secrets:
|
||||
BJWS_APP_ID:
|
||||
required: true
|
||||
BJWS_APP_PRIVATE_KEY:
|
||||
required: true
|
||||
|
||||
env:
|
||||
CHARTS_SRC_DIR: "charts"
|
||||
|
||||
jobs:
|
||||
tag-charts:
|
||||
name: Tag charts
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Get GitHub API token
|
||||
id: get-app-token
|
||||
uses: getsentry/action-github-app-token@v2
|
||||
with:
|
||||
app_id: ${{ secrets.BJWS_APP_ID }}
|
||||
private_key: ${{ secrets.BJWS_APP_PRIVATE_KEY }}
|
||||
|
||||
- name: Checkout chart sources
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
with:
|
||||
token: ${{ steps.get-app-token.outputs.token }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Create git tag for charts
|
||||
shell: bash
|
||||
run: |
|
||||
CHARTS=( $(yq --null-input e '${{ inputs.charts }}[]' ) )
|
||||
|
||||
for CHART in "${CHARTS[@]}" ; do
|
||||
mapfile -t CHART_PATH_PARTS < <(echo "$CHART" | tr '/' '\n')
|
||||
CHART_TYPE=${CHART_PATH_PARTS[0]}
|
||||
CHART_NAME=${CHART_PATH_PARTS[1]}
|
||||
CHART_VERSION=$(yq e '.version' ${{ env.CHARTS_SRC_DIR }}/${CHART}/Chart.yaml)
|
||||
|
||||
git tag --force "${CHART_NAME}-${CHART_VERSION}"
|
||||
done
|
||||
|
||||
git push --tags --force
|
|
@ -38,6 +38,12 @@ tests:
|
|||
image:
|
||||
repository: ghcr.io/mendhak/http-https-echo
|
||||
tag: 30
|
||||
second:
|
||||
containers:
|
||||
first-container:
|
||||
image:
|
||||
repository: ghcr.io/mendhak/http-https-echo
|
||||
tag: 30
|
||||
|
||||
persistence:
|
||||
data:
|
||||
|
@ -54,37 +60,46 @@ tests:
|
|||
second-container:
|
||||
- path: /appdata/config
|
||||
readOnly: true
|
||||
second:
|
||||
first-container:
|
||||
- path: /second-pod/config.yaml
|
||||
readOnly: false
|
||||
subPath: config.yaml
|
||||
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
- documentIndex: &FirstDeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
- documentIndex: *FirstDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].volumeMounts[0]
|
||||
path: spec.template.spec.containers[0].volumeMounts
|
||||
value:
|
||||
name: data
|
||||
mountPath: /globalTest
|
||||
- documentIndex: *DeploymentDoc
|
||||
- mountPath: /globalTest
|
||||
name: data
|
||||
- mountPath: /data/config.yaml
|
||||
name: data
|
||||
subPath: config.yaml
|
||||
- documentIndex: *FirstDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].volumeMounts[1]
|
||||
path: spec.template.spec.containers[1].volumeMounts
|
||||
value:
|
||||
name: data
|
||||
mountPath: /data/config.yaml
|
||||
subPath: config.yaml
|
||||
- documentIndex: *DeploymentDoc
|
||||
- mountPath: /globalTest
|
||||
name: data
|
||||
- mountPath: /appdata/config
|
||||
name: data
|
||||
readOnly: true
|
||||
- documentIndex: &SecondDeploymentDoc 1
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *SecondDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[1].volumeMounts[0]
|
||||
path: spec.template.spec.containers[0].volumeMounts
|
||||
value:
|
||||
name: data
|
||||
mountPath: /globalTest
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[1].volumeMounts[1]
|
||||
value:
|
||||
name: data
|
||||
mountPath: /appdata/config
|
||||
readOnly: true
|
||||
- mountPath: /globalTest
|
||||
name: data
|
||||
- mountPath: /second-pod/config.yaml
|
||||
name: data
|
||||
subPath: config.yaml
|
||||
|
||||
- it: emptyDir should pass
|
||||
set:
|
||||
|
|
109
charts/library/common-test/tests/persistence/volumes_test.yaml
Normal file
109
charts/library/common-test/tests/persistence/volumes_test.yaml
Normal file
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||
suite: persistence volumes
|
||||
templates:
|
||||
- common.yaml
|
||||
tests:
|
||||
- it: no persistence should pass
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
notExists:
|
||||
path: spec.template.spec.volumes
|
||||
|
||||
- it: default should pass
|
||||
set:
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 1
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.volumes
|
||||
value:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: RELEASE-NAME-config
|
||||
|
||||
- it: advanced mount config should pass
|
||||
set:
|
||||
controllers:
|
||||
main:
|
||||
containers:
|
||||
second-container:
|
||||
image:
|
||||
repository: ghcr.io/mendhak/http-https-echo
|
||||
tag: 30
|
||||
second:
|
||||
containers:
|
||||
first-container:
|
||||
image:
|
||||
repository: ghcr.io/mendhak/http-https-echo
|
||||
tag: 30
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
existingClaim: test
|
||||
advancedMounts:
|
||||
main:
|
||||
main:
|
||||
- path: /config
|
||||
readOnly: false
|
||||
data:
|
||||
type: configMap
|
||||
name: myConfigMap
|
||||
globalMounts:
|
||||
- path: /globalTest
|
||||
advancedMounts:
|
||||
main:
|
||||
main:
|
||||
- path: /data/config.yaml
|
||||
readOnly: false
|
||||
subPath: config.yaml
|
||||
second-container:
|
||||
- path: /appdata/config
|
||||
readOnly: true
|
||||
second:
|
||||
first-container:
|
||||
- path: /second-pod/config.yaml
|
||||
readOnly: false
|
||||
subPath: config.yaml
|
||||
no-mounts:
|
||||
existingClaim: test
|
||||
|
||||
asserts:
|
||||
- documentIndex: &FirstDeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *FirstDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.volumes
|
||||
value:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: test
|
||||
- configMap:
|
||||
name: myConfigMap
|
||||
name: data
|
||||
- name: no-mounts
|
||||
persistentVolumeClaim:
|
||||
claimName: test
|
||||
- documentIndex: &SecondDeploymentDoc 1
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *SecondDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.volumes
|
||||
value:
|
||||
- configMap:
|
||||
name: myConfigMap
|
||||
name: data
|
||||
- name: no-mounts
|
||||
persistentVolumeClaim:
|
||||
claimName: test
|
|
@ -3,7 +3,7 @@ apiVersion: v2
|
|||
name: common
|
||||
description: Function library for Helm charts
|
||||
type: library
|
||||
version: 2.0.2
|
||||
version: 2.0.3
|
||||
kubeVersion: ">=1.22.0-0"
|
||||
keywords:
|
||||
- common
|
||||
|
@ -16,7 +16,4 @@ annotations:
|
|||
artifacthub.io/changes: |-
|
||||
- kind: fixed
|
||||
description: |-
|
||||
ServiceAccount could not be referenced without creating
|
||||
- kind: fixed
|
||||
description: |-
|
||||
Controllers without a type did not default to Deployment
|
||||
Volumes did not render correctly across multiple controllers
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# common
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Function library for Helm charts
|
||||
|
||||
|
@ -27,7 +27,7 @@ Include this chart as a dependency in your `Chart.yaml` e.g.
|
|||
# Chart.yaml
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 2.0.2
|
||||
version: 2.0.3
|
||||
repository: https://bjw-s.github.io/helm-charts/
|
||||
```
|
||||
|
||||
|
@ -61,7 +61,7 @@ The following table contains an overview of available values and their descripti
|
|||
| controllers.main.containers.main.image.pullPolicy | string | `nil` | image pull policy |
|
||||
| controllers.main.containers.main.image.repository | string | `nil` | image repository |
|
||||
| controllers.main.containers.main.image.tag | string | `nil` | image tag |
|
||||
| controllers.main.containers.main.lifecycle | object | `{}` | Configure the lifecycle for the container |
|
||||
| controllers.main.containers.main.lifecycle | object | `{}` | [[ref](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)] |
|
||||
| controllers.main.containers.main.nameOverride | string | `nil` | Override the container name |
|
||||
| controllers.main.containers.main.order | int | 99 | Override the default container order Containers get sorted alphanumerically by the `<order>-<identifier>` combination. |
|
||||
| controllers.main.containers.main.probes | object | See below | [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) |
|
||||
|
|
|
@ -18,10 +18,17 @@ Returns the value for volumes
|
|||
{{- end -}}
|
||||
|
||||
{{- if $persistenceEnabled -}}
|
||||
{{- $hasglobalMounts := not (empty $persistenceValues.globalMounts) -}}
|
||||
{{- $globalMounts := dig "globalMounts" list $persistenceValues -}}
|
||||
|
||||
{{- $hasAdvancedMounts := not (empty $persistenceValues.advancedMounts) -}}
|
||||
{{- $advancedMounts := dig "advancedMounts" $controllerObject.identifier list $persistenceValues -}}
|
||||
{{- if $advancedMounts -}}
|
||||
{{- $_ := set $persistenceItemsToProcess $identifier $persistenceValues -}}
|
||||
{{- else -}}
|
||||
|
||||
{{ if or
|
||||
($hasglobalMounts)
|
||||
(and ($hasAdvancedMounts) (not (empty $advancedMounts)))
|
||||
(and (not $hasglobalMounts) (not $hasAdvancedMounts))
|
||||
-}}
|
||||
{{- $_ := set $persistenceItemsToProcess $identifier $persistenceValues -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -304,7 +304,8 @@ controllers:
|
|||
# -- Configure the Security Context for the container
|
||||
securityContext: {}
|
||||
|
||||
# -- Configure the lifecycle for the container
|
||||
# -- Configure the lifecycle event hooks for the container
|
||||
# -- [[ref](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)]
|
||||
lifecycle: {}
|
||||
|
||||
# -- Configure the path at which the file to which the containers termination message will be written.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
apiVersion: v2
|
||||
description: A common powered chart template. This can be useful for small projects that don't have their own chart.
|
||||
name: app-template
|
||||
version: 2.0.2
|
||||
version: 2.0.3
|
||||
kubeVersion: ">=1.22.0-0"
|
||||
maintainers:
|
||||
- name: bjw-s
|
||||
|
@ -10,12 +10,12 @@ maintainers:
|
|||
dependencies:
|
||||
- name: common
|
||||
repository: https://bjw-s.github.io/helm-charts
|
||||
version: 2.0.2
|
||||
version: 2.0.3
|
||||
annotations:
|
||||
artifacthub.io/changes: |-
|
||||
- kind: changed
|
||||
description: |
|
||||
Updated library version to 2.0.2.
|
||||
Updated library version to 2.0.3.
|
||||
links:
|
||||
- name: Upgrade instructions from v1.x
|
||||
url: https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template#from-1xx-to-20x
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# app-template
|
||||
|
||||

|
||||

|
||||
|
||||
A common powered chart template. This can be useful for small projects that don't have their own chart.
|
||||
|
||||
|
@ -12,7 +12,7 @@ Kubernetes: `>=1.22.0-0`
|
|||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://bjw-s.github.io/helm-charts | common | 2.0.2 |
|
||||
| https://bjw-s.github.io/helm-charts | common | 2.0.3 |
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue