Skip to content

Latest commit

 

History

History
1278 lines (1138 loc) · 45.4 KB

crds.md

File metadata and controls

1278 lines (1138 loc) · 45.4 KB

Android Farm Operator CRD Reference

Packages:

Types

android.stf.io/v1alpha1

Package v1alpha1 contains API Schema definitions for the android v1alpha1 API group

Resource Types:

ADBConfig

(Appears on: DeviceGroup, STFConfig)

ADBConfig represents configuration options for the adb containers

Field Description
image string

Image for the adb servers. Defaults to quay.io/tinyzimmer/adbmon. Source in this repository.

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to attach to deployments using this image.

imagePullSecrets []Kubernetes core/v1.LocalObjectReference

Any pull secrets required for downloading the image.

resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the provider adb sidecars.

APIConfig

(Appears on: STFConfig)

APIConfig represents configuration options for the api servers

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the stf api servers

replicas int32

The number of api server replicas to run

AndroidDevice

AndroidDevice is the Schema for the androiddevices API

Field Description
metadata Kubernetes meta/v1.ObjectMeta Refer to the Kubernetes API documentation for the fields of the metadata field.
spec AndroidDeviceSpec

configRef Kubernetes core/v1.LocalObjectReference

A reference to an AndroidDeviceConfig to use for the emulators in this group.

deviceConfig AndroidDeviceConfigSpec

Any overrides to the config represented by the ConfigRef. Any values supplied here will be merged into the found AndroidDeviceConfig, with fields in this object taking precedence over existing ones in the AndroidDeviceConfig.

hostname string

A hostname to apply to the device (used by AndroidFarm controller)

subdomain string

A subdomain to apply to the device (used by AndroidFarm controller)

status AndroidDeviceStatus

AndroidDeviceConfig

AndroidDeviceConfig is the Schema for the androiddeviceconfigs API

Field Description
metadata Kubernetes meta/v1.ObjectMeta Refer to the Kubernetes API documentation for the fields of the metadata field.
spec AndroidDeviceConfigSpec

dockerImage string

The docker image to use for emulator devices

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to use for emulator pods

imagePullSecrets []Kubernetes core/v1.LocalObjectReference

Pull secrets required for the docker image.

adbPort int32

The ADB port that the emulator listens on. Defaults to 5555. A sidecar will be spawned within emulator pods that redirects external traffic to this port.

command []string

An optional command to run when starting an emulator image

args []string

Any arguments to pass to the above command.

extraPorts []Kubernetes core/v1.ContainerPort

Extra port mappings to apply to the emulator pods.

extraEnvVars []Kubernetes core/v1.EnvVar

Extra environment variables to supply to the emulator pods.

kvmEnabled bool

Whether to mount the kvm device to the pods, will require that the operator can launch privileged pods.

volumes []Volume

A list of volume configurations to apply to the emulator pods.

resources Kubernetes core/v1.ResourceRequirements

Resource restraints to place on the emulators.

startupJobTemplates []string

A list of AndroidJobTemplates to execute against new instances. TODO: Very very very beta

tcpRedir TCPRedirConfig

Configuration for the tcp redirection side car

status AndroidDeviceConfigStatus

AndroidDeviceConfigSpec

(Appears on: AndroidDeviceConfig, AndroidDeviceSpec, EmulatorConfig)

AndroidDeviceConfigSpec defines the desired state of AndroidDeviceConfig

Field Description
dockerImage string

The docker image to use for emulator devices

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to use for emulator pods

imagePullSecrets []Kubernetes core/v1.LocalObjectReference

Pull secrets required for the docker image.

adbPort int32

The ADB port that the emulator listens on. Defaults to 5555. A sidecar will be spawned within emulator pods that redirects external traffic to this port.

command []string

An optional command to run when starting an emulator image

args []string

Any arguments to pass to the above command.

extraPorts []Kubernetes core/v1.ContainerPort

Extra port mappings to apply to the emulator pods.

extraEnvVars []Kubernetes core/v1.EnvVar

Extra environment variables to supply to the emulator pods.

kvmEnabled bool

Whether to mount the kvm device to the pods, will require that the operator can launch privileged pods.

volumes []Volume

A list of volume configurations to apply to the emulator pods.

resources Kubernetes core/v1.ResourceRequirements

Resource restraints to place on the emulators.

startupJobTemplates []string

A list of AndroidJobTemplates to execute against new instances. TODO: Very very very beta

tcpRedir TCPRedirConfig

Configuration for the tcp redirection side car

AndroidDeviceSpec

(Appears on: AndroidDevice)

AndroidDeviceSpec defines the desired state of AndroidDevice

Field Description
configRef Kubernetes core/v1.LocalObjectReference

A reference to an AndroidDeviceConfig to use for the emulators in this group.

deviceConfig AndroidDeviceConfigSpec

Any overrides to the config represented by the ConfigRef. Any values supplied here will be merged into the found AndroidDeviceConfig, with fields in this object taking precedence over existing ones in the AndroidDeviceConfig.

hostname string

A hostname to apply to the device (used by AndroidFarm controller)

subdomain string

A subdomain to apply to the device (used by AndroidFarm controller)

AndroidFarm

AndroidFarm is the Schema for the androidfarms API

Field Description
metadata Kubernetes meta/v1.ObjectMeta Refer to the Kubernetes API documentation for the fields of the metadata field.
spec AndroidFarmSpec

deviceGroups []*github.com/tinyzimmer/android-farm-operator/pkg/apis/android/v1alpha1.DeviceGroup

A list of device groups and their configurations to run on the cluster

deviceManagementPolicy DeviceManagementPolicy

A device management policy to apply globally unless overridden on the group level

stfConfig STFConfig

The configuration for the OpenSTF Deployment

status AndroidFarmStatus

AndroidFarmSpec

(Appears on: AndroidFarm)

AndroidFarmSpec defines the desired state of AndroidFarm

Field Description
deviceGroups []*github.com/tinyzimmer/android-farm-operator/pkg/apis/android/v1alpha1.DeviceGroup

A list of device groups and their configurations to run on the cluster

deviceManagementPolicy DeviceManagementPolicy

A device management policy to apply globally unless overridden on the group level

stfConfig STFConfig

The configuration for the OpenSTF Deployment

AppConfig

(Appears on: STFConfig)

AppConfig represents configuration options for the app deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

replicas int32

The number of app replicas to run

AuthConfig

(Appears on: STFConfig)

STFAuth represents the authentication configuration for OpenSTF.

Field Description
mock bool

Use the stf mock authentication adapter.

oauth STFOAuth

Use OAuth with the provided parameters for authentication.

resources Kubernetes core/v1.ResourceRequirements

Auth deployment resource requirements.

DeviceGroup

DeviceGroup represents a collection of android devices that share a common configuration.

Field Description
name string

A name for the device group, this field is required. The name is prefixed to all resources created for the group.

provider ProviderConfig

STF provider configurations for this device group.

adb ADBConfig

ADB configurations for this device group

emulators EmulatorConfig

A configuration for emulated devices running in pods on the kubernetes cluster

hostUSB HostUSBConfig

A configuration for connecting host usb devices to the AndroidFarm.

omitFromSTF bool

TODO: implement

DeviceManagementPolicy

(Appears on: AndroidFarmSpec, EmulatorConfig)

DeviceManagementPolicy represents a policy for managing concurrency during the creation and updating of emulator pods.

Field Description
podManagementPolicy PodManagementPolicy

The type of policy to enforce, currently only OrderedReady.

concurrency int32

The maximum number of devices that can be booting at any point in time.

EmulatorConfig

(Appears on: DeviceGroup)

EmulatorConfig is a configuration for virtual emulators running in pods on the kubernetes cluster.

Field Description
namespace string

The namespace to run the device group, defaults to the default namespace.

count int32

The number of devices to run in the group. Defaults to no devices.

hostnameTemplate string

A go-template to use for configuring the hostname of the devices. Currently only {{ .Index }} is passed to thte template, but more will come. A headless service is put in front of device groups to make the individual pods accessible by their hostname/subdomain

subdomain string

A subdomain to use for the pods in the device group. This also becomes the name of the headless service.

deviceManagementPolicy DeviceManagementPolicy

A policy for managing concurrency during provisioning/updates of android emulators.

configRef Kubernetes core/v1.LocalObjectReference

A reference to an AndroidDeviceConfig to use for the emulators in this group.

deviceConfig AndroidDeviceConfigSpec

Any overrides to the config represented by the ConfigRef. Any values supplied here will be merged into the found AndroidDeviceConfig, with fields in this object taking precedence over existing ones in the AndroidDeviceConfig.

GlobalProviderConfig

(Appears on: STFConfig)

GlobalProviderConfig represents global configuration options for the provider deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

HostUSBConfig

(Appears on: DeviceGroup)

HostUSBConfig is a configuration for connecting devices attached physically to the kubernetes hosts.

Field Description
nodeName string

The node to launch an ADB server on for binding devices to STF.

maxDevices int32

Specify the maximum number of devices expected to run on this host. This is required because for lack of a better solution we dynamically allocate provider service ports at the moment and we need to determine how many to do for a usb farm.

PodManagementPolicy (string alias)

(Appears on: DeviceManagementPolicy)

ProcessorConfig

(Appears on: STFConfig)

ProcessorConfig represents configuration options for the processor deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

ProviderConfig

(Appears on: DeviceGroup)

Field Description
startPort int32

The starting port to use for provider services. Defaults to 15000. If specifying multiple device groups, you should set this explicitly for each group and ensure they are not able to overlap. (~4 ports per device)

clusterLocalADB bool

When set to true, the provider will advertise it’s cluster local service address for adb connections. The default behavior is to advertise the external app hostname. This ultimately affects where tcp routes to the adb ports are setup from. If not using cluster local adb - they are set up on the main traefik instance and the provider traefik instance. If using cluster-local adb they are only set up on the provider traefik instance.

hostnameOverride string

Override the public hostname to advertise on provider instances

persistDeviceState bool

Set to true to persist device state (apps, accounts, caches) between user sessions.

traefik TraefikDeployment

Configurations for the provider traefik deployment

resources Kubernetes core/v1.ResourceRequirements

Resource requirements for this group’s provider instance. These will override any resources set in the global provider configuration.

ReaperConfig

(Appears on: STFConfig)

ReaperConfig represents configuration options for the reaper deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

RethinkDBConfig

(Appears on: STFConfig)

RethinkDBConfig represents configurations for the RethinkDB StatefulSet.

Field Description
version string

The version of rethinkdb to run. Defaults to 2.4.

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to use for the rethinkdb image.

replicas int32

The number of rethinkdb replicas per shard to make.

shards int32

The number of shards to use for each table in the stf database.

pvcSpec Kubernetes core/v1.PersistentVolumeClaimSpec

A PVCSpec to use for RethinkDB persistence.

resources Kubernetes core/v1.ResourceRequirements

Resource restraints for the rethinkdb instances

RethinkDBProxyConfig

(Appears on: STFConfig)

RethinkDBProxyConfig represents configuration options for the rethinkdb proxy deployment.

Field Description
replicas int32

The number of proxy instances to run

resources Kubernetes core/v1.ResourceRequirements

Resource restraints for the proxy instances

STFConfig

(Appears on: AndroidFarmSpec)

STFConfig represents configuration options for the OpenSTF deployment in this AndroidFarm.

Field Description
appHostname string

The external hostname to use when configuring OpenSTF services. The OpenSTF deployment must be accessible at this address (or IP).

secret string

The name of the kubernetes secret containing secrets for configuring OpenSTF.

stfSecretKey string

The key in the above secret where the OpenSTF secret is. Defaults to ‘stf-secret’.

serviceAccount string

A kubernetes service account to attach to OpenSTF deployments. This can be required if you are launching privileged pods that need to be validated against a PodSecurityPolicy, e.g. for host usb devices.

namespace string

The namespace to provision the STF deployments in. Defaults to the default namespace.

stfImage STFImage

The docker image configuration to use for the STF services.

adb ADBConfig

ADB global configuration options - can be overridden on the device group level

api APIConfig

API extra configuration options

app AppConfig

App extra configuration options

auth AuthConfig

Authentication configuration options

processor ProcessorConfig

Processor configuration options

provider GlobalProviderConfig

Provider global configuration options - can be overridden on the device group level

reaper ReaperConfig

Reaper configuration options

triproxyApp TriproxyAppConfig

Triproxy App configuration options

triproxyDev TriproxyDevConfig

Triproxy Dev configuration options

websocket WebsocketConfig

Websocket configuration options

traefik TraefikConfig

A configuration for the traefik deployment/routes put in front of the STF deployments.

rethinkdb RethinkDBConfig

A configuration for the RethinKDB statefulset.

rethinkdbProxy RethinkDBProxyConfig

A configuration for the rethinkdb proxy deployment

storage StorageConfig

A configuration for the OpenSTF storage services.

STFImage

(Appears on: STFConfig)

STFImage is the configuration for the docker image used in STF deployments.

Field Description
image string

Image is the repository to download the image from. Defaults to openstf/stf:latest.

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to attach to deployments using this image.

imagePullSecrets []Kubernetes core/v1.LocalObjectReference

Any pull secrets required for downloading the image.

STFOAuth

(Appears on: AuthConfig)

STFOauth represents an OAuth configuration to use for the STF oauth adapter.

Field Description
authorizationURL string

The Authorization URL for the OAuth service

tokenURL string

The Token URL for the OAuth service.

userInfoURL string

The User Info URL for the OAuth service.

scopes []string

The scopes needed for OAuth.

callbackURL string

The OAuth callback URL. TODO : This doesn’t need to be required and can default to: http(s):///auth/oauth/callback

clientIDKey string

The key in the STF secret that contains the client id. Defaults to ‘client-id’.

clientSecretKey string

The key in the STF secret that contains the client secret key. Defaults to ‘client-secret’.

StorageConfig

(Appears on: STFConfig)

STFStorageConfig represents configurations for the OpenSTF storage service.

Field Description
replicas int32

The number of stf-storage replicas to run

pvcSpec Kubernetes core/v1.PersistentVolumeClaimSpec

A PVC spec to use for storage persistence. If specifying more than one replica, only one PVC will be created and it should allow ReadWriteMany.

resources Kubernetes core/v1.ResourceRequirements

Storage deployments resource requirements.

TCPRedirConfig

(Appears on: AndroidDeviceConfigSpec)

Field Description
enabled bool

Whether to run a sidecar with emulator pods that redirects TCP traffic on the adb port to the emulator adb server listening on the loopback interface. This is required for the image used in this repository, but if you are using an image that exposes ADB on all interfaces itself, this is not required.

image string

Image is the repository to download the image from. Defaults to quay.io/tinyzimmer/goredir whose source is in this repository.

imagePullPolicy Kubernetes core/v1.PullPolicy

The pull policy to attach to deployments using this image.

imagePullSecrets []Kubernetes core/v1.LocalObjectReference

Any pull secrets required for downloading the image.

TLSConfig

(Appears on: TraefikConfig)

SSLConfig represents the SSL configuration for the STF deployments. Specify an empty object to configure SSL with traefik’s default self-signed certificate. Should only be done for testing.

Field Description
tlsSecret Kubernetes core/v1.LocalObjectReference

Specifies a preexisting TLS secret in the cluster to use. It must follow the standard format with a tls.crt and tls.key.

issuerRef github.com/jetstack/cert-manager/pkg/apis/meta/v1.ObjectReference

A cert-manager issuer reference to use to provision a TLS secret. Currently requires cert-manager >= v0.14.0.

external bool

Specify that SSL is managed externally. OpenSTF will be configured to know it is being served over HTTPS, but you will be responsible for terminating TLS before sending traffic to the traefik instance. When using this option, traefik will listen for requests on port 80, and you can set up an ingress to <farm_name>-stf-traefik.

TraefikConfig

(Appears on: STFConfig)

TraefikConfig represents configurations for the traefik deployment placed in front of the OpenSTF services.

Field Description
useIngressRoute bool

(WIP) - use IngressRoute CRDs for an existing traefik deployment instead of creating a standalone traefik service.

deployment TraefikDeployment

Configuration options for the traefik deployment.

tls TLSConfig

TLS configurations for traefik

TraefikDashboard

(Appears on: TraefikDeployment)

TraefikDashboard represents configuration options for the Traefik dashboard.

Field Description
host string

The hostname that should route to the traefik dashboard.

ipWhitelist []string

A list of IP addresses to whitelist for dashboard access.

TraefikDeployment

(Appears on: ProviderConfig, TraefikConfig)

TraefikDeployment represents configuration options for the traefik deployment.

Field Description
replicas int32

The number of traefik instances to run.

version string

The version of traefik to run, only >2.0 supported. Defaults to 2.2.0.

annotations map[string]string

Extra annotations to apply to the traefik service

serviceType string

The type of service to create for Traefik. Defaults to LoadBalancer. If using external SSL from a pre-existing ingress controller, you’ll want to set this to ClusterIP.

accessLogs bool

Set to true if you wish for traefik to produce access logs

dashboard TraefikDashboard

A configuration for the traefik dashboard

resources Kubernetes core/v1.ResourceRequirements

Resource restraints for the traefik deployment

TriproxyAppConfig

(Appears on: STFConfig)

TriproxyAppConfig represents configuration options for the triproxy app deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

TriproxyDevConfig

(Appears on: STFConfig)

TriproxyDevConfig represents configuration options for the triproxy dev deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment

Volume

(Appears on: AndroidDeviceConfigSpec)

Volume represents a volume configuration for the emulator.

Field Description
volumePrefix string

A prefix to apply to PVCs created for devices using this configuration.

mountPoint string

Where to mount the volume in emulator pods.

pvcSpec Kubernetes core/v1.PersistentVolumeClaimSpec

A PVC spec to use for creating the emulator volumes.

WebsocketConfig

(Appears on: STFConfig)

WebsocketConfig represents configuration options for the websocket deployments

Field Description
resources Kubernetes core/v1.ResourceRequirements

The resource restraints for the app deployment


Generated with gen-crd-api-reference-docs on git commit 9dc9099.