Giter Site home page Giter Site logo

k8s-devicefarmer's Introduction

k8s-deviceFarmer

Manifests to deploy most recent stable release of openstf in k8s. The manifests evolve the helm chart from agoda to the current k8s APIs.

Quickstart

Install the chart:

helm install my-farm ./manifests/openstf/

This command will create an instance of the chart running in the cluster with the name my-farm. To delete the instance from your cluster:

helm delete my-farm 

Step by step deployment

  • Step 1) Install helm

  • Step 2) Deploy your cluster of choice (in this case a single node k8s cluster):

deploy_snc

The command deploys a K0s cluster on the local machine. Note that this script requires root privileges.

  • Step 3 option a) Deploy pre-requirements such as rethinkdb and all the deviceFarmer apps in a helm chart:
deploy_farm

The above command also uses flannel SDN and metallb to get external access to openstf services. (Root privileges required.)

  • Step 3 option b) Assume adb-provider runs using podman in a node outside the k8s cluster. In the node mounting the phone by usb run:
podman play kube usb-phone.yaml
  • cont Step 3 option b) Deploy pre-requirements and deviceFarmer deployment except the apps needed to mount the phone:
deploy_farm_local_usb

The above command also uses flannel SDN and metallb to get external access to openstf services. (Root privileges required.)

  • Step 4) check that openstf pods and rethinkdb requirements are on a running state:
NAME                                        READY   STATUS    RESTARTS   AGE
rethinkdb-ff5dc4cb9-ddltg                   1/1     Running   0          3m19s
farm-openstf-api-7c7b8d5576-g57x4           1/1     Running   0          2m
farm-openstf-triproxy-app-fb7cfdfb5-tggpk   1/1     Running   0          2m
farm-openstf-apk-storage-78b47989b4-ndhb7   1/1     Running   0          2m
farm-openstf-app-7f7b9745cd-pf5fc           1/1     Running   0          2m
farm-openstf-img-storage-6488d7cc47-5rgwd   1/1     Running   0          2m
farm-openstf-auth-5f45f7484f-vvpkb          1/1     Running   0          2m
farm-openstf-processor-69757cd56c-q5hcq     1/1     Running   0          2m
farm-openstf-triproxy-dev-dbcfdbf7f-nqtgj   1/1     Running   0          2m
farm-openstf-reaper-68977d899b-sfw4g        1/1     Running   0          2m
farm-openstf-nginx-74f98974b4-bpk5r         1/1     Running   0          119s
farm-openstf-websocket-58fb67d58f-f455n     1/1     Running   0          119s
farm-openstf-storage-756f5f56c6-bkvrq       1/1     Running   0          119s
farm-openstf-provider-real-n2mtm            2/2     Running   0          2m
  • Step 5) Plug phone via USB to the k8s node mounting the USB. Start piloting your remote phone fleet:

STFscreen

  • Destroy the apps and the cluster:
destroy_farmer

Chart description

Packaging the Chart

For distribution purposes at scale it could be useful to package the helm chart into a single archive file. The helm chart can be packaged by runnning:

helm package openstf

In this case openstf is the path to the location where the chart source is located. The above command will place the archive openstf-release.tgz in the directoy you were when you ran the command.

All-in-one deviceFarmer in RHEL8

  • Install podman-compose. Not that RHEL8 requires Extra Packages for Linux (EPEL 8) to get podman-compose built properly.

  • To run device-farmer using podman, set the environment variables in the docker-compose-all.yml

    • TZ
    • RETHINKDB_PORT_28015_TCP
    • STF_ADMIN_EMAIL
    • STF_ADMIN_NAME
  • Run podman-compose as root to mount the usb:

cd manifests/openstf/stf-local/
echo IP=<YOUR_PUBLIC_IP_ADDRESS> >> .env
podman-compose -f docker-compose-all.yml up -d

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.