feat(grist): BREAKING CHANGE - rework, adds postgres and more options (#4106)

* feat(grist): rework, adds postgres and more options

* update UI

* fix configmap

* nousername

* add few more opts
This commit is contained in:
Stavros Kois
2022-10-16 01:26:51 +03:00
committed by GitHub
parent 176f4b59de
commit 4a96288952
6 changed files with 388 additions and 152 deletions
+208 -125
View File
@@ -12,135 +12,218 @@ questions:
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: env
group: "Container Configuration"
label: "Image Environment"
- variable: grist
group: Container Configuration
label: Grist Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: GRIST_DEFAULT_EMAIL
label: "GRIST_DEFAULT_EMAIL"
description: "If set, login as this user if no other credentials presented"
- variable: domain
label: Domain
description: In hosted Grist, Grist is served from subdomains of this domain
schema:
type: string
required: true
default: ""
- variable: single_org
label: Single Org
description: Set to an org "domain" to pin client to that org
schema:
type: string
default: ""
- variable: GRIST_DOMAIN
label: "GRIST_DOMAIN"
description: "In hosted Grist, Grist is served from subdomains of this domain"
- variable: home_url
label: Home URL
description: URL prefix for home API
schema:
type: string
default: ""
- variable: GRIST_SUPPORT_ANON
label: "GRIST_SUPPORT_ANON"
description: "If set to true, show UI for anonymous access."
- variable: default_email
label: Default Email
description: If set, login as this user if no other credentials presented
schema:
type: boolean
default: false
- variable: GRIST_THROTTLE_CPU
label: "GRIST_THROTTLE_CPU"
description: "If set, CPU throttling is enabled"
type: string
default: ""
- variable: default_product
label: Default Product
description: If set, this controls enabled features and limits of new sites.
schema:
type: boolean
default: false
- variable: GRIST_BACKUP_DELAY_SECS
label: "GRIST_BACKUP_DELAY_SECS"
description: "Wait this long after a doc change before making a backup"
type: string
default: ""
- variable: default_locale
label: Default Locale
description: Locale to use as fallback when Grist cannot honour the browser locale.
schema:
type: string
default: ""
- variable: allowed_webhook_domains
label: Allowed Webhook Domains
description: Permitted domains to use in webhooks
schema:
type: list
default: []
items:
- variable: webhook_domain
label: Allowed Webhook Domain
schema:
type: string
default: ""
- variable: allowed_hosts
label: Allowed Hosts
description: Permitted domains origin for requests
schema:
type: list
default: []
items:
- variable: webhook_host
label: Allowed Webhook Host
schema:
type: string
default: ""
- variable: hide_ui_elements
label: Hide UI Elements
description: Parts of the UI to hide
schema:
type: list
default: []
items:
- variable: ui_element
label: UI Element to Hide
schema:
type: string
default: ""
enum:
- value: helpCenter
description: helpCenter
- value: billing
description: billing
- value: templates
description: templates
- value: multiSite
description: multiSite
- value: multiAccounts
description: multiAccounts
- variable: default_locale
label: Default Locale
description: Locale to use as fallback when Grist cannot honour the browser locale.
schema:
type: string
default: ""
- variable: max_upload_import_mb
label: Max Upload Import in MB
description: Max allowed size for imports (except .grist files) (0 for unlimited).
schema:
type: int
default: 15
- variable: ALLOWED_WEBHOOK_DOMAINS
label: "ALLOWED_WEBHOOK_DOMAINS"
description: "Comma-separated list of permitted domains to use in webhooks"
default: 0
- variable: max_upload_attachment_mb
label: Max Upload Attachment in MB
description: Max allowed size for attachments (except .grist files) (0 for unlimited).
schema:
type: int
default: 0
- variable: title_suffix
label: Title Suffix
description: A string to append to the end of the <title> in HTML documents.
schema:
type: string
default: " - Grist"
- variable: proxy_auth_header
label: Proxy Auth Header
description: Header which will be set by a (reverse) proxy web server with an authorized users email.
schema:
type: string
default: ""
- variable: enabledsandbox
label: "Sandbox"
- variable: cookie_max_age
label: Cookie Max Age
description: Session cookie max age
schema:
type: int
default: 90
- variable: force_login
label: Force Login
description: When set to true disables anonymous access
schema:
type: boolean
default: true
- variable: ignore_session
label: Ignore Session
description: If set, Grist will not use a session for authentication.
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: GRIST_SANDBOX_FLAVOR
label: "GRIST_SANDBOX_FLAVOR"
description: "If set, forces Grist to use the specified kind of sandbox."
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "pynbox"
description: "pynbox"
- value: "unsandboxed"
description: "unsandboxed"
- value: "docker"
description: "docker"
- value: "macSandboxExec"
description: "macSandboxExec"
- variable: GRIST_SANDBOX
label: "GRIST_SANDBOX"
description: "A program or image name to run as the sandbox. See NSandbox.ts for nerdy details."
schema:
type: string
default: ""
- variable: PYTHON_VERSION
label: "PYTHON_VERSION"
description: "If set, documents without an engine setting are assumed to use the specified version of python. Not all sandboxes support all versions."
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "2"
description: "2"
- value: "3"
description: "3"
- variable: PYTHON_VERSION_ON_CREATION
label: "PYTHON_VERSION_ON_CREATION"
description: "If set, newly created documents have an engine setting set to python2 or python3. Not all sandboxes support all versions."
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "2"
description: "2"
- value: "3"
description: "3"
- variable: enabledgdrive
label: "Google Drive Integration"
- variable: support_anon
label: Support Anon
description: When set to true, show UI for anonymous access
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: GOOGLE_CLIENT_ID
label: "GOOGLE_CLIENT_ID"
description: "Set to the Google Client Id to be used with Google API client"
schema:
type: string
default: ""
- variable: GOOGLE_CLIENT_SECRET
label: "GOOGLE_CLIENT_SECRET"
description: "Set to the Google Client Secret to be used with Google API client"
- variable: throttle_cpu
label: Throttle CPU
description: When set to true, CPU throttling is enabled
schema:
type: boolean
default: false
- variable: include_custom_css
label: Include Custom CSS
description: Set to true to include custom.css in static pages
schema:
type: boolean
default: false
- variable: google
label: Google Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: client_id
label: Client ID
description: Set to the Google Client Id to be used with Google API client
schema:
type: string
private: true
default: ""
- variable: GOOGLE_API_KEY
label: "GOOGLE_API_KEY"
description: "Set to the Google API Key to be used with Google API client (accessing public files)"
- variable: client_secret
label: Client Secret
description: Set to the Google Client Secret to be used with Google API client
schema:
type: string
private: true
default: ""
- variable: GOOGLE_DRIVE_SCOPE
label: "GOOGLE_DRIVE_SCOPE"
description: "Set to the scope requested for Google Drive integration (defaults to drive.file)"
- variable: api_key
label: API Key
description: Set to the Google API Key to be used with Google API client (accessing public files)
schema:
type: string
private: true
default: ""
- variable: drive_scope
label: Drive Scope
description: Set to the scope requested for Google Drive integration
schema:
type: string
default: drive.file
- variable: forward_auth
label: Forward Auth
schema:
additional_attrs: true
type: dict
attrs:
- variable: header
label: Header
description: If set, trust the specified header (e.g. "x-forwarded-user") to contain authorized user emails, and enable "forward auth" logins.
schema:
type: string
default: ""
- variable: login_path
label: Login Path
description: If Header is set, Grist will listen at this path for logins.
schema:
type: string
private: true
default: /auth/login
- variable: logout_path
label: Logout Path
description: If Header is set, Grist will forward to this path when user logs out.
schema:
type: string
private: true
@@ -148,8 +231,8 @@ questions:
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
label: Main Service
description: The Primary service on which the healthcheck runs, often the webUI
schema:
additional_attrs: true
type: dict
@@ -157,28 +240,28 @@ questions:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Main Service Port Configuration"
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"
label: Port
description: This port exposes the container port on the service
schema:
type: int
default: 10163
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
label: Target Port
description: The internal(!) port on the container the Application runs on
schema:
type: int
default: 10163
- variable: api
label: "API Service"
description: "API service"
label: API Service
description: API service
schema:
additional_attrs: true
type: dict
@@ -186,22 +269,22 @@ questions:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: api
label: "API Service Port Configuration"
label: API Service Port Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
label: Port
description: This port exposes the container port on the service
schema:
type: int
default: 10164
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
label: Target Port
description: The internal(!) port on the container the Application runs on
schema:
type: int
default: 10164
@@ -211,8 +294,8 @@ questions:
# Include{serviceList}
# Include{persistenceRoot}
- variable: persist
label: "App Persist Storage"
description: "Stores the Application Persist."
label: App Persist Storage
description: Stores the Application Persist.
schema:
additional_attrs: true
type: dict
@@ -222,7 +305,7 @@ questions:
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
label: Main Ingress
schema:
additional_attrs: true
type: dict
@@ -235,42 +318,42 @@ questions:
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
label: Privileged mode
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
label: ReadOnly Root Filesystem
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
label: Allow Privilege Escalation
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "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"
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"
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."
label: fsGroup
description: The group that should own ALL storage.
schema:
type: int
default: 568