Releases: aerokube/moon
v1.5.2: DNS resolution improvements
This release is a backport of changes stabilizing DNS-resolution logic that will appear in 1.6.x series.
v1.5.1: better container permissions management
v1.5.0: Prometheus monitoring support
Breaking Changes
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"
}
}
}
}
}
Security Changes
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.
Known Update Issues
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.
New Features
- #128 - ability to configure service account name
- #139 - Prometheus monitoring support
- #166 - showing
enableVideo
in/status
API - #205 - ability to override
requests
andlimits
for service images separately
Improvements
v1.4.2: ability to run in restricted environment without root
v1.4.1: ability to set smaller resource quota limit
Improvements
- #198 - ability to set pods resource quota manually (and smaller than license allows)
v1.4.0: serviceless browser pods communication
Breaking Changes
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.
New Features
- #176 - capability to set S3 key pattern
- #177 - logging
name
capability during session creation - #180 - serviceless browser pods communication
Improvements
v1.3.9: Chrome Devtools protocol support
v1.3.8: pod deletion retries and unsolicited response issue fix
Improvements
This release covers stability when creating new sessions and deleting them (some rare cases causing pods to freeze were fixed).
v1.3.7: ability to disable CPU and memory limits
New features
- #155 - ability to disable CPU and memory limits