From 9c5d9b50af7ceedb99b5f37a033beba6fab530fd Mon Sep 17 00:00:00 2001 From: Xstar97 Date: Wed, 14 Sep 2022 18:01:22 -0400 Subject: [PATCH] fix(rcon-webadmin): move to stable. (#3775) * fix(rcon-webadmin): move to stable. * Rename README..md to README.md * fix things * update docs * Update charts/stable/rcon-webadmin/docs/installation.md Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> --- charts/incubator/rcon-webadmin/questions.yaml | 179 ------------ charts/incubator/rcon-webadmin/values.yaml | 37 --- .../rcon-webadmin/.helmignore | 0 .../rcon-webadmin/CHANGELOG.md | 0 .../rcon-webadmin/Chart.yaml | 15 +- .../rcon-webadmin/README.md | 0 .../stable/rcon-webadmin/docs/installation.md | 24 ++ .../rcon-webadmin/icon.png | Bin charts/stable/rcon-webadmin/questions.yaml | 257 ++++++++++++++++++ .../rcon-webadmin/templates/common.yaml | 0 charts/stable/rcon-webadmin/values.yaml | 69 +++++ cspell.config.yaml | 1 + 12 files changed, 359 insertions(+), 223 deletions(-) delete mode 100644 charts/incubator/rcon-webadmin/questions.yaml delete mode 100644 charts/incubator/rcon-webadmin/values.yaml rename charts/{incubator => stable}/rcon-webadmin/.helmignore (100%) rename charts/{incubator => stable}/rcon-webadmin/CHANGELOG.md (100%) rename charts/{incubator => stable}/rcon-webadmin/Chart.yaml (89%) rename charts/{incubator => stable}/rcon-webadmin/README.md (100%) create mode 100644 charts/stable/rcon-webadmin/docs/installation.md rename charts/{incubator => stable}/rcon-webadmin/icon.png (100%) create mode 100644 charts/stable/rcon-webadmin/questions.yaml rename charts/{incubator => stable}/rcon-webadmin/templates/common.yaml (100%) create mode 100644 charts/stable/rcon-webadmin/values.yaml diff --git a/charts/incubator/rcon-webadmin/questions.yaml b/charts/incubator/rcon-webadmin/questions.yaml deleted file mode 100644 index 12d83a6b02b..00000000000 --- a/charts/incubator/rcon-webadmin/questions.yaml +++ /dev/null @@ -1,179 +0,0 @@ -# Include{groups} -portals: - open: -# Include{portalLink} -questions: -# Include{global} -# Include{controller} -# Include{controllerDeployment} -# Include{replicas} -# Include{replica1} -# Include{strategy} -# Include{recreate} -# Include{controllerExpert} -# Include{controllerExpertExtraArgs} - - variable: env - group: "Container Configuration" - label: "Image Environment" - schema: - additional_attrs: true - type: dict - attrs: - - variable: RWA_ADMIN - label: "RWA_ADMIN" - description: "Container Variable RWAADMIN" - schema: - type: string - default: "TRUE" - - variable: RWA_USERNAME - label: "RWA_USERNAME" - description: "Container Variable RWAUSERNAME" - schema: - type: string - default: "admin" - - variable: RWA_PASSWORD - label: "RWA_PASSWORD" - description: "Container Variable RWAPASSWORD" - schema: - type: string - default: "admin" - - variable: RWA_ENV - label: "RWA_ENV" - description: "Container Variable RWAENV" - schema: - type: string - default: "False" -# Include{containerConfig} -# Include{serviceRoot} - - variable: main - label: "Main Service" - description: "The Primary service on which the healthcheck runs, often the webUI" - schema: - additional_attrs: true - type: dict - attrs: -# Include{serviceSelectorSimple} -# Include{serviceSelectorExtras} - - variable: main - label: "Main Service Port Configuration" - schema: - additional_attrs: true - type: dict - attrs: - - variable: port - label: "Port" - description: "This port exposes the container port on the service" - schema: - type: int - default: 4326 - required: true -# Include{advancedPortHTTP} - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 4326 - - variable: websocketacces - label: 'websocketacces service' - description: "Container Port 4327" - schema: - additional_attrs: true - type: dict - attrs: -# Include{serviceSelectorSimple} -# Include{serviceSelectorExtras} - - variable: websocketacces - label: "websocketacces Service Port Configuration" - schema: - additional_attrs: true - type: dict - attrs: - - variable: port - label: "Port" - description: "This port exposes the container port on the service" - schema: - type: int - default: 4327 - required: true -# Include{advancedPortTCP} - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 4327 -# Include{serviceExpertRoot} - default: false -# Include{serviceExpert} -# Include{serviceList} -# Include{persistenceRoot} - - variable: db - label: "db Storage" - description: "Container Path optrcon-web-admindb" - schema: - additional_attrs: true - type: dict - attrs: -# Include{persistenceBasic} -# Include{persistenceAdvanced} -# Include{persistenceList} -# Include{ingressRoot} - - variable: main - label: "Main Ingress" - schema: - additional_attrs: true - type: dict - attrs: -# Include{ingressDefault} -# Include{ingressTLS} -# Include{ingressTraefik} -# Include{ingressExpert} -# Include{ingressList} -# Include{security} -# Include{securityContextAdvancedRoot} - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false -# Include{securityContextAdvanced} -# Include{podSecurityContextRoot} - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 0 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 -# Include{podSecurityContextAdvanced} -# Include{resources} -# Include{advanced} -# Include{addons} -# Include{documentation} diff --git a/charts/incubator/rcon-webadmin/values.yaml b/charts/incubator/rcon-webadmin/values.yaml deleted file mode 100644 index eaf835a8635..00000000000 --- a/charts/incubator/rcon-webadmin/values.yaml +++ /dev/null @@ -1,37 +0,0 @@ -env: - RWA_ADMIN: "TRUE" - RWA_ENV: "False" - RWA_PASSWORD: admin - RWA_USERNAME: admin -image: - pullPolicy: IfNotPresent - repository: tccr.io/truecharts/rcon-webadmin - tag: latest@sha256:1a43f3e778887d61fbdc037c0ead3ffc71fbaf7eb4537ef8b73236772cb2fb8c -persistence: - db: - enabled: true - mountPath: /opt/rcon-web-admin/db -podSecurityContext: - runAsGroup: 0 - runAsUser: 0 -securityContext: - readOnlyRootFilesystem: false - runAsNonRoot: false -service: - main: - ports: - main: - port: 4326 - protocol: HTTP - targetPort: 4326 - websocketacces: - enabled: true - ports: - websocketacces: - enabled: true - port: 4327 - protocol: TCP - targetPort: 4327 - -portal: - enabled: true diff --git a/charts/incubator/rcon-webadmin/.helmignore b/charts/stable/rcon-webadmin/.helmignore similarity index 100% rename from charts/incubator/rcon-webadmin/.helmignore rename to charts/stable/rcon-webadmin/.helmignore diff --git a/charts/incubator/rcon-webadmin/CHANGELOG.md b/charts/stable/rcon-webadmin/CHANGELOG.md similarity index 100% rename from charts/incubator/rcon-webadmin/CHANGELOG.md rename to charts/stable/rcon-webadmin/CHANGELOG.md diff --git a/charts/incubator/rcon-webadmin/Chart.yaml b/charts/stable/rcon-webadmin/Chart.yaml similarity index 89% rename from charts/incubator/rcon-webadmin/Chart.yaml rename to charts/stable/rcon-webadmin/Chart.yaml index 33b39a6a809..20f71415de1 100644 --- a/charts/incubator/rcon-webadmin/Chart.yaml +++ b/charts/stable/rcon-webadmin/Chart.yaml @@ -1,8 +1,3 @@ -annotations: - truecharts.org/SCALE-support: "true" - truecharts.org/catagories: | - - GameServers - - Tools-Utilities apiVersion: v2 appVersion: "latest" dependencies: @@ -11,7 +6,7 @@ dependencies: version: 10.5.9 deprecated: false description: "Out of the box, RCON Web Admin can check users for high ping, VAC status, or filter the chat for you around the clock." -home: https://truecharts.org/docs/charts/incubator/rcon-webadmin +home: https://truecharts.org/docs/charts/stable/rcon-webadmin icon: https://truecharts.org/img/hotlink-ok/chart-icons/rcon-webadmin.png keywords: - rcon-webadmin @@ -28,4 +23,10 @@ sources: - https://github.com/rcon-web-admin/rcon-web-admin - https://hub.docker.com/r/itzg/rcon/ type: application -version: 0.0.23 +version: 1.0.0 +annotations: + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U + truecharts.org/catagories: | + - GameServers + - Tools-Utilities diff --git a/charts/incubator/rcon-webadmin/README.md b/charts/stable/rcon-webadmin/README.md similarity index 100% rename from charts/incubator/rcon-webadmin/README.md rename to charts/stable/rcon-webadmin/README.md diff --git a/charts/stable/rcon-webadmin/docs/installation.md b/charts/stable/rcon-webadmin/docs/installation.md new file mode 100644 index 00000000000..9c1355c9d78 --- /dev/null +++ b/charts/stable/rcon-webadmin/docs/installation.md @@ -0,0 +1,24 @@ +# Installation Guide + +## Credentials + +- Set `RWA USERNAME` to any username for the web interface, defaults to **admin**. +- Set `RWA PASSWORD` to a secure password for the web interface. +- Set `RWA RCON PASSWORD` to the password for the initial RCON server to control. + +## Configuration + +- Set `RWA ADMIN` to **true** to make the initial user a admin. +- Set `RWA ENV` to **true** to use env variables. Setting this to **false** will use all default values. +- Set `RWA_WEB_RCON` to **true** to enable web rcon _if_ supported by the game server +- Set `RWA_READ_ONLY_WIDGET_OPTIONS` to **true** to prevent the initial user changing options in the widget options tab +- Set `RWA GAME` to a game such as minecraft | rust | csgo | other. +- Set `RWA SERVER NAME` to a custom name for the initial server. +- Set `RWA RCON HOST` To the initial RCON server IP to control. Cluster URL may work, but was not tested. +- Set `RWA RCON PORT` To the port number of the initial RCON server to control. +- Set `RWA_RESTRICT_COMMANDS` to prevent the initial user user executing these commands +- Set `RWA_RESTRICT_WIDGETS` to hide this list of widgets from the initial user + +## Notes + +- It's assumed that all game servers or services have secure passwords for RCON, blank or no passwords at all will **NOT** work and its advisable to set a secure password for both the web interface of this chart and also the rcon service too. diff --git a/charts/incubator/rcon-webadmin/icon.png b/charts/stable/rcon-webadmin/icon.png similarity index 100% rename from charts/incubator/rcon-webadmin/icon.png rename to charts/stable/rcon-webadmin/icon.png diff --git a/charts/stable/rcon-webadmin/questions.yaml b/charts/stable/rcon-webadmin/questions.yaml new file mode 100644 index 00000000000..e02946eca0b --- /dev/null +++ b/charts/stable/rcon-webadmin/questions.yaml @@ -0,0 +1,257 @@ +# Include{groups} +portals: + open: +# Include{portalLink} +questions: +# Include{global} +# Include{controller} +# Include{controllerDeployment} +# Include{replicas} +# Include{replica1} +# Include{strategy} +# Include{recreate} +# Include{controllerExpert} +# Include{controllerExpertExtraArgs} + - variable: secretEnv + group: Container Configuration + label: Image Secrets + schema: + additional_attrs: true + type: dict + attrs: + - variable: RWA_USERNAME + label: RWA USERNAME + description: Sets the initial user's username for the web interface. + schema: + type: string + default: "" + - variable: RWA_PASSWORD + label: RWA PASSWORD + description: Sets the initial user's password for the web interface. + schema: + type: string + default: "" + private: true + required: true + - variable: RWA_RCON_PASSWORD + label: RWA RCON PASSWORD + description: The password for the initial RCON server to control + schema: + type: string + default: "" + private: true + - variable: rcon + group: Container Configuration + label: RCON Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: rwa_env + label: RWA ENV + description: Enables configuration by environment variables. + schema: + type: boolean + default: false + - variable: rwa_admin + label: RWA ADMIN + description: Sets the initial user as an admin + schema: + type: boolean + default: true + - variable: rwa_web_rcon + label: RWA WEB RCON + description: Enables web rcon if supported by the game server + schema: + type: boolean + default: false + - variable: rwa_read_only_widget_options + label: RWA READ ONLY WIDGET OPTIONS + description: Prevent the initial user changing options in the widget options tab + schema: + type: boolean + default: false + - variable: rwa_game + label: RWA GAME + description: The initial game you wish to control. + schema: + type: string + default: minecraft + - variable: rwa_server_name + label: RWA SERVER NAME + description: The display name of the initial server + schema: + type: string + default: minecraft + - variable: rwa_rcon_host + label: RWA RCON HOST + description: The initial RCON server IP to control + schema: + type: string + default: "" + - variable: rwa_rcon_port + label: RWA_RCON_PORT + description: The port number of the initial RCON server to control + schema: + type: int + default: 25575 + - variable: rwa_restrict_commands + label: RWA RESTRICT COMMANDS + description: Prevent the initial user user executing these commands + schema: + type: list + default: [] + items: + - variable: command + label: command + schema: + type: string + required: true + default: "" + - variable: rwa_restrict_widgets + label: RWA RESTRICT WIDGETS + description: Hide this list of widgets from the initial user + schema: + type: list + default: [] + items: + - variable: widget + label: widget + schema: + type: string + required: true + default: "" +# Include{containerConfig} +# Include{serviceRoot} + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelectorSimple} +# Include{serviceSelectorExtras} + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 4326 + required: true +# Include{advancedPortHTTP} + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 4326 + - variable: websocketaccess + label: Web Socket Access service + description: Container Port 4327 + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelectorSimple} +# Include{serviceSelectorExtras} + - variable: websocketaccess + label: Web Socket Access Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 4327 + required: true +# Include{advancedPortTCP} + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 4327 +# Include{serviceExpertRoot} + default: false +# Include{serviceExpert} +# Include{serviceList} +# Include{persistenceRoot} + - variable: db + label: App DB Storage + description: Stores the Application DB. + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceAdvanced} +# Include{persistenceList} +# Include{ingressRoot} + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} +# Include{ingressTLS} +# Include{ingressTraefik} +# Include{ingressExpert} +# Include{ingressList} +# Include{security} +# Include{securityContextAdvancedRoot} + - variable: privileged + label: Privileged mode + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: ReadOnly Root Filesystem + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: Allow Privilege Escalation + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: runAsNonRoot + schema: + type: boolean + default: false +# Include{securityContextAdvanced} +# Include{podSecurityContextRoot} + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 0 + - variable: runAsGroup + label: runAsGroup + description: The groupID this App of the user running the application + schema: + type: int + default: 0 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 +# Include{podSecurityContextAdvanced} +# Include{resources} +# Include{advanced} +# Include{addons} +# Include{documentation} diff --git a/charts/incubator/rcon-webadmin/templates/common.yaml b/charts/stable/rcon-webadmin/templates/common.yaml similarity index 100% rename from charts/incubator/rcon-webadmin/templates/common.yaml rename to charts/stable/rcon-webadmin/templates/common.yaml diff --git a/charts/stable/rcon-webadmin/values.yaml b/charts/stable/rcon-webadmin/values.yaml new file mode 100644 index 00000000000..b038534ac4f --- /dev/null +++ b/charts/stable/rcon-webadmin/values.yaml @@ -0,0 +1,69 @@ +image: + pullPolicy: IfNotPresent + repository: tccr.io/truecharts/rcon-webadmin + tag: latest@sha256:1a43f3e778887d61fbdc037c0ead3ffc71fbaf7eb4537ef8b73236772cb2fb8c + +podSecurityContext: + runAsGroup: 0 + runAsUser: 0 + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +secretEnv: + RWA_USERNAME: admin + RWA_PASSWORD: pass + RWA_RCON_PASSWORD: pass + +rcon: + rwa_admin: true + rwa_env: false + rwa_web_rcon: false + rwa_read_only_widget_options: false + rwa_game: minecraft + rwa_server_name: minecraft + rwa_rcon_host: "" + rwa_rcon_port: 25575 + rwa_restrict_commands: + - command1 + - command2 + rwa_restrict_widgets: + - widget1 + - widget2 + +env: + RWA_ADMIN: '{{ ternary "TRUE" "FALSE" .Values.rcon.rwa_admin }}' + RWA_ENV: '{{ ternary "TRUE" "FALSE" .Values.rcon.rwa_env }}' + RWA_WEB_RCON: '{{ ternary "TRUE" "FALSE" .Values.rcon.rwa_web_rcon }}' + RWA_READ_ONLY_WIDGET_OPTIONS: '{{ ternary "TRUE" "FALSE" .Values.rcon.rwa_read_only_widget_options }}' + RWA_GAME: "{{ .Values.rcon.rwa_game }}" + RWA_SERVER_NAME: "{{ .Values.rcon.rwa_server_name }}" + RWA_RCON_HOST: "{{ .Values.rcon.rwa_rcon_host }}" + RWA_RCON_PORT: "{{ .Values.rcon.rwa_rcon_port }}" + RWA_RESTRICT_COMMANDS: '{{ join "," .Values.rcon.rwa_restrict_commands }}' + RWA_RESTRICT_WIDGETS: '{{ join "," .Values.rcon.rwa_restrict_widgets }}' + +service: + main: + ports: + main: + port: 4326 + protocol: HTTP + targetPort: 4326 + websocketaccess: + enabled: true + ports: + websocketaccess: + enabled: true + port: 4327 + protocol: TCP + targetPort: 4327 + +persistence: + db: + enabled: true + mountPath: /opt/rcon-web-admin/db + +portal: + enabled: true diff --git a/cspell.config.yaml b/cspell.config.yaml index d26e2781ae7..8d4a29116b5 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -32,6 +32,7 @@ words: - configmap - containo - crossplay + - csgo - daemonset - dbcreds - dbengine