{"id":30833320,"url":"https://github.com/openvpn/as-helm-chart","last_synced_at":"2025-09-06T16:49:54.669Z","repository":{"id":311744937,"uuid":"1044814731","full_name":"OpenVPN/as-helm-chart","owner":"OpenVPN","description":"Access Server Helm chart","archived":false,"fork":false,"pushed_at":"2025-09-02T14:40:52.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T14:45:52.967Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenVPN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-26T08:50:15.000Z","updated_at":"2025-09-02T09:57:44.000Z","dependencies_parsed_at":"2025-08-26T11:35:19.127Z","dependency_job_id":"ebcecfdb-df21-4a1b-8a97-a240ad6ed3d2","html_url":"https://github.com/OpenVPN/as-helm-chart","commit_stats":null,"previous_names":["openvpn/as-helm-chart"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenVPN/as-helm-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fas-helm-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fas-helm-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fas-helm-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fas-helm-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenVPN","download_url":"https://codeload.github.com/OpenVPN/as-helm-chart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fas-helm-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273933917,"owners_count":25193601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-06T16:49:50.114Z","updated_at":"2025-09-06T16:49:54.662Z","avatar_url":"https://github.com/OpenVPN.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![openvpn-as](https://as-prod-public.s3.us-west-1.amazonaws.com/openvpn_logo_big.svg)\n# OpenVPN Access Server Helm chart\n\n## Introduction\n\nThis chart installs `openvpn/openvpn-as` Docker Hub image on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.\n\n## Prerequisites\n\n- Kubernetes 1.20+\n- Helm 3.0+\n\n## Installing the Chart\n\nTo install the chart with the release name `my-vpn`:\n\n- Add repository\n```console\nhelm repo add as-helm-chart https://openvpn.github.io/as-helm-chart\n```\n\n- Install chart\n```console\nhelm install my-vpn as-helm-chart/openvpn-as --version 0.1.0\n```\n\nThese commands deploy openvpn-as on the Kubernetes cluster in the default configuration.\n\n## Uninstalling the Chart\n\nTo uninstall/delete the `my-vpn` deployment:\n\n```console\nhelm delete my-vpn\n```\n\nThe command removes all the Kubernetes components associated with the chart and deletes the release.\n\n## Configuration\n\nThe configurable parameters of the openvpn-as chart can be found in `values.yaml`.\n\nSpecify each parameter using the `--set key=value[,key=value]` argument to `helm install`.\n\nAlternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,\n\n```console\nhelm install my-vpn as-helm-chart/openvpn-as -f values.yaml\n```\n\n## Access server custom configuration\n\nCustom configuration is possible via Kubernetes [postStart](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/) feature.\n\n***Important: If you plan to use `sacli` in the `postStart` script, ensure that the Access Server service is fully up and running beforehand.***  \nYou can find an example of how to wait for the service in the Inline Script below.\n\nIf you set `postStart.enabled=true`, this chart runs default `scripts/configure.sh` from the chart.\nHowever, that default script is just an example which waits while AS initialization is finished.\nThe default `scripts/configure.sh` can be overridden.\n\n#### Override with Inline Script\nTo override the `postStart` script you can provide the script directly via the `values.yaml`.\n\n```yaml\npostStart:\n  enabled: true\n  customScript: |\n    #!/bin/bash\n    # Waiting for AS service initialization\n    until /usr/local/openvpn_as/scripts/sacli status 2\u003e/dev/null |grep -q '\"api\": \"on\"'\n    do\n        sleep 2\n    done\n    /usr/local/openvpn_as/scripts/sacli --user \"openvpn\" --new_pass \"secure123\" SetLocalPassword\n```\n\n#### Use a separate Kubernetes Secret\nThe chart will create a Kubernetes secret out of the provided script. Instead you can also provide your own secret directly with the `postStart.secretRefName` key. Note that the the script must be available as `configure.sh` in the secret.\n```yaml\npostStart:\n  enabled: true\n  secretRefName: my-custom-script\n```\n\nCreate it:\n\n```console\nkubectl create secret generic my-custom-script \\\n  --from-file=configure.sh=./custom.sh\n```\n\n## TUN device in Kubernetes\n\nA TUN device in Kubernetes is a virtual network interface that allows for packet routing between user space and the kernel, commonly used for applications like VPNs. To use a TUN device, pods typically need specific permissions, and starting from Kubernetes version 1.31.3, they must run in privileged mode to create and access the TUN device.\n\nTo create and use TUN devices within Kubernetes pods, specific permissions are necessary:\n- Kubernetes versions prior to 1.31.3: The NET_ADMIN capability was sufficient for creating TUN devices.\n- Kubernetes version 1.31.3 and later: Pods must run in privileged mode to create TUN devices. This change was made due to security improvements that restrict access to certain system resources.\n\nInstead of using privileged mode [Device Plugins](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) can be used.\n\nKubernetes supports device plugins that can expose host devices to pods. For TUN devices, you can deploy a device plugin that allows access to /dev/net/tun. This can be done using a DaemonSet that runs on each node.\n\n## Contact support\n\nYou can contact the support team for OpenVPN Access Server here:\n\nhttps://support.openvpn.com/hc/en-us/categories/360006075631-Access-Server\n\n### [EULA and legal information.](https://openvpn.net/legal/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpn%2Fas-helm-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenvpn%2Fas-helm-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpn%2Fas-helm-chart/lists"}