Coder Social home page Coder Social logo

aerokube / moon-deploy Goto Github PK

View Code? Open in Web Editor NEW
39.0 8.0 26.0 333 KB

Moon 1.x one-command deployment configuration

Home Page: https://aerokube.com/moon/latest

License: Apache License 2.0

moon kubernetes openshift deployment yaml manifests

moon-deploy's Introduction

moon-deploy's People

Contributors

aandryashin avatar asgoret avatar id1otpilot avatar robot-bucket avatar spasche avatar vania-pooh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moon-deploy's Issues

Only "moon_browser_total" metric available in Prometheus

Hi,

I deployed moon2 using the helm chart from aerokube repo and also applied moon-monitor.yaml from this repo.

When doing https://moon_url/metrics I see a lot of metrics, but in Prometheus I can only see moon_browser_total, which also gives me a value of 6 that makes no sense to me.

Is there a way to get all metrics in Prometheus?

Thank you

htpasswd needs to be base64 in helm chart

Today, if you set htpasswd via values.yaml, you need to convert the value to base64.
To fix this and make it easier using the helm-chart you can use the following:

users.htpasswd: {{ .Values.htpasswd | b64enc | quote }}

This way, the user does not need to encode it as helm does it for you.
Same for license key.

Least Priviledge Deployment for Kubernetes

The default deployment essentially requires clusterwide super-user. Is there a more restrictive set of permissions that might be possible here? Also, what if our kube cluster has restricted container registry sources, what source(s) do we need to add in order for moon to work?

user quota via helm

Today, to create a quota you need to do it manually after install. It would be great to be able to add user quotas via helm's values.yaml. This way, you can install the helm chart and set all values needed without doing something manually afterwards.

upload to s3 via iam role

I am running moon on aws(eks)
i have added

kind: ConfigMap
metadata:
  name: config
  namespace: moon
data:
  service.json: |
    {
      "s3": {
        "endpoint": "https://s3-eu-west-1.amazonaws.com",
        "bucketName": "my-moon-videos",
        "version": "S3v2"
      },
      "images": {
        "videoRecorder": "aerokube/moon-video-recorder:latest-release",
        "defender": "aerokube/defender:latest-release",
        "logger": "aerokube/logger:latest-release"
      }
    }

and no matter what I change if I access the logs
k logs -f pod/moon-86b77d86d8-nxpvt moon
I get [INIT] [S3 upload is disabled: no S3 endpoint specified]

How do i enable the S3 upload

Slow tests

Hi, my team came across with slow test with playwright and nodejs.
Do you have any way of debugging the reason why the speed is low?

Ingress for moon-ui doesn't affect base paths for the static js resources

I'v used the helm chart to install the moon. I used /moon-ui as an ingress path. It works and the index.html can be loaded from /moon-ui/index.html but it has no effect on paths to the static resources in the React app. For example the compiled source is loaded from
https://minikube.infra/static/js/2.e94fd302.chunk.js instead of https://minikube.infra/moon-ui/static/js/2.e94fd302.chunk.js

Affinity for pods

Would be great if the helm chart has a configureable affinity for the moon pods and moon browser pods. For example, we have a cluster with nodes in different regions and we want all our tests to run in the same region. We have a label on all our nodes so we can set the affinity based on that to select a region for pods.

Migrate from Ingress extensions/v1beta1 to avoid being broken in 1.22

According to https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/

"The v1.22 release will stop serving the following deprecated API versions in favor of newer and more stable API versions:

Ingress in the extensions/v1beta1 API version will no longer be served
Migrate to use the networking.k8s.io/v1beta1 API version, available since v1.14. Existing persisted data can be retrieved/updated via the new version."

Now "helm/templates/ingress.yml" has "apiVersion: extensions/v1beta1" that will break deployment in the future v1.22. Just to help you to keep it in view.

"Enabled" key in resources definition breaks helm3/k8s 1.16 deployment

Resources definition contains 'enabled' keyword, for which helm template is checked.
Then, based on a decision, 'enabled: true' is pasted into k8s resource manifest which breaks deployment with :
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(Deployment.spec.template.spec.containers[0].resources): unknown field "enabled" in io.k8s.api.core.v1.ResourceRequirements, ValidationError(Deployment.spec.template.spec.containers[1].resources): unknown field "enabled" in io.k8s.api.core.v1.ResourceRequirements, ValidationError(Deployment.spec.template.spec.containers[2].resources): unknown field "enabled" in io.k8s.api.core.v1.ResourceRequirements]

tested with helm: 3.2.4 and kubernetes 1.17.

Attached commit is one of ways how we can avoid this (probably even not the best one :) )

apiVersion: core/v1 doesnt work with kubernetes v1.14.7 or v1.15.4

You changes of apiVersion in #52 breaks the deployment for kubernetes v1.14.7 and v1.15.4.

Error is:

Failed` to install app moon. Error: validation failed: [unable to recognize "": no matches for kind "ResourceQuota" in version "core/v1", unable to recognize "": no matches for kind "Secret" in version "core/v1", unable to recognize "": no matches for kind "Secret" in version "core/v1", unable to recognize "": no matches for kind "ConfigMap" in version "core/v1", unable to recognize "": no matches for kind "Service" in version "core/v1", unable to recognize "": no matches for kind "Service" in version "core/v1"]

Did you mean "apps/v1" instead of "core/v1", because we needed to change our pods to this api version to support kubernetes 1.16. If not, any other hint that causes this error?

Security issue

Hi!
How to configure which service account to use? By default, the moon tries to use SA "default" which already exist in namespace and belong to system SA. If I created another SA moon doesn't us it.

Issue:

2020/04/14 13:36:59 [INIT] [Failed to initialize license: failed to load initial pods limit: failed to fetch required resource quota information: resourcequotas is forbidden: User "system:serviceaccount:moon:default" cannot list resourcequotas in the namespace "moon": no RBAC policy matched]

Added liveness and readiness probe

# Deployment
      spec:
        # ....
        livenessProbe:
          httpGet:
            path: /wd/hub/status
            port: 4444
          initialDelaySeconds: 30
          timeoutSeconds: 5
        readinessProbe:
          httpGet:
            path: /wd/hub/status
            port: 4444
          initialDelaySeconds: 30
          timeoutSeconds: 5

Wrong pod count if used as requirement in a helm chart

If we use you helm chart as requirement, then the pods are counted wrong. Our helm chart already uses 4 pods an so we couldnt create any browser sesssion. Changeing parallelSessions to 8 or 10 didnt help. For now, we need to install your helm chart on its own, then everything works as expected.

Add to hub.helm.sh

Should be possible to install Moon with one or several helm commands.

Provide a helm repository for moon

Would be great if you provide a helm repository for moon.

Currently we have to checkout moon deploy, create a helm tgz and deploy it to our private repository.

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.