Skip to content

Commit acfd854

Browse files
authored
OCI chart release (#256)
1 parent 4f82329 commit acfd854

16 files changed

+80
-51
lines changed

.github/workflows/lint-test.yaml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,45 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- name: Checkout
11-
uses: actions/checkout@v2
11+
uses: actions/checkout@v4
1212
with:
1313
fetch-depth: 0
1414

1515
- name: Set up Helm
16-
uses: azure/setup-helm@v1
16+
uses: azure/setup-helm@v4
1717
with:
18-
version: v3.4.0
18+
version: v3.17.2
1919

20-
- uses: actions/setup-python@v2
20+
- uses: actions/setup-python@v5
2121
with:
2222
python-version: 3.13
2323

2424
- name: Set up chart-testing
25-
uses: helm/chart-testing-action@v2.0.1
25+
uses: helm/chart-testing-action@v2.7.0
2626

2727
- name: Run chart-testing (list-changed)
2828
id: list-changed
2929
run: |
30-
changed=$(ct list-changed)
30+
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
3131
if [[ -n "$changed" ]]; then
32-
echo "changed=true" >> $GITHUB_OUTPUT
32+
echo "changed=true" >> "$GITHUB_OUTPUT"
3333
fi
3434
3535
- name: Run chart-testing (lint)
36-
run: ct lint
36+
if: steps.list-changed.outputs.changed == 'true'
37+
run: ct lint --target-branch ${{ github.event.repository.default_branch }}
3738

3839
- name: Create kind cluster
39-
uses: helm/[email protected]
4040
if: steps.list-changed.outputs.changed == 'true'
41+
uses: helm/[email protected]
4142

4243
- name: Install LoadBalancer
44+
if: steps.list-changed.outputs.changed == 'true'
4345
run: |-
4446
kubectl config use-context kind-chart-testing
4547
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10/config/manifests/metallb-native.yaml
4648
kubectl apply -f .github/metallb-configmap.yaml
4749
4850
- name: Run chart-testing (install)
49-
run: ct install
51+
if: steps.list-changed.outputs.changed == 'true'
52+
run: ct install --target-branch ${{ github.event.repository.default_branch }}

.github/workflows/release.yaml

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
name: Release Charts
32

43
on:
@@ -10,12 +9,15 @@ jobs:
109
release:
1110
timeout-minutes: 5
1211
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
packages: write
1315
steps:
1416
- name: Checkout
15-
uses: actions/checkout@v2
17+
uses: actions/checkout@v4
1618

1719
- name: Turnstyle
18-
uses: softprops/turnstyle@v1
20+
uses: softprops/turnstyle@v2
1921
with:
2022
continue-after-seconds: 180
2123
env:
@@ -28,19 +30,34 @@ jobs:
2830
run: |
2931
git config user.name "$GITHUB_ACTOR"
3032
git config user.email "[email protected]"
31-
# See https://github.com/helm/chart-releaser-action/issues/6
33+
3234
- name: Install Helm
33-
run: |
34-
curl -fsSLo get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
35-
chmod 700 get_helm.sh
36-
./get_helm.sh
35+
uses: azure/setup-helm@v4
36+
37+
- name: Login to GitHub Container Registry
38+
uses: docker/login-action@v3
39+
with:
40+
registry: ghcr.io
41+
username: ${{ github.actor }}
42+
password: ${{ secrets.GITHUB_TOKEN }}
43+
3744
- name: Add dependency chart repos
3845
run: |
3946
helm repo add stable https://charts.helm.sh/stable
47+
helm repo update stable
48+
4049
- name: Run chart-releaser
41-
uses: helm/[email protected]
42-
with:
43-
charts_repo_url: https://itzg.github.io/minecraft-server-charts
50+
uses: helm/[email protected]
4451
env:
4552
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
46-
53+
54+
## https://github.com/helm/chart-releaser-action/issues/107#issuecomment-2133797963
55+
- name: Push Charts to GHCR
56+
run: |
57+
for pkg in .cr-release-packages/*; do
58+
if [ -z "${pkg:-}" ]; then
59+
break
60+
fi
61+
62+
helm push "${pkg}" oci://ghcr.io/${{ github.repository }}
63+
done

charts/minecraft-proxy/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v1
22
name: minecraft-proxy
3-
version: 3.8.4
3+
version: 3.9.0
44
appVersion: SeeValues
55
description: Minecraft proxy server (BungeeCord, Waterfall, Velocity, etc.)
66
keywords:

charts/minecraft-proxy/templates/extraports-ing.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ metadata:
1414
{{- end }}
1515
labels:
1616
app: {{ $serviceName }}
17-
chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}"
17+
chart: {{ template "minecraft.fullname" . }}
1818
release: "{{ $.Release.Name }}"
1919
heritage: "{{ $.Release.Service }}"
2020
spec:

charts/minecraft-proxy/templates/extraports-svc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
annotations: {{ toYaml .service.annotations | nindent 4 }}
1212
labels:
1313
app: {{ $serviceName }}
14-
chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}"
14+
chart: {{ template "minecraft.fullname" . }}
1515
release: "{{ $.Release.Name }}"
1616
heritage: "{{ $.Release.Service }}"
1717
spec:

charts/minecraft/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v1
22
name: minecraft
3-
version: 4.25.1
3+
version: 4.26.0
44
appVersion: SeeValues
55
home: https://minecraft.net/
66
description: Minecraft server

charts/minecraft/templates/_helpers.tpl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ We change "+" with "_" for OCI compatibility
1515
{{- printf "%s-%s" .Chart.Name (.Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-") -}}
1616
{{- end }}
1717

18+
{{/*
19+
Set the chart version
20+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the labels spec).
21+
We change "+" with "_" for OCI compatibility
22+
*/}}
23+
{{- define "chart.version" -}}
24+
{{- default .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
25+
{{- end }}
26+
1827
{{/*
1928
Create a default fully qualified app name.
2029
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).

charts/minecraft/templates/backupdir-pvc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ metadata:
66
namespace: {{ .Release.Namespace }}
77
labels:
88
app: {{ template "minecraft.fullname" . }}
9-
chart: "{{ include "chart.fullname" . }}"
9+
chart: {{ template "chart.fullname" . }}
1010
release: "{{ .Release.Name }}"
1111
heritage: "{{ .Release.Service }}"
1212
app.kubernetes.io/name: "{{ .Chart.Name }}"
1313
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
14-
app.kubernetes.io/version: "{{ .Chart.Version }}"
14+
app.kubernetes.io/version: {{ template "chart.version" . }}
1515
annotations:
1616
{{- with .Values.mcbackup.persistence.annotations }}
1717
{{ toYaml . | nindent 4 }}

charts/minecraft/templates/datadir-pvc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ metadata:
66
namespace: {{ .Release.Namespace }}
77
labels:
88
app: {{ template "minecraft.fullname" . }}
9-
chart: "{{ include "chart.fullname" . }}"
9+
chart: {{ template "chart.fullname" . }}
1010
release: "{{ .Release.Name }}"
1111
heritage: "{{ .Release.Service }}"
1212
app.kubernetes.io/name: "{{ .Chart.Name }}"
1313
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
14-
app.kubernetes.io/version: "{{ .Chart.Version }}"
14+
app.kubernetes.io/version: {{ template "chart.version" . }}
1515
{{- with .Values.persistence.labels }}
1616
{{ toYaml . | nindent 4 }}
1717
{{- end }}

charts/minecraft/templates/deployment.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ metadata:
1212
{{- end }}
1313
labels:
1414
app: {{ template "minecraft.fullname" . }}
15-
chart: "{{ include "chart.fullname" . }}"
15+
chart: {{ template "chart.fullname" . }}
1616
release: "{{ .Release.Name }}"
1717
heritage: "{{ .Release.Service }}"
1818
app.kubernetes.io/name: "{{ .Chart.Name }}"
1919
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
20-
app.kubernetes.io/version: "{{ .Chart.Version }}"
20+
app.kubernetes.io/version: {{ template "chart.version" . }}
2121
{{- if .Values.deploymentLabels }}
2222
{{- range $key, $value := .Values.deploymentLabels}}
2323
{{ $key }}: {{ $value | quote }}
@@ -42,7 +42,7 @@ spec:
4242
app: {{ template "minecraft.fullname" . }}
4343
app.kubernetes.io/name: "{{ .Chart.Name }}"
4444
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
45-
app.kubernetes.io/version: "{{ .Chart.Version }}"
45+
app.kubernetes.io/version: {{ template "chart.version" . }}
4646
{{- if .Values.podLabels }}
4747
{{- range $key, $value := .Values.podLabels}}
4848
{{ $key }}: {{ $value | quote }}
@@ -531,12 +531,12 @@ spec:
531531
name: datadir
532532
labels:
533533
app: {{ template "minecraft.fullname" . }}
534-
chart: "{{ include "chart.fullname" . }}"
534+
chart: {{ template "chart.fullname" . }}
535535
release: "{{ .Release.Name }}"
536536
heritage: "{{ .Release.Service }}"
537537
app.kubernetes.io/name: "{{ .Chart.Name }}"
538538
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
539-
app.kubernetes.io/version: "{{ .Chart.Version }}"
539+
app.kubernetes.io/version: {{ template "chart.version" . }}
540540
annotations:
541541
{{- with .Values.persistence.annotations }}
542542
{{ toYaml . | nindent 10 }}
@@ -565,12 +565,12 @@ spec:
565565
name: backupdir
566566
labels:
567567
app: {{ template "minecraft.fullname" . }}
568-
chart: "{{ include "chart.fullname" . }}"
568+
chart: {{ template "chart.fullname" . }}
569569
release: "{{ .Release.Name }}"
570570
heritage: "{{ .Release.Service }}"
571571
app.kubernetes.io/name: "{{ .Chart.Name }}"
572572
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
573-
app.kubernetes.io/version: "{{ .Chart.Version }}"
573+
app.kubernetes.io/version: {{ template "chart.version" . }}
574574
annotations:
575575
{{- with .Values.mcbackup.persistence.annotations }}
576576
{{ toYaml . | nindent 10 }}

charts/minecraft/templates/extraports-ing.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ metadata:
1414
{{- end }}
1515
labels:
1616
app: {{ $serviceName }}
17-
chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}"
17+
chart: {{ template "minecraft.fullname" . }}
1818
release: "{{ $.Release.Name }}"
1919
heritage: "{{ $.Release.Service }}"
2020
app.kubernetes.io/name: "{{ $.Chart.Name }}"
2121
app.kubernetes.io/instance: {{ $minecraftFullname }}
22-
app.kubernetes.io/version: "{{ $.Chart.Version }}"
22+
app.kubernetes.io/version: {{ template "chart.version" . }}
2323
spec:
2424
{{- if .ingress.ingressClassName }}
2525
ingressClassName: {{ .ingress.ingressClassName }}

charts/minecraft/templates/extraports-svc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ metadata:
1111
annotations: {{ toYaml .service.annotations | nindent 4 }}
1212
labels:
1313
app: {{ $serviceName }}
14-
chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}"
14+
chart: {{ template "minecraft.fullname" . }}
1515
release: "{{ $.Release.Name }}"
1616
heritage: "{{ $.Release.Service }}"
1717
app.kubernetes.io/name: "{{ $.Chart.Name }}"
1818
app.kubernetes.io/instance: {{ $minecraftFullname }}
19-
app.kubernetes.io/version: "{{ $.Chart.Version }}"
19+
app.kubernetes.io/version: {{ template "chart.version" . }}
2020
spec:
2121
{{- if (or (eq .service.type "ClusterIP") (empty .service.type)) }}
2222
type: ClusterIP

charts/minecraft/templates/minecraft-svc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ metadata:
55
namespace: {{ .Release.Namespace }}
66
labels:
77
app: {{ template "minecraft.fullname" . }}
8-
chart: "{{ include "chart.fullname" . }}"
8+
chart: {{ template "chart.fullname" . }}
99
release: "{{ .Release.Name }}"
1010
heritage: "{{ .Release.Service }}"
1111
app.kubernetes.io/name: "{{ .Chart.Name }}"
1212
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
13-
app.kubernetes.io/version: "{{ .Chart.Version }}"
13+
app.kubernetes.io/version: {{ template "chart.version" . }}
1414
{{- if .Values.serviceLabels }}
1515
{{- range $key, $value := .Values.serviceLabels}}
1616
{{ $key }}: {{ $value | quote }}

charts/minecraft/templates/rclone-secret.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ metadata:
66
name: {{ template "minecraft.fullname" . }}-rclone-config
77
labels:
88
app: {{ template "minecraft.fullname" . }}
9-
chart: "{{ include "chart.fullname" . }}"
9+
chart: {{ template "chart.fullname" . }}
1010
release: "{{ .Release.Name }}"
1111
heritage: "{{ .Release.Service }}"
1212
app.kubernetes.io/name: "{{ .Chart.Name }}"
1313
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
14-
app.kubernetes.io/version: "{{ .Chart.Version }}"
14+
app.kubernetes.io/version: {{ template "chart.version" . }}
1515
type: Opaque
1616
data:
1717
rclone.conf: |-

charts/minecraft/templates/rcon-svc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ metadata:
88
{{ toYaml .Values.rconServiceAnnotations | indent 4 }}
99
labels:
1010
app: {{ template "minecraft.fullname" . }}
11-
chart: "{{ include "chart.fullname" . }}"
11+
chart: {{ template "chart.fullname" . }}
1212
release: "{{ .Release.Name }}"
1313
heritage: "{{ .Release.Service }}"
1414
app.kubernetes.io/name: "{{ .Chart.Name }}"
1515
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
16-
app.kubernetes.io/version: "{{ .Chart.Version }}"
16+
app.kubernetes.io/version: {{ template "chart.version" . }}
1717
{{- if .Values.rconServiceLabels }}
1818
{{- range $key, $value := .Values.rconServiceLabels}}
1919
{{ $key }}: {{ $value | quote }}

charts/minecraft/templates/secrets.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ metadata:
77
namespace: {{ .Release.Namespace }}
88
labels:
99
app: {{ template "minecraft.fullname" . }}
10-
chart: "{{ include "chart.fullname" . }}"
10+
chart: {{ template "chart.fullname" . }}
1111
release: "{{ .Release.Name }}"
1212
heritage: "{{ .Release.Service }}"
1313
app.kubernetes.io/name: "{{ .Chart.Name }}"
1414
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
15-
app.kubernetes.io/version: "{{ .Chart.Version }}"
15+
app.kubernetes.io/version: {{ template "chart.version" . }}
1616
type: Opaque
1717
data:
1818
rcon-password: {{ default "" .Values.minecraftServer.rcon.password | b64enc | quote }}
@@ -26,12 +26,12 @@ metadata:
2626
namespace: {{ .Release.Namespace }}
2727
labels:
2828
app: {{ template "minecraft.fullname" . }}
29-
chart: "{{ include "chart.fullname" . }}"
29+
chart: {{ template "chart.fullname" . }}
3030
release: "{{ .Release.Name }}"
3131
heritage: "{{ .Release.Service }}"
3232
app.kubernetes.io/name: "{{ .Chart.Name }}"
3333
app.kubernetes.io/instance: {{ template "minecraft.fullname" . }}
34-
app.kubernetes.io/version: "{{ .Chart.Version }}"
34+
app.kubernetes.io/version: {{ template "chart.version" . }}
3535
type: Opaque
3636
data:
3737
cf-api-key: {{ default "" .Values.minecraftServer.autoCurseForge.apiKey.key | b64enc | quote }}

0 commit comments

Comments
 (0)