aerokube / charts Goto Github PK
View Code? Open in Web Editor NEWAerokube Helm Charts Repository
Home Page: https://charts.aerokube.com/
License: Apache License 2.0
Aerokube Helm Charts Repository
Home Page: https://charts.aerokube.com/
License: Apache License 2.0
With Custom Ingress, while accessing Selenium URL ex: "moon.aerokube.local/wd/hub" it gives 404 error.
But while using the default configuration with default Ingress its working fine.
Please refer the below screenshot:
Currently only hard-coded devices set default is installed.
We're missing TLS section in ingress definition.
It can be added as whole: 1:1 from values, or parsed into fields/ranges.
I am using moon with role-based access to S3 on AWS. In moon1 there was an option to set annotations on the service account provided by the moon helm chart, i really like that the helm chart in v2 allows to specify a different service-account. But for upgrading from moon to moon2, i would now need to create another service account to set the annotation. Could we just add the code from moon1 helm chart?
{{- if and .Values.moon.serviceaccount .Values.moon.serviceaccount.annotations }}
annotations:
{{- range $key, $value := .Values.moon.serviceaccount.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
The new version of the chart contains a priorityClass definition that defaults to "default". This can block upgrade for clusters without priorityClass "default" objects (GKE have no this class by default).So, updating the chart throws a timeout error.
It would be nice to keep the value of priorityClassName null
(unexists) if the value not present in chart values.
Sometimes is needed to override Kubernetes API location.
In perious version of Moon (V1) charts/moon/values.yaml, we are able to customise Ingress (enable/disable), able to modify Ingress Class. But in Latest version (V2) charts/moon2/values.yaml there is no option to modify Ingress.
We want to use AWS ALB as a IngressClass and want to customise ingress annotations, so is there any way by which we can customise Ingress with V2 as we did in V1?
I want to add a Prometheus ServiceMonitor, but there are no labels on the service to select for and i can't add additional labels through the helm chart.
Hi,
we use rancher as a cluster manager. If I set the following yaml as values, then the entry in the user htpasswd secrect contains an empty space. This way, the login wont work. Removing the empty space makes it work again.
Here is the yaml:
moon:
htpasswd: |
test:$apr1$.dZyHlKN$jdoZkin/kPviFNArx/cVL1
service:
type: NodePort
If I remove the service configuration, than there will be no empty space.
`helm repo add aerokube https://charts.aerokube.com/
helm repo update
helm upgrade --install -n moon moon2 aerokube/moon2
curl -H'Content-Type: application/json' http://moon.aerokube.local/wd/hub/session -d'{ "capabilities": {"alwaysMatch": {"browserName": "chrome","moon:options": {"enableVideo": true,"logLevel": "DEBUG","sessionTimeout": "5m"}}}}''
"unknown error: DevToolsActivePort file doesn't exist"
Chrome session start and working.
Chrome and MicrosoftEdge browsers crashed on centos k8s nodes, centos version: CentOS Linux release 7.9.
After launching on these nodes pod stopped with message:
MountVolume.SetUp failed for volume "usergroup" : configmap "microsoftedge-102-0-1245-443c14ec8d-6af8-4e33-83db-560bd9f51b2d" not found
Debug logs:
[1656416948.274][INFO]: Launching Microsoft Edge: /usr/bin/microsoft-edge --allow-pre-commit-input --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-blink-features=ShadowDOMV0 --enable-logging --log-level=0 --no-first-run --no-service-autorun --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/.com.microsoft.Edge.XGx3zi data:,
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
[0628/114908.333781:ERROR:process_memory_range.cc(86)] read out of range
[0628/114908.333891:ERROR:elf_image_reader.cc(606)] missing nul-terminator
[0628/114908.338018:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0628/114908.338061:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
[40:40:0100/000000.363401:ERROR:zygote_linux.cc(650)] write: Broken pipe (32)
[1656416948.395][INFO]: [01a3e4b9e77aaaec8ddeda6ad0d4de02] RESPONSE InitSession ERROR unknown error: Microsoft Edge failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from msedge location /usr/bin/microsoft-edge is no longer running, so msedgedriver is assuming that msedge has crashed.)
[1656416948.395][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1656416948.395][DEBUG]: Log type 'browser' lost 0 entries on destruction
There are no any troubles when we use ubuntu 20.04 nodes.
Add an option to fully regenerate index from S3.
I am unable to change the default moon service type to NodePort because I have custom Ingress enabled
https://github.com/aerokube/charts/blob/master/moon2/templates/service.yaml#L70
Hi,
I am trying to add multiple quotas to moon deployment and facing this error
Error: UPGRADE FAILED: template: moon2/templates/service-accounts.yaml:2:36: executing "moon2/templates/service-accounts.yaml" at <$quota.namespace>: nil pointer evaluating interface {}.namespace
quota:
moon: null
alfa-team:
namespace: dois-moon-ccg
skipCreateNamespace: true
serviceAccountName: custom
password: ccg-team-password
serviceAccountAnnotations: {}
beta-team:
namespace: dois-moon-jive
skipCreateNamespace: true
serviceAccountName: custom
serviceAccountAnnotations: {}
This is the changes added in values.yaml.
Seems guys, you don't have chart versioning. This is a little confusing, as every deploy using tagged helm chart should be identical.
So we need: helm versioning+chart packing, or master branch versioning aligned with chart versioning.
As the name suggests, the current Moon 2 helm chart doesn't allow the setting of custom ingressClassName or annotations.
I'd like to add a specific cert manager issuer annotation + some oauth2 redirect annotations.
Dear developers, Is it possible to deploy a moon in another location like moon.example.com/moon/? This is necessary because the namespace already has an application that refers to the root location. Thank you!
Hello,
when using OpenShift as a container plattform it is necessary to disable the security context because OpenShift is starting the pods in a defined range for user and group ids. For the moon deployment it is already possible to disable the security context in the values.yaml file. But for the testing pods created by moon it's not possible to disable the security context. By default they are started with the user id 106.
As a workaround we configured the user id and group id to one of the ids in the range that the OpenShift project has assigned.
It would be great if the deployment arguments would have an option that would allow us to disable the securityContext for pods created by the main moon deployment.
Best regards
After installing moon on Azure kubernetes cluster (available resources: 4 CPU, 10 GB RAM):
helm upgrade --install \
-n "${KUBE_NAMESPACE}" \
--set moon.ingress.enabled=true \
--set moon.ingress.host="${CI_ENVIRONMENT_URL}" \
--set moon.htpasswd="${MOON_HTPASSWD}" \
--set moon.ui.auth.enabled=true \
--set moon.ui.externalAccess=true \
--version "1.1.13" \
moon aerokube/moon
We're experiencing random browser pods freezes during tests. During each run 10-40% of test finish with status Unknown
.
Moon kubernetes log is filled with:
Oct 12 09:27:57.119 | moon-798ffbfd58-jdtm2 | 2021/10/12 07:27:57 [SESSION_NOT_FOUND]: [lookup chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060.moon-browsers on 10.0.0.10:53: no such host] [-] [20.67.154.232] [/wd/hub/session/chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060/element]
Oct 12 09:27:57.127 | moon-798ffbfd58-jdtm2 | 2021/10/12 07:27:57 [SESSION_NOT_FOUND]: [lookup chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060.moon-browsers on 10.0.0.10:53: no such host] [-] [20.67.154.232] [/wd/hub/session/chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060/element]
Oct 12 09:27:57.150 | moon-798ffbfd58-jdtm2 | 2021/10/12 07:27:57 [SESSION_NOT_FOUND]: [lookup chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060.moon-browsers on 10.0.0.10:53: no such host] [-] [20.67.154.232] [/wd/hub/session/chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060]
Oct 12 09:27:57.163 | moon-798ffbfd58-jdtm2 | 2021/10/12 07:27:57 [SESSION_NOT_FOUND]: [lookup chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060.moon-browsers on 10.0.0.10:53: no such host] [-] [20.67.154.232] [/wd/hub/session/chrome-92-0-a5aadc9a-c19f-4716-ba48-be0e95c35060]
We never seen such issues with our kubernetes cluster or with the same tests run locally (via docker-compose).
We tried to implement fix for Browser pods are freezing using Azure docs, but it didn't had any effect on random freezes:
cat >corednsms.yaml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns-custom
namespace: kube-system
data:
moon.server: | # you may select any name here, but it must end with the .server file extension
moon.svc.cluster.local:53 {
errors
kubernetes cluster.local {
namespaces wdio-selenoid-178-wdio-selenoid-moon
}
}
EOF
kubectl apply -f corednsms.yaml
kubectl get configmaps --namespace=kube-system coredns-custom -o yaml
kubectl scale rs --namespace kube-system coredns-bdc8f9c46 --replicas=0
We would appreciate any suggestions.
- name: moon-ui
image: aerokube/selenoid-ui:1.10.2
args:
- -status-uri
- http://localhost:8888
- -webdriver-uri
- http://localhost:4444
{{- if .Values.moon.enabled.resources }}
{{- if .Values.moon.ui }}
{{- if .Values.moon.ui.resources }}
This should be read from Values.moon.ui
Should update spec accordingly.
That's because it is sensitive to path prefix
port: 4444
- path: /mobile
port: 4444
- path: /
port: 8080```
Start working after changing order of paths
In some cases namespaces are created by third-party tools, so Moon chart should allow to turn off creating namespaces.
Should migrate from Drone.
It could be nice if we could choose to override images (for example to 'latest') instead of values from chart version.
charts/moon/templates/moon.yaml
Line 150 in b126080
Otherwise need to copy-paste for every version.
We are using the moon2 chart in multiple EKS clusters.
The chart was deployed manually via helm cli.
Now we want to migrate moon2 deployments to ArgoCD.
ArgoCD can not find the existing moon2 deployment because it looks for a deployment with a different name.
In other applications we fix this by setting the "fullnameOverride" value, but in this case we noticed that it is not possible to change the name of the resource and by default {{ .Release.Name }}
is used.
This is the case for most of the chart's resources.
For example: https://github.com/aerokube/charts/blob/6d6945b95ffbe4b3df52de1332006f61a7778972/moon2/templates/deployment.yaml#L9C1-L9C1
We would like the chart to have more customization options like fullnameOverride
so we can import the existing moon deployments into ArgoCD
No idea what's wrong. Browser pod consists of 3 containers but with disabled video the same situation
Hi
I set up moon on my minikube and tried to limit the access via htpasswd. So I created a test user with
htpasswd -Bbn testuser superstrongass | base64 and added in to the users secret then when I try to access the web UI it does not ask for user/pass.
I can see that the volume is mounted fine but I cannot sh in to the container (no shell) to check if the file is mounted.
Any idea what is wrong?
Currently, the namespace comes from {{ .Release.name }}
Could you add a posibility to override from values.yml?
I'm reaching the limitation of pods given from max-moon-sessions when used as a dependency chart.
Need to assign cron job pods to exact nodes.
Hi, We've deployed moon2 setup. By setting the storage s3 configuration, we are able to get video recordings BUT we are not getting the logs of browser session in S3 bucket.
When i try to upgrade helm to latest version i face this issue:
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Config.spec.containers): unknown field "proxy" in com.aerokube.moon.v1.Config.spec.containers
values.yaml:
ingress:
enabled: true
host: moon.xxx.xxx
ingressClassName: nginx
service:
type: ClusterIP
deployment:
replicas: 2
configs:
default:
storage:
endpoint: https://s3.eu-west-1.amazonaws.com
bucket: moon
accessKey: dummy
secretKey: dummy
license: dummy
browsers:
default:
selenium:
chrome:
repository: quay.io/browser/google-chrome-stable
default: 112.0.5615.165-5
Any ideas?
Hi! I'm trying to set the pod annotation via the moon2 helm chart, but there's nothing in the documentation about that, and my trying to set it like
configs:
default:
containers:
browser:
annotations:
karpenter.sh/do-not-disrupt: "true"
returns
W1227 17:34:58.050243 28191 warnings.go:70] unknown field "spec.containers.browser.annotations"
and nothing works.
endpoint: https://s3.us-east-1.amazonaws.com
bucketName: ${module.s3_moon_bucket.s3_bucket_id}
version: S3v2```
This is my S3 config. Can't find any videos on the bucket
Right now if we release charts all versions are overwritten.
In my use case all nodes have taints, therefore the browser pods stay pending
getting "Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "networking.k8s.io/v1" " error. Please help
i think the helm chart should create an explicit serviceaccount for the moon browser pods and not use the default serviceaccount, since this grants the browser pod all permissions of the default serviceaccount. In a dedicated namespace and we could use the default serviceaccount (But if multiple apps share a namespace and pods don't have an explicit SA they will use the default SA with roles or cluster roles the SA might have higher privileges). Even in a dedicated namespace the helm chart has no option to set an annotation for the default serviceaccount to allow the upload to s3.
So my proposed change would be:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.