Skip to content

Commit a11aed7

Browse files
committed
refactor: split ext-proxy chart from balius for modular deployment
Signed-off-by: Ales Verbic <verbotenj@blinklabs.io>
1 parent 28b74cc commit a11aed7

12 files changed

Lines changed: 238 additions & 81 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: publish-ext-proxy-helm-chart
2+
3+
on:
4+
push:
5+
branches: ['main']
6+
paths: ['charts/ext-proxy/**','.github/workflows/publish-ext-proxy-helm-chart.yml']
7+
8+
jobs:
9+
build-and-push-ext-proxy-helm-chart:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
packages: write
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Install Helm
17+
uses: azure/setup-helm@v4
18+
- name: Package and upload chart
19+
shell: bash
20+
env:
21+
REGISTRY: "ghcr.io"
22+
REPOSITORY: "${{ github.repository }}"
23+
TOKEN: "${{ secrets.GITHUB_TOKEN }}"
24+
USER: "${{ github.repository_owner }}"
25+
run: |
26+
rm -rf dist
27+
mkdir dist
28+
helm package charts/ext-proxy/ -d dist/
29+
echo "${TOKEN}" | helm registry login "${REGISTRY}" -u "${USER}" --password-stdin
30+
for file in dist/*; do
31+
helm push "$file" "oci://${REGISTRY}/${REPOSITORY,,}/charts"
32+
done

charts/balius/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
name: balius
33
description: Balius server
4-
version: 0.0.5
4+
version: 0.0.6
55
appVersion: "0.0.1"
66

77
sources:

charts/balius/templates/proxy.yaml

Lines changed: 0 additions & 68 deletions
This file was deleted.

charts/balius/templates/service.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: {{ include "balius.fullname" . }}
4+
# It has to be named balius-<network> to match the proxy code expectations
5+
name: balius-{{ .Values.balius.network }}
56
labels:
67
{{- include "balius.labels" . | nindent 4 }}
78
spec:

charts/ext-proxy/Chart.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: v2
2+
name: ext-proxy
3+
description: A Helm chart for managing different proxy configurations for https://github.com/demeter-run
4+
version: 0.0.1
5+
appVersion: "0.0.1"
6+
7+
maintainers:
8+
- name: aurora
9+
email: aurora@blinklabs.io
10+
- name: overcookedpanda
11+
email: overcookedpanda@blinklabs.io
12+
- name: verbotenj
13+
email: verbotenj@blinklabs.io
14+
- name: wolf31o2
15+
email: wolf31o2@blinklabs.io

charts/balius/templates/certificate.yaml renamed to charts/ext-proxy/templates/certificate.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
name: {{ .Values.proxyCertificate.secretName }}
66
namespace: {{ .Release.Namespace }}
77
spec:
8-
dnsNames: {{ .Values.proxyCertificate.dnsNames | toYaml | nindent 4 }}
8+
dnsNames: {{ .Values.proxyCertificate.dnsNames | toYaml | nindent 2 }}
99
issuerRef:
1010
kind: {{ .Values.proxyCertificate.issuerKind }}
1111
name: {{ .Values.proxyCertificate.issuerName }}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
apiVersion: v1
22
kind: ConfigMap
33
metadata:
4-
name: proxy-{{ .Values.balius.network }}-config
4+
name: {{ .Release.Name }}-config
55
namespace: {{ .Release.Namespace }}
66
data:
77
tiers.toml: |
8-
{{- range $tier := .Values.proxy.tiers }}
8+
{{- range $tier := .Values.proxyConfig.tiers }}
99
[[tiers]]
1010
name = "{{ $tier.name }}"
1111
{{- range $rate := $tier.rates }}
1212
[[tiers.rates]]
1313
interval = "{{ $rate.interval }}"
14-
limit = {{ div $rate.limitPerReplica $.Values.balius.replicas }}
14+
limit = {{ div $rate.limitPerReplica $.Values.proxy.replicas }}
1515
{{- end }}
1616
{{- end }}
File renamed without changes.
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
{{- if .Values.proxy.podMonitor.enabled }}
1+
{{- if .Values.podMonitor.enabled }}
22
apiVersion: monitoring.coreos.com/v1
33
kind: PodMonitor
44
metadata:
5-
name: {{ include "balius.fullname" . }}-proxy
5+
name: {{ .Release.Name }}-podmonitor
66
namespace: {{ .Release.Namespace }}
77
labels:
8-
{{- with .Values.proxy.podMonitor.labels }}
8+
{{- with .Values.podMonitor.labels }}
99
{{- toYaml . | nindent 4 }}
1010
{{- end }}
1111
spec:
1212
selector:
1313
matchLabels:
1414
role: {{ .Values.proxy.role }}
1515
podMetricsEndpoints:
16-
- port: metrics
17-
path: /metrics
16+
- port: metrics
17+
path: /metrics
1818
{{- end }}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
role: {{ .Values.proxy.role }}
8+
spec:
9+
replicas: {{ .Values.proxy.replicas }}
10+
selector:
11+
matchLabels:
12+
role: {{ .Values.proxy.role }}
13+
template:
14+
metadata:
15+
name: {{ .Release.Name }}
16+
labels:
17+
role: {{ .Values.proxy.role }}
18+
spec:
19+
serviceAccountName: {{ .Values.proxy.serviceAccountName }}
20+
initContainers:
21+
- name: wait-for-secret
22+
image: bitnami/kubectl:1.29
23+
command:
24+
- /bin/sh
25+
- -c
26+
- |
27+
for i in $(seq 1 120); do
28+
kubectl get secret -n {{ .Release.Namespace }} {{ .Values.proxyCertificate.secretName }} && exit 0
29+
echo "Waiting for secret {{ .Values.proxyCertificate.secretName }}..."
30+
sleep 5
31+
done
32+
echo "Timed out waiting for secret"
33+
exit 1
34+
containers:
35+
- name: main
36+
image: "{{ .Values.proxy.image.repository }}:{{ .Values.proxy.image.tag }}"
37+
imagePullPolicy: {{ .Values.proxy.image.pullPolicy }}
38+
env: {{ toYaml .Values.proxy.env | nindent 8 }}
39+
resources: {{ toYaml .Values.proxy.resources | nindent 10 }}
40+
ports:
41+
- name: metrics
42+
containerPort: {{ .Values.proxy.ports.metrics }}
43+
protocol: TCP
44+
- name: proxy
45+
containerPort: {{ .Values.proxy.ports.proxy }}
46+
protocol: TCP
47+
volumeMounts:
48+
- name: certs
49+
mountPath: /certs
50+
- name: configs
51+
mountPath: /configs
52+
volumes:
53+
- name: certs
54+
secret:
55+
secretName: {{ .Values.proxyCertificate.secretName }}
56+
- name: configs
57+
configMap:
58+
name: {{ .Release.Name }}-config
59+
{{- with .Values.proxy.tolerations }}
60+
tolerations: {{ toYaml . | nindent 6 }}
61+
{{- end }}
62+
{{- with .Values.proxy.affinity }}
63+
affinity: {{ toYaml . | nindent 8 }}
64+
{{- end }}

0 commit comments

Comments
 (0)