From 49bcbf41304ac4f0f465039f284ea87fa2c32aa9 Mon Sep 17 00:00:00 2001 From: WrenIX Date: Thu, 22 Aug 2024 20:02:29 +0200 Subject: [PATCH] fix(miniserve): add networkpolicy support --- miniserve/Chart.yaml | 2 +- miniserve/README.adoc | 22 +++++++++++++++++++- miniserve/templates/networkpolicy.yaml | 28 ++++++++++++++++++++++++++ miniserve/values.yaml | 11 ++++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 miniserve/templates/networkpolicy.yaml diff --git a/miniserve/Chart.yaml b/miniserve/Chart.yaml index f59675e..99ec735 100644 --- a/miniserve/Chart.yaml +++ b/miniserve/Chart.yaml @@ -3,7 +3,7 @@ name: miniserve description: A Helm chart for Kubernetes icon: https://raw.githubusercontent.com/svenstaro/miniserve/master/data/logo.svg type: application -version: 0.3.7 +version: 0.4.0 # renovate: image=docker.io/svenstaro/miniserve appVersion: "0.27.0" maintainers: diff --git a/miniserve/README.adoc b/miniserve/README.adoc index 12b3675..85049b5 100644 --- a/miniserve/README.adoc +++ b/miniserve/README.adoc @@ -2,7 +2,7 @@ = miniserve -image::https://img.shields.io/badge/Version-0.3.7-informational?style=flat-square[Version: 0.3.7] +image::https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square[Version: 0.4.0] image::https://img.shields.io/badge/Version-application-informational?style=flat-square[Type: application] image::https://img.shields.io/badge/AppVersion-0.27.0-informational?style=flat-square[AppVersion: 0.27.0] == Maintainers @@ -277,6 +277,26 @@ helm uninstall miniserve-release | `""` | +| networkPolicy.egress.enabled +| bool +| `true` +| activate egress no networkpolicy + +| networkPolicy.egress.extra +| list +| `[]` +| egress rules + +| networkPolicy.enabled +| bool +| `false` +| + +| networkPolicy.ingress.http +| list +| `[]` +| ingress for http port (e.g. ingress-controller) + | nodeSelector | object | `{}` diff --git a/miniserve/templates/networkpolicy.yaml b/miniserve/templates/networkpolicy.yaml new file mode 100644 index 0000000..2df2ebf --- /dev/null +++ b/miniserve/templates/networkpolicy.yaml @@ -0,0 +1,28 @@ +{{- if .Values.networkPolicy.enabled }} +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: {{ include "miniserve.fullname" . }} + labels: + {{- include "miniserve.labels" . | nindent 4 }} +spec: + podSelector: + matchLabels: + {{- include "miniserve.selectorLabels" . | nindent 6 }} + policyTypes: + - Ingress + {{- if .Values.networkPolicy.egress.enabled }} + - Egress + {{- end }} + ingress: + - ports: + - port: {{ .Values.service.port }} + protocol: TCP + from: + {{- toYaml .Values.networkPolicy.ingress.http | nindent 8 }} + {{- with .Values.networkPolicy.egress }} + egress: + {{- toYaml .extra | nindent 4 }} + {{- end }} +{{- end }} diff --git a/miniserve/values.yaml b/miniserve/values.yaml index f2ff6e6..9ae54d7 100644 --- a/miniserve/values.yaml +++ b/miniserve/values.yaml @@ -126,6 +126,17 @@ service: type: ClusterIP port: 8080 +networkPolicy: + enabled: false + ingress: + # -- ingress for http port (e.g. ingress-controller) + http: [] + egress: + # -- activate egress no networkpolicy + enabled: true + # -- egress rules + extra: [] + ingress: enabled: false className: ""