groups: - name: Configuration description: WG-Easy application configuration - name: Storage description: Configure storage for WG-Easy - name: Networking description: Networking Configuration for WG-Easy - name: Advanced DNS Settings description: Configure DNS settings - name: Resource Limits description: Set CPU/memory limits for Kubernetes Pod portals: web_portal: protocols: - http host: - $node_ip ports: - $variable-webUIPort path: / questions: - variable: wgUDPPort label: WireGuard UPD Node Port for WG-Easy group: Networking schema: type: int min: 9000 max: 65535 default: 20920 required: true - variable: webUIPort label: WebUI Node Port for WG-Easy group: Networking schema: type: int min: 9000 max: 65535 default: 20921 required: true - variable: hostNetwork label: Host Network group: Networking schema: type: boolean default: true - variable: dnsConfig label: DNS Configuration group: Advanced DNS Settings schema: type: dict attrs: - variable: options label: DNS Options schema: type: list items: - variable: optionsEntry label: Option Entry Configuration schema: type: dict attrs: - variable: name label: Option Name schema: type: string required: true - variable: value label: Option Value schema: type: string required: true - variable: wgeasy label: WG-Easy Configuration group: Configuration schema: type: dict additional_attrs: true attrs: - variable: host label: Hostname or IP description: The public hostname or IP of your VPN server. schema: type: string required: true $ref: - "definitions/nodeIP" - variable: password label: Password for WebUI description: When set, requires a password when logging in to the Web UI. schema: type: string private: true default: "" - variable: keep_alive label: Persistent Keep Alive description: Value in seconds to keep the "connection" open. If this value is 0, then connections won't be kept alive. schema: type: int required: true default: 0 - variable: client_mtu label: Clients MTU description: The MTU the clients will use. schema: type: int required: true default: 1420 - variable: client_address_range label: Clients IP Address Range description: Clients IP address range. schema: type: string required: true default: 10.8.0.x - variable: client_dns_server label: Clients DNS Server description: Clients DNS Server. schema: type: string required: true default: "1.1.1.1" - variable: allowed_ips label: Allowed IPs description: Allowed IPs clients will use. If none provided, <0.0.0.0/0,::/0> will be used. schema: type: list default: [] items: - variable: entry label: Allowed IP Entry schema: type: string required: true default: "" - variable: environmentVariables label: WG-Easy Environment group: Configuration schema: type: list default: [] items: - variable: environmentVariable label: Environment Variable schema: type: dict attrs: - variable: name label: Name schema: type: string required: true default: "" - variable: value label: Value schema: type: string default: "" required: true - variable: appVolumeMounts label: WG-Easy Storage group: Storage schema: type: dict attrs: - variable: config label: Configuration Volume schema: type: dict attrs: - variable: datasetName label: Configuration Volume Dataset Name schema: type: string hidden: true $ref: - normalize/ixVolume show_if: [["hostPathEnabled", "=", false]] default: ix-wg-easy_config editable: false - variable: mountPath label: Configuration Mount Path description: Path where the volume will be mounted inside the pod schema: type: path hidden: true editable: true default: /etc/wireguard - variable: hostPathEnabled label: Enable Custom Host Path for WG-Easy Configuration Volume schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: Host Path for WG-Easy Configuration Volume schema: type: hostpath required: true immutable: true $ref: - validations/lockedHostPath - variable: extraAppVolumeMounts label: Extra Host Path Volumes group: Storage schema: type: list items: - variable: extraAppVolume label: Host Path Volume description: Add an extra host path volume for WG-Easy application schema: type: dict attrs: - variable: mountPath label: Mount Path in Pod description: Path where the volume will be mounted inside the pod schema: type: path required: true - variable: hostPath label: Host Path description: Host path schema: type: hostpath required: true $ref: - validations/lockedHostPath - variable: enableResourceLimits label: Enable Pod resource limits group: Resource Limits schema: type: boolean default: false - variable: cpuLimit label: CPU Limit resource limits description: CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100. group: Resource Limits schema: type: string show_if: [["enableResourceLimits", "=", true]] valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)" default: 4000m - variable: memLimit label: Memory Limit group: Resource Limits description: Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi schema: type: string show_if: [["enableResourceLimits", "=", true]] valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" default: 8Gi