Git Product home page Git Product logo

charts's Introduction

Aerokube Charts Repository

This repository contains source files for Aerokube Helm charts.

Usage

To use a stable chart version:

$ helm repo add aerokube https://charts.aerokube.com/
$ helm repo update
$ helm search repo aerokube
$ helm upgrade --install --set=moon.enabled.resources=false,service.externalIPs[0]=$(minikube ip) -n moon moon aerokube/moon

We are also building and packing an unstable chart version for every commit. To access these charts:

$ helm repo add aerokube-unstable https://charts.aerokube.com/unstable/
$ helm repo update
$ helm search repo aerokube-unstable --devel --versions
$ helm upgrade --install --devel -n moon moon aerokube-unstable/moon # --devel flag is required

charts's People

Contributors

aandryashin avatar adam-szucsmatyas avatar alien2150 avatar babantax avatar elkh510 avatar huang-jy avatar jaydee94 avatar johnxy84 avatar sanderknape avatar sergei-ak avatar sturman avatar vania-pooh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

charts's Issues

browser session doesnt work in openshift

Steps to reproduce

`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"}}}}''

What happened?

"unknown error: DevToolsActivePort file doesn't exist"

What was expected?

Chrome session start and working.

Immutable chart versioning

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.

Custom Ingress definition support

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?

Add chart customization options like fullnameOverride to the moon2 chart

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

Moon htpasswd does not limit access

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?

Doesn't work with AWS S3 and IAM role

      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

Empty space in htpasswd if helm chart is deployed via rancher

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.

Use dedicated service account for moon-browser pod

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:

  1. create a dedicated SA for moon browser pods instead of default
  2. make the creation of the SA optional (so the SA does not get created if a SA is specified via helm: configs.default.serviceAccountName: someother-serviceaccount)
  3. allow setting annotations on the dedicated SA, so i can grant the SA the aws-role

Adding multiple quotas failing with nil pointer

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.

Chrome and MicrosoftEdge browsers crashed on centos k8s nodes

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.

How to set annotation for the browser pod in Moon2?

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.

Random browser pods freezes

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.

No XSession started

Can't connect with VNC via UI
values.yaml

---
moon:
  ingress:
    host: moon-app.xxxxxx.io
  s3:
    endpoint: http://minio.xxxxx.io
    bucketName: moon
    accessKey: "moondata"
    secretKey: "moondata"

x11

Ignore security context for browser pods

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

Posiblility to change namespace

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.

Add option to set annotation on the aerokube provided serviceaccount (Moon2)

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 }}

Imposible to upgrade chart 1.1.14 -> 1.1.15

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.

custom location

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!

Can't upgrade to 2.5.0

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?

Helm chart is not working.

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

Image for moon-ui cannot be overridden from the values.yaml file

  - 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.