Browser automation solution for Kubernetes and Openshift supporting Selenium, Playwright, Puppeteer and Cypress
APACHE-2.0 License
Bot releases are visible (Hide)
Published by vania-pooh almost 3 years ago
Published by vania-pooh almost 3 years ago
Published by vania-pooh about 3 years ago
Starting from this release Selenium session idle timeout works a bit differently. Session is now considered idle between the end of previous command and the start of the next command (previously idle time included command execution duration too). The most visible difference can be with page loading in the browser. Previously too slow page loading (sometimes caused by missing firewall rules) led to session timeout and broken tests. Now the same will run forever and should lead to test case timeout. This should allow to easily make distinction between too long idle time between Selenium commands and issues with system under test.
cypress-moon
binaries with CGO_ENABLED=0
Published by vania-pooh about 3 years ago
/etc/hosts
entries and DNS servers for Cypress, Playwright and PuppeteernodeSelector
globallyname
capability in mobile emulationlabels
capabilityPublished by vania-pooh over 3 years ago
Respective documentation: https://aerokube.com/moon/latest/#_using_cypress
firstMatch
support in capabilitiesHost
header in Selenium requestsPublished by vania-pooh over 3 years ago
moon-auth
command-line flagsPublished by vania-pooh over 3 years ago
moon-monitor
modulePublished by vania-pooh over 3 years ago
Published by vania-pooh over 3 years ago
/mobile
APIPublished by vania-pooh almost 4 years ago
logName
capabilityPublished by vania-pooh about 4 years ago
tmpfs
for browser podsenv
sectionrunAs
in service.json
does not workPublished by vania-pooh over 4 years ago
name
and timeZone
parameters support for PlaywrightPublished by vania-pooh over 4 years ago
Published by vania-pooh over 4 years ago
This release is a backport of changes stabilizing DNS-resolution logic that will appear in 1.6.x series.
Published by vania-pooh over 4 years ago
logger
and video-recorder
fsGroup
for browser podsPublished by vania-pooh over 4 years ago
In this release we unified how you should specify resources for browser images in browsers.json
and service images in service.json
files. You can now specify requests
and limits
in service.json
file as follows:
Before:
{
"images": {
"logger": {
"image": "my-registry.example.com/moon/logger:latest-release",
"cpu": "0.3",
"mem": "1024Mi"
}
}
}
Now:
{
"images": {
"logger": {
"image": "my-registry.example.com/moon/logger:latest-release",
"resources": {
"limits": {
"cpu": "0.3",
"memory": "1024Mi"
},
"requests": {
"cpu": "0.3",
"memory": "1024Mi"
}
}
}
}
}
In previous releases all browsers pods by default were created with SYS_ADMIN
Linux kernel capability. To work in restricted environments starting from this release by default browser pods are created without this capability. This change mainly influences working with Chromium-based browsers. You have two options:
Option 1. Configure Moon to continue running all browser pods with SYS_ADMIN
kernel capability. To have this option - just add the following to Moon service.json
configuration file:
{
"kernelCaps": [ "SYS_ADMIN" ]
}
This is what we do by default in our official deployment manifests.
Option 2. Start Chrome with --no-sandbox
flag from your test code.
When doing a rolling update from 1.4.x series you can see the following messages in moon-api
log:
2020/05/21 14:54:45 [STATUS_REQUEST_ERROR] [127.0.0.1] [parse enableVideo: strconv.ParseBool: parsing "": invalid syntax]
These messages will disappear as soon as browser pods created by 1.4.x are deleted.
enableVideo
in /status
APIrequests
and limits
for service images separatelyPublished by vania-pooh over 4 years ago
Starting from this release Moon does not explicitly set SYS_ADMIN
kernel capability by default and is trying to set correct uid
and gid
for browser pod. SYS_ADMIN
capability could be added explicitly as shown in docs.
Published by vania-pooh over 4 years ago
Published by vania-pooh almost 5 years ago
In all previous releases Moon was automatically creating a separate Kubernetes service for every new browser pod for network connectivity purposes. Starting from this release these services are not created. Such architectural change leads to times less HTTP requests being sent to Kubernetes API and to improved Selenium session startup time. The only change you need to do in deployment manifests is adding one more service as follows:
apiVersion: v1
kind: Service
metadata:
name: browsers
namespace: moon
spec:
selector:
moon: browser
clusterIP: None
publishNotReadyAddresses: true
The name of the service should correspond to the value of Moon -domain-name
flag (default is browsers
). All required changes were already done in our official deployment manifests.
name
capability during session creationPublished by vania-pooh almost 5 years ago
labels
capability support-moon-url
parameters