feat(common): Release version 1.3.2 (#120)

* fix(common): Increase CronJob pod annotations indent from 10 to 12 (#118)
* feat(common): Add tests for CronJob jobTemplate metadata
* feat(common): Update netshoot image
* feat(common): Update code-server image
* feat(ci): add workflow to create oci artifact (#38)
* ci: Update release workflows

---------
Signed-off-by: Tyler Witlin <tyler@codezero.io>
Co-authored-by: Gabe Cook <gabe565@gmail.com>
Co-authored-by: Tyler Witlin <45468117+coolguy1771@users.noreply.github.com>
This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2023-02-19 11:40:27 +01:00 committed by GitHub
parent 75048c6d73
commit 93e761fd99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 151 additions and 43 deletions

View file

@ -17,7 +17,7 @@ on:
required: true required: true
env: env:
HELM_VERSION: 3.9.2 HELM_VERSION: 3.11.1
jobs: jobs:
release-charts: release-charts:

View file

@ -0,0 +1,70 @@
name: "Charts: Release to GHCR OCI"
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:
HELM_VERSION: 3.11.1
jobs:
release-charts:
name: Release charts
runs-on: ubuntu-22.04
steps:
- name: Get GitHub API token
id: get-app-token
uses: getsentry/action-github-app-token@v1
with:
app_id: ${{ secrets.BJWS_APP_ID }}
private_key: ${{ secrets.BJWS_APP_PRIVATE_KEY }}
- name: Login to GitHub Container Registry
id: login-to-ghcr
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.BJWS_APP_PRIVATE_KEY }}
- name: Checkout charts branch
uses: actions/checkout@v3
with:
token: ${{ steps.get-app-token.outputs.token }}
path: "src"
fetch-depth: 0
- name: Install Kubernetes tools
uses: yokawasa/action-setup-kube-tools@v0.8.2
with:
setup-tools: |
helmv3
helm: "${{ env.HELM_VERSION }}"
- name: Package & Push Helm Charts
shell: bash
env:
SRC_DIR: "src/charts"
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]}
helm dep up "${SRC_DIR}/${CHART}"
helm package "${SRC_DIR}/${CHART}" -u
helm push ${CHART} oci://ghcr.io/${{ github.actor }}
done

View file

@ -19,7 +19,7 @@ on:
- "charts/**" - "charts/**"
env: env:
HELM_VERSION: 3.9.2 HELM_VERSION: 3.11.1
jobs: jobs:
prepare: prepare:
@ -59,3 +59,13 @@ jobs:
with: with:
charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}" charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}"
secrets: inherit secrets: inherit
release-github-oci:
name: Release Application charts to GitHub pages
uses: ./.github/workflows/charts-release-oci.yaml
needs:
- prepare
- release-library-charts
with:
charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}"
secrets: inherit

View file

@ -3,7 +3,7 @@ apiVersion: v2
name: common name: common
description: Function library for Helm charts description: Function library for Helm charts
type: library type: library
version: 1.3.1 version: 1.3.2
kubeVersion: ">=1.22.0-0" kubeVersion: ">=1.22.0-0"
keywords: keywords:
- common - common
@ -14,5 +14,9 @@ maintainers:
email: me@bjw-s.dev email: me@bjw-s.dev
annotations: annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: changed
description: Updated code-server image tag to v4.10.0
- kind: changed
description: Updated netshoot image tag to v0.9
- kind: fixed - kind: fixed
description: Probes were rendered incorrectly when primary service port was a string. description: Pod annotations were not indented enough when controller type was cronjob

View file

@ -1,6 +1,6 @@
# common # common
![Version: 1.3.1](https://img.shields.io/badge/Version-1.3.1-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) ![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.2-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square)
Function library for Helm charts Function library for Helm charts

View file

@ -34,7 +34,7 @@ spec:
metadata: metadata:
{{- with include ("bjw-s.common.lib.metadata.podAnnotations") . }} {{- with include ("bjw-s.common.lib.metadata.podAnnotations") . }}
annotations: annotations:
{{- . | nindent 10 }} {{- . | nindent 12 }}
{{- end }} {{- end }}
labels: labels:
{{- include "bjw-s.common.lib.metadata.selectorLabels" . | nindent 12 }} {{- include "bjw-s.common.lib.metadata.selectorLabels" . | nindent 12 }}

View file

@ -711,7 +711,7 @@ addons:
# -- Specify the code-server image # -- Specify the code-server image
repository: ghcr.io/coder/code-server repository: ghcr.io/coder/code-server
# -- Specify the code-server image tag # -- Specify the code-server image tag
tag: 4.9.1 tag: 4.10.0
# -- Specify the code-server image pull policy # -- Specify the code-server image pull policy
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
@ -802,7 +802,7 @@ addons:
# -- Specify the netshoot image # -- Specify the netshoot image
repository: ghcr.io/nicolaka/netshoot repository: ghcr.io/nicolaka/netshoot
# -- Specify the netshoot image tag # -- Specify the netshoot image tag
tag: v0.8 tag: v0.9
# -- Specify the netshoot image pull policy # -- Specify the netshoot image pull policy
pullPolicy: IfNotPresent pullPolicy: IfNotPresent

View file

@ -2,7 +2,7 @@
apiVersion: v2 apiVersion: v2
description: A common powered chart template. This can be useful for small projects that don't have their own chart. description: A common powered chart template. This can be useful for small projects that don't have their own chart.
name: app-template name: app-template
version: 1.3.1 version: 1.3.2
kubeVersion: ">=1.22.0-0" kubeVersion: ">=1.22.0-0"
maintainers: maintainers:
- name: bjw-s - name: bjw-s
@ -10,12 +10,12 @@ maintainers:
dependencies: dependencies:
- name: common - name: common
repository: https://bjw-s.github.io/helm-charts repository: https://bjw-s.github.io/helm-charts
version: 1.3.1 version: 1.3.2
annotations: annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: changed - kind: changed
description: | description: |
Updated library version to 1.3.1. Updated library version to 1.3.2.
links: links:
- name: Common library chart definition - name: Common library chart definition
url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml

View file

@ -23,7 +23,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -52,7 +52,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -89,5 +89,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,29 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test
- it: jobTemplate metadata should pass
set:
controller.type: cronjob
podAnnotations:
test_annotation: test
podLabels:
test_label: test
asserts:
- documentIndex: &ControllerDoc 0
isKind:
of: CronJob
- documentIndex: *ControllerDoc
equal:
path: spec.jobTemplate.spec.template.metadata.annotations
value:
test_annotation: test
- documentIndex: *ControllerDoc
equal:
path: spec.jobTemplate.spec.template.metadata.labels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: retain enabled should pass - it: retain enabled should pass
set: set:
@ -42,7 +42,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -68,7 +68,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -102,5 +102,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -23,7 +23,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -52,7 +52,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -89,5 +89,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -23,7 +23,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -52,7 +52,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -89,7 +89,7 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom secret type should pass - it: custom secret type should pass

View file

@ -18,7 +18,7 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -80,5 +80,5 @@ tests:
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test_label: test test_label: test

View file

@ -74,7 +74,7 @@ tests:
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: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-1.3.1 helm.sh/chart: app-template-1.3.2
test.label: testvalue test.label: testvalue
- it: a serviceMonitor is created with nameOverride - it: a serviceMonitor is created with nameOverride