feat(stable): BREAKING CHANGE migrate to new common part 1 (#7900)

**Description**
Part 1 of the migration to new common on the stable train.
This basically breaks most/all charts requiring a reinstall on SCALE as
well.

Helm users shouldn't need a reinstall but could migrate their
values.yaml modification manually besides backing-up and porting the
databases.

There be Dragons basically, as we obviously cannot 100% go over
each-and-every single app in the stable train like we did in the
enterprise train.

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [x] 🪛 Bugfix
- [x] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [x] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
Via CI and manually validation in a lot of cases where the CI did not
correctly check things.
Additional catalog item creation tooling for local testing has been
added as well.

**📃 Notes:**
There will be issues in the future but we should get as much working
well as we can.

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [x] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [x] 📄 I have made corresponding changes to the documentation
- [x] ⚠️ My changes generate no new warnings
- [x] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [x] ⬆️ I increased versions for any altered app according to semantic
versioning

**➕ App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🪞 I have opened a PR on
[truecharts/containers](https://github.com/truecharts/containers) adding
the container to TrueCharts mirror repo.
- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._
This commit is contained in:
Kjeld Schouten-Lebbing
2023-04-11 12:07:17 +02:00
committed by GitHub
parent 14bc83d3c7
commit 0b726419d4
1146 changed files with 15731 additions and 17107 deletions
+2 -3
View File
@@ -3,7 +3,7 @@ appVersion: "1.57.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 11.1.2
version: 12.2.32
description: Browserless is a web-service that allows for remote clients to connect, drive, and execute headless work
home: https://truecharts.org/charts/stable/browserless-chrome
icon: https://truecharts.org/img/hotlink-ok/chart-icons/browserless-chrome.png
@@ -20,9 +20,8 @@ name: browserless-chrome
sources:
- https://github.com/truecharts/charts/tree/master/charts/stable/browserless-chrome
- https://docs.browserless.io/docs/docker.html
version: 4.0.12
version: 5.0.0
annotations:
truecharts.org/catagories: |
- productivity
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+118 -131
View File
@@ -24,135 +24,122 @@ questions:
# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
- variable: env
group: "App Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: TOKEN
label: "TOKEN"
description: "You can optionally apply a TOKEN param that will restrict calls without a token query-string parameter"
schema:
type: string
default: ""
private: true
- variable: HOST
label: "HOST"
schema:
type: string
default: ""
- variable: WORKSPACE_DELETE_EXPIRED
label: "WORKSPACE_DELETE_EXPIRED"
description: "This will have browserless delete files older than 30 days in the workspace, checking once a day"
schema:
type: boolean
default: false
- variable: WORKSPACE_EXPIRE_DAYS
label: "WORKSPACE_EXPIRE_DAYS"
description: "Attempts to delete files older than X days in the workspace directory"
schema:
type: int
default: 30
- variable: CHROME_REFRESH_TIME
label: "CHROME_REFRESH_TIME"
description: "The CHROME_REFRESH_TIME flag accepts a value in milliseconds to keep Chrome running before it attempts to close it."
schema:
type: int
default: 3600000
- variable: MAX_CONCURRENT_SESSIONS
label: "MAX_CONCURRENT_SESSIONS"
description: "Since running Chrome can be rather resource intensive you'll probably want to limit the number of concurrent sessions."
schema:
type: int
default: 5
- variable: MAX_QUEUE_LENGTH
label: "MAX_QUEUE_LENGTH"
description: "This value determines how many items in the queue are allowed before requests are issued a 429 response code and closed."
schema:
type: int
default: 5
- variable: CONNECTION_TIMEOUT
label: "CONNECTION_TIMEOUT"
description: "How long any session can run for in milliseconds. defaults to 30000 ms or 30 seconds"
schema:
type: int
default: 30000
- variable: DEFAULT_BLOCK_ADS
label: "DEFAULT_BLOCK_ADS"
schema:
type: boolean
default: false
- variable: DEFAULT_HEADLESS
label: "DEFAULT_HEADLESS"
schema:
type: boolean
default: true
- variable: DEFAULT_IGNORE_HTTPS_ERRORS
label: "DEFAULT_IGNORE_HTTPS_ERRORS"
schema:
type: boolean
default: false
- variable: DEFAULT_IGNORE_DEFAULT_ARGS
label: "DEFAULT_IGNORE_DEFAULT_ARGS"
schema:
type: boolean
default: false
- variable: ENABLE_API_GET
label: "ENABLE_API_GET"
schema:
type: boolean
default: false
- variable: FUNCTION_ENABLE_INCOGNITO_MODE
label: "FUNCTION_ENABLE_INCOGNITO_MODE"
schema:
type: boolean
default: false
- variable: EXIT_ON_HEALTH_FAILURE
label: "EXIT_ON_HEALTH_FAILURE"
schema:
type: boolean
default: false
- variable: DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR
label: "DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR"
schema:
type: boolean
default: false
- variable: ENABLE_DEBUGGER
label: "ENABLE_DEBUGGER"
schema:
type: boolean
default: false
- variable: ENABLE_CORS
label: "ENABLE_CORS"
schema:
type: boolean
default: false
- variable: ENABLE_XVBF
label: "ENABLE_XVBF"
schema:
type: boolean
default: false
# Include{containerBasic}
# Include{containerAdvanced}
- variable: secretEnv
group: "App Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: TOKEN
label: "TOKEN"
description: "You can optionally apply a TOKEN param that will restrict calls without a token query-string parameter"
schema:
type: string
default: ""
private: true
- variable: env
group: "App Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: HOST
label: "HOST"
schema:
type: string
default: ""
- variable: WORKSPACE_DELETE_EXPIRED
label: "WORKSPACE_DELETE_EXPIRED"
description: "This will have browserless delete files older than 30 days in the workspace, checking once a day"
schema:
type: boolean
default: false
- variable: WORKSPACE_EXPIRE_DAYS
label: "WORKSPACE_EXPIRE_DAYS"
description: "Attempts to delete files older than X days in the workspace directory"
schema:
type: int
default: 30
- variable: CHROME_REFRESH_TIME
label: "CHROME_REFRESH_TIME"
description: "The CHROME_REFRESH_TIME flag accepts a value in milliseconds to keep Chrome running before it attempts to close it."
schema:
type: int
default: 3600000
- variable: MAX_CONCURRENT_SESSIONS
label: "MAX_CONCURRENT_SESSIONS"
description: "Since running Chrome can be rather resource intensive you'll probably want to limit the number of concurrent sessions."
schema:
type: int
default: 5
- variable: MAX_QUEUE_LENGTH
label: "MAX_QUEUE_LENGTH"
description: "This value determines how many items in the queue are allowed before requests are issued a 429 response code and closed."
schema:
type: int
default: 5
- variable: CONNECTION_TIMEOUT
label: "CONNECTION_TIMEOUT"
description: "How long any session can run for in milliseconds. defaults to 30000 ms or 30 seconds"
schema:
type: int
default: 30000
- variable: DEFAULT_BLOCK_ADS
label: "DEFAULT_BLOCK_ADS"
schema:
type: boolean
default: false
- variable: DEFAULT_HEADLESS
label: "DEFAULT_HEADLESS"
schema:
type: boolean
default: true
- variable: DEFAULT_IGNORE_HTTPS_ERRORS
label: "DEFAULT_IGNORE_HTTPS_ERRORS"
schema:
type: boolean
default: false
- variable: DEFAULT_IGNORE_DEFAULT_ARGS
label: "DEFAULT_IGNORE_DEFAULT_ARGS"
schema:
type: boolean
default: false
- variable: ENABLE_API_GET
label: "ENABLE_API_GET"
schema:
type: boolean
default: false
- variable: FUNCTION_ENABLE_INCOGNITO_MODE
label: "FUNCTION_ENABLE_INCOGNITO_MODE"
schema:
type: boolean
default: false
- variable: EXIT_ON_HEALTH_FAILURE
label: "EXIT_ON_HEALTH_FAILURE"
schema:
type: boolean
default: false
- variable: DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR
label: "DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR"
schema:
type: boolean
default: false
- variable: ENABLE_DEBUGGER
label: "ENABLE_DEBUGGER"
schema:
type: boolean
default: false
- variable: ENABLE_CORS
label: "ENABLE_CORS"
schema:
type: boolean
default: false
- variable: ENABLE_XVBF
label: "ENABLE_XVBF"
schema:
type: boolean
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{serviceMain}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
@@ -209,16 +196,16 @@ questions:
schema:
type: int
default: 568
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 568
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 568
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
- variable: fsGroup
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
@@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}
@@ -1 +1 @@
{{ include "tc.common.loader.all" . }}
{{ include "tc.v1.common.loader.all" . }}
+44 -39
View File
@@ -10,59 +10,64 @@ puppeteerImage:
imageSelector: "image"
secretEnv:
TOKEN: ""
env:
WORKSPACE_DIR: "/downloads"
METRICS_JSON_PATH: "/metrics/metrics.json"
# User Defined
HOST: ""
WORKSPACE_DELETE_EXPIRED: false
WORKSPACE_EXPIRE_DAYS: 30
CHROME_REFRESH_TIME: 3600000
MAX_CONCURRENT_SESSIONS: 5
MAX_QUEUE_LENGTH: 5
CONNECTION_TIMEOUT: 30000
DEFAULT_BLOCK_ADS: true
DEFAULT_HEADLESS: true
DEFAULT_IGNORE_HTTPS_ERRORS: true
DEFAULT_IGNORE_DEFAULT_ARGS: true
ENABLE_API_GET: true
FUNCTION_ENABLE_INCOGNITO_MODE: true
EXIT_ON_HEALTH_FAILURE: true
DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR: false
ENABLE_DEBUGGER: true
ENABLE_CORS: false
ENABLE_XVBF: true
# Enabling those, makes probe/app fail
# KEEP_ALIVE: true
# PREBOOT_CHROME: true
service:
main:
ports:
main:
port: 10194
protocol: http
targetPort: 3000
probes:
liveness:
path: "/metrics"
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
path: "/metrics"
readiness:
path: "/metrics"
startup:
path: "/metrics"
env:
WORKSPACE_DIR: "/downloads"
METRICS_JSON_PATH: "/metrics/metrics.json"
# User Defined
readiness:
path: "/metrics"
HOST: ""
WORKSPACE_DELETE_EXPIRED: false
WORKSPACE_EXPIRE_DAYS: 30
CHROME_REFRESH_TIME: 3600000
MAX_CONCURRENT_SESSIONS: 5
MAX_QUEUE_LENGTH: 5
CONNECTION_TIMEOUT: 30000
DEFAULT_BLOCK_ADS: true
DEFAULT_HEADLESS: true
DEFAULT_IGNORE_HTTPS_ERRORS: true
DEFAULT_IGNORE_DEFAULT_ARGS: true
ENABLE_API_GET: true
FUNCTION_ENABLE_INCOGNITO_MODE: true
EXIT_ON_HEALTH_FAILURE: true
DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR: false
ENABLE_DEBUGGER: true
ENABLE_CORS: false
ENABLE_XVBF: true
# Enabling those, makes probe/app fail
startup:
path: "/metrics"
# KEEP_ALIVE: true
# PREBOOT_CHROME: true
TOKEN: ""
persistence:
downloads:
enabled: true
mountPath: "/downloads"
mountPath: /downloads
metrics:
enabled: true
mountPath: "/metrics"
mountPath: /metrics
portal:
enabled: true
open:
enabled: true