diff --git a/charts/incubator/strongswan/.helmignore b/charts/incubator/strongswan/.helmignore new file mode 100644 index 00000000..4379e2b3 --- /dev/null +++ b/charts/incubator/strongswan/.helmignore @@ -0,0 +1,26 @@ +# 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 +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/strongswan/Chart.yaml b/charts/incubator/strongswan/Chart.yaml new file mode 100644 index 00000000..bedcc0b0 --- /dev/null +++ b/charts/incubator/strongswan/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: 1.0.0 +description: strongSwan – the OpenSource IPsec-based VPN Solution +name: strongswan +version: 0.1.0 +kubeVersion: ">=1.16.0-0" +keywords: +- strongswan +home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/strongswan +icon: https://strongswan.org/images/strongswan_neu.png +sources: +- https://github.com/reitermarkus/strongswan +maintainers: +- name: reitermarkus + email: me@reitermark.us +dependencies: +- name: common + repository: https://library-charts.k8s-at-home.com + version: 4.3.0 +annotations: + artifacthub.io/changes: | + - kind: added + description: Initial version diff --git a/charts/incubator/strongswan/README.md b/charts/incubator/strongswan/README.md new file mode 100644 index 00000000..cb7b074f --- /dev/null +++ b/charts/incubator/strongswan/README.md @@ -0,0 +1,111 @@ +# strongswan + +  + +strongswan helm package + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** + +## Source Code + +* <https://github.com/strongswan/strongswan-docker> + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.k8s-at-home.com | common | 4.0.0 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install strongswan k8s-at-home/strongswan +``` + +## Installing the Chart + +To install the chart with the release name `strongswan` + +```console +helm install strongswan k8s-at-home/strongswan +``` + +## Uninstalling the Chart + +To uninstall the `strongswan` deployment + +```console +helm uninstall strongswan +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. + +## Configuration + +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install strongswan \ + --set env.TZ="America/New York" \ + k8s-at-home/strongswan +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install strongswan k8s-at-home/strongswan -f values.yaml +``` + +## Custom configuration + +N/A + +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See more environment variables in the [strongswan documentation](https://strongswan.org/docs). | +| env.TZ | string | `"UTC"` | Set the container timezone | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"strongswan/strongswan"` | image repository | +| image.tag | string | `"1.0.0"` | image tag | +| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +## Changelog + +### Version 1.0.0 + +#### Added + +- Initial version + +#### Changed + +N/A + +#### Fixed + +N/A + +## Support + +- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/) +- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/organization/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/incubator/strongswan/README_CONFIG.md.gotmpl b/charts/incubator/strongswan/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/charts/incubator/strongswan/README_CONFIG.md.gotmpl @@ -0,0 +1,9 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +N/A +{{- end -}} diff --git a/charts/incubator/strongswan/ci/ct-values.yaml b/charts/incubator/strongswan/ci/ct-values.yaml new file mode 100644 index 00000000..683ed89e --- /dev/null +++ b/charts/incubator/strongswan/ci/ct-values.yaml @@ -0,0 +1,5 @@ +env: + VPN_NAME: Example VPN + WIFI_SSID: Example WiFi + VPN_DOMAIN: vpn.example.org + VPN_P12_PASSWORD: password diff --git a/charts/incubator/strongswan/templates/NOTES.txt b/charts/incubator/strongswan/templates/NOTES.txt new file mode 100644 index 00000000..90f7b653 --- /dev/null +++ b/charts/incubator/strongswan/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/incubator/strongswan/templates/common.yaml b/charts/incubator/strongswan/templates/common.yaml new file mode 100644 index 00000000..a6613c2c --- /dev/null +++ b/charts/incubator/strongswan/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/strongswan/values.yaml b/charts/incubator/strongswan/values.yaml new file mode 100644 index 00000000..191c7d21 --- /dev/null +++ b/charts/incubator/strongswan/values.yaml @@ -0,0 +1,86 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/reitermarkus/strongswan + # -- image tag + tag: v1.0.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [strongswan documentation](https://github.com/reitermarkus/strongswan). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # VPN_NAME: Example VPN # VPN display name. + # WIFI_SSID: Example WiFi # Disable VPN when connected to this WiFi network. + # VPN_DOMAIN: vpn.example.org # FQDN for accessing the VPN. + # VPN_P12_PASSWORD: + # valueFrom: + # secretKeyRef: + # name: strongswan-credentials + # key: p12-password + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + http: + enabled: false + primary: false + isakmp: + enabled: true + port: 500 + targetPort: 500 + protocol: UDP + ike: + enabled: true + port: 4500 + targetPort: 4500 + protocol: UDP + +# -- Security contexts required for container. +# @default -- See values.yaml +securityContext: + capabilities: + add: + - NET_ADMIN + +hostNetwork: true +dnsPolicy: ClusterFirstWithHostNet + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + liveness: + enabled: true + custom: true + spec: + exec: + command: [ipsec, status] + readiness: + enabled: true + custom: true + spec: + exec: + command: [ipsec, status] + startup: + enabled: true + custom: true + spec: + exec: + command: [ipsec, status] + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: false + mountPath: /etc/ipsec.d