diff --git a/README.md b/README.md index 9ff5cc8..31ba2ce 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ A project to store container-based hosting stuff. - [Testing](#testing) - [Snapdrop](#snapdrop) - [Jellyfin](#jellyfin) + - [Iperf3](#iperf3) - [Upgrading](#upgrading) - [Help](#help) - [Troubleshooting](#troubleshooting) @@ -580,6 +581,18 @@ helm upgrade --install \ --create-namespace ``` +### Iperf3 + +This creates a basic iperf3 server. + +```bash +helm upgrade --install \ + iperf3 \ + ./helm/iperf3 \ + --namespace iperf3 \ + --create-namespace +``` + ## Upgrading diff --git a/helm/iperf3/.helmignore b/helm/iperf3/.helmignore new file mode 100755 index 0000000..0e8a0eb --- /dev/null +++ b/helm/iperf3/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/helm/iperf3/Chart.yaml b/helm/iperf3/Chart.yaml new file mode 100755 index 0000000..fb4885a --- /dev/null +++ b/helm/iperf3/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +name: Iperf3 +description: A Simple Iperf3 Chart + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 1.16.0 diff --git a/helm/iperf3/templates/deployment.yaml b/helm/iperf3/templates/deployment.yaml new file mode 100644 index 0000000..a98fa06 --- /dev/null +++ b/helm/iperf3/templates/deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: iperf + template: + metadata: + labels: + app.kubernetes.io/name: iperf + spec: + containers: + - name: iperf + image: networkstatic/iperf3 + args: ["-s"] + ports: + - containerPort: 5201 + name: iperf + resources: + requests: + memory: "256Mi" + cpu: "1m" + limits: + memory: "4Gi" + cpu: "4" diff --git a/helm/iperf3/templates/service.yaml b/helm/iperf3/templates/service.yaml new file mode 100644 index 0000000..de1dac9 --- /dev/null +++ b/helm/iperf3/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }} + annotations: + metallb.universe.tf/address-pool: "production" + metallb.universe.tf/allow-shared-ip: "production" +spec: + type: LoadBalancer + selector: + app.kubernetes.io/name: iperf + ports: + - name: iperf + protocol: TCP + port: 5201 + targetPort: iperf diff --git a/helm/iperf3/values.yaml b/helm/iperf3/values.yaml new file mode 100755 index 0000000..e69de29