Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the android v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=android.stf.io
Package v1alpha1 contains API Schema definitions for the android v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=android.stf.io
Index ¶
- Constants
- Variables
- type ADBConfig
- type APIConfig
- type Action
- type ActionType
- type Activity
- type AndroidDevice
- func (a *AndroidDevice) ConfigChecksum() string
- func (in *AndroidDevice) DeepCopy() *AndroidDevice
- func (in *AndroidDevice) DeepCopyInto(out *AndroidDevice)
- func (in *AndroidDevice) DeepCopyObject() runtime.Object
- func (a *AndroidDevice) GetConfig(c client.Client) (*AndroidDeviceConfig, error)
- func (a *AndroidDevice) GetDeviceGroup(c client.Client) (*DeviceGroup, error)
- func (a *AndroidDevice) GetFarm(c client.Client) (*AndroidFarm, error)
- func (a *AndroidDevice) IsFarmedDevice() bool
- func (a *AndroidDevice) NamespacedName() types.NamespacedName
- type AndroidDeviceConfig
- func (c *AndroidDeviceConfig) Checksum() (string, error)
- func (in *AndroidDeviceConfig) DeepCopy() *AndroidDeviceConfig
- func (in *AndroidDeviceConfig) DeepCopyInto(out *AndroidDeviceConfig)
- func (in *AndroidDeviceConfig) DeepCopyObject() runtime.Object
- func (c *AndroidDeviceConfig) GetADBContainerPort() []corev1.ContainerPort
- func (c *AndroidDeviceConfig) GetADBPort() int32
- func (c *AndroidDeviceConfig) GetEnvVars() []corev1.EnvVar
- func (c *AndroidDeviceConfig) GetImagePullSecrets() []corev1.LocalObjectReference
- func (c *AndroidDeviceConfig) GetPorts() []corev1.ContainerPort
- func (c *AndroidDeviceConfig) GetRedirImage() string
- func (c *AndroidDeviceConfig) GetServicePorts() []corev1.ServicePort
- func (c *AndroidDeviceConfig) GetSidecars() []corev1.Container
- func (c *AndroidDeviceConfig) IsKVMEnabled() bool
- type AndroidDeviceConfigList
- type AndroidDeviceConfigSpec
- type AndroidDeviceConfigStatus
- type AndroidDeviceList
- type AndroidDeviceSpec
- type AndroidDeviceStatus
- type AndroidFarm
- func (in *AndroidFarm) DeepCopy() *AndroidFarm
- func (in *AndroidFarm) DeepCopyInto(out *AndroidFarm)
- func (in *AndroidFarm) DeepCopyObject() runtime.Object
- func (a *AndroidFarm) DeviceGroups() []*DeviceGroup
- func (a *AndroidFarm) GetDeviceManagementPolicy(group string) *DeviceManagementPolicy
- func (a *AndroidFarm) InternalProxyHost() string
- func (a *AndroidFarm) InternalStorageURL() string
- func (a *AndroidFarm) MatchingLabels() client.MatchingLabels
- func (a *AndroidFarm) OwnerReferences() []metav1.OwnerReference
- func (a *AndroidFarm) RethinkDBAdminName() string
- func (a *AndroidFarm) RethinkDBEnvVars() []corev1.EnvVar
- func (a *AndroidFarm) RethinkDBLabels(component string) map[string]string
- func (a *AndroidFarm) RethinkDBName() string
- func (a *AndroidFarm) RethinkDBProxyName() string
- func (a *AndroidFarm) RethinkDBVolumeClaims() []corev1.PersistentVolumeClaim
- func (a *AndroidFarm) RethinkDBVolumeMounts() []corev1.VolumeMount
- func (a *AndroidFarm) RethinkDBVolumes() []corev1.Volume
- func (a *AndroidFarm) STFComponentLabels(component string) map[string]string
- func (a *AndroidFarm) STFComponentName(name string) string
- func (a *AndroidFarm) STFConfig() *STFConfig
- func (a *AndroidFarm) STFDisabled() bool
- func (a *AndroidFarm) STFNamePrefix() string
- func (a *AndroidFarm) STFStorageVolumeClaim() *corev1.PersistentVolumeClaim
- func (a *AndroidFarm) STFStorageVolumeMounts() []corev1.VolumeMount
- func (a *AndroidFarm) STFStorageVolumes() []corev1.Volume
- func (a *AndroidFarm) TLSSecret() string
- type AndroidFarmList
- type AndroidFarmSpec
- type AndroidFarmStatus
- type AndroidJob
- type AndroidJobList
- type AndroidJobSpec
- type AndroidJobStatus
- type AndroidJobTemplate
- type AndroidJobTemplateList
- type AndroidJobTemplateSpec
- type AndroidJobTemplateStatus
- type AppConfig
- type AuthConfig
- type DeviceGroup
- func (in *DeviceGroup) DeepCopy() *DeviceGroup
- func (in *DeviceGroup) DeepCopyInto(out *DeviceGroup)
- func (f *DeviceGroup) GetConfig(c client.Client) (*AndroidDeviceConfig, error)
- func (f *DeviceGroup) GetCount() int32
- func (f *DeviceGroup) GetHostname(logger logr.Logger, idxStr string) string
- func (g *DeviceGroup) GetNamespace() string
- func (f *DeviceGroup) GetProviderName() string
- func (f *DeviceGroup) GetProviderStartPort() int32
- func (f *DeviceGroup) GetSubdomain() string
- func (g *DeviceGroup) IsEmulatedGroup() bool
- func (g *DeviceGroup) IsUSBGroup() bool
- func (g *DeviceGroup) MatchingLabels() client.MatchingLabels
- func (f *DeviceGroup) MaxUSBDevices() int32
- func (g *DeviceGroup) ProviderHostnameOverride() string
- func (f *DeviceGroup) ProviderNoCleanup() bool
- func (f *DeviceGroup) ProviderNodeSelector() map[string]string
- func (g *DeviceGroup) ProviderTraefikAccessLogsEnabled() bool
- func (g *DeviceGroup) ProviderTraefikDashboardEnabled() bool
- func (g *DeviceGroup) ProviderTraefikReplicas() int32
- func (g *DeviceGroup) ProviderTraefikResourceRequirements() corev1.ResourceRequirements
- func (g *DeviceGroup) ProviderTraefikServiceAnnotations() map[string]string
- func (g *DeviceGroup) ProviderTraefikServiceType() string
- func (g *DeviceGroup) UseClusterLocalADB() bool
- type DeviceJobStatus
- type DeviceManagementPolicy
- type EmulatorConfig
- type GlobalProviderConfig
- type HostUSBConfig
- type Interaction
- type JobStatus
- type PodManagementPolicy
- type ProcessorConfig
- type ProviderConfig
- type ReaperConfig
- type RethinkDBConfig
- type RethinkDBProxyConfig
- type STFConfig
- func (s *STFConfig) ADBContainerSecurityContext(group *DeviceGroup) *corev1.SecurityContext
- func (s *STFConfig) ADBImage(group *DeviceGroup) string
- func (s *STFConfig) ADBImagePullPolicy(group *DeviceGroup) corev1.PullPolicy
- func (s *STFConfig) ADBPodSecurityContext(group *DeviceGroup) *corev1.PodSecurityContext
- func (s *STFConfig) ADBResourceRequirements(group *DeviceGroup) corev1.ResourceRequirements
- func (s *STFConfig) ADBSidecarContainer(providerName string, group *DeviceGroup) corev1.Container
- func (s *STFConfig) APIResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) APKStorageResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) AppResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) AuthResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) ContainerSecurityContext() *corev1.SecurityContext
- func (in *STFConfig) DeepCopy() *STFConfig
- func (in *STFConfig) DeepCopyInto(out *STFConfig)
- func (s *STFConfig) GetAppExternalURL() string
- func (s *STFConfig) GetAppExternalWebsocketURL() string
- func (s *STFConfig) GetAppHostname() string
- func (s *STFConfig) GetAuthURL() string
- func (s *STFConfig) GetHTTPScheme() string
- func (s *STFConfig) GetIssuerReference() *cmmeta.ObjectReference
- func (s *STFConfig) GetNamespace() string
- func (s *STFConfig) GetOAuthClientIDKey() string
- func (s *STFConfig) GetOAuthClientSecretKey() string
- func (s *STFConfig) GetSTFSecretKey() string
- func (s *STFConfig) GetServiceAccount() string
- func (s *STFConfig) GetWebsocketScheme() string
- func (s *STFConfig) ImgStorageResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) OpenSTFImage() string
- func (s *STFConfig) PodSecurityContext() *corev1.PodSecurityContext
- func (s *STFConfig) ProcessorResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) ProviderResourceRequirements(group *DeviceGroup) corev1.ResourceRequirements
- func (s *STFConfig) PullPolicy() corev1.PullPolicy
- func (s *STFConfig) PullSecrets() []corev1.LocalObjectReference
- func (s *STFConfig) ReaperResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) RethinkDBImage() string
- func (s *STFConfig) RethinkDBProxyReplicas() *int32
- func (s *STFConfig) RethinkDBProxyResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) RethinkDBPullPolicy() corev1.PullPolicy
- func (s *STFConfig) RethinkDBReplicas() *int32
- func (s *STFConfig) RethinkDBResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) RethinkDBShards() *int32
- func (s *STFConfig) StorageReplicas() int32
- func (s *STFConfig) StorageResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) TLSEnabled() bool
- func (s *STFConfig) TraefikAccessLogsEnabled() bool
- func (s *STFConfig) TraefikDashboardEnabled() bool
- func (s *STFConfig) TraefikDashboardHost() string
- func (s *STFConfig) TraefikDashboardWhitelistString() string
- func (s *STFConfig) TraefikImage() string
- func (s *STFConfig) TraefikReplicas() int32
- func (s *STFConfig) TraefikResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) TraefikServiceAnnotations() map[string]string
- func (s *STFConfig) TraefikServiceType() string
- func (s *STFConfig) TriproxyAppResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) TriproxyDevResourceRequirements() corev1.ResourceRequirements
- func (s *STFConfig) UseExternalTLS() bool
- func (s *STFConfig) UseIngressRouteCRD() bool
- func (s *STFConfig) UseMockAuth() bool
- func (s *STFConfig) WebsocketResourceRequirements() corev1.ResourceRequirements
- type STFImage
- type STFOAuth
- type StorageConfig
- type TCPRedirConfig
- type TLSConfig
- type TraefikConfig
- type TraefikDashboard
- type TraefikDeployment
- type TriproxyAppConfig
- type TriproxyDevConfig
- type Volume
- type WebsocketConfig
Constants ¶
const ( // DeviceConfigLabel is the selector matching devices to configurations // that they derive their spec from. DeviceConfigLabel = "deviceConfig" // DeviceFarmLabel is the selector matching devices to the farm they belong to. DeviceFarmLabel = "deviceFarm" // DeviceGroupLabel is the selector matching devices to the device group they // belong to. DeviceGroupLabel = "deviceGroup" )
Labels used for selecting pods and devices based off their inheritance
const ( // CreationSpecAnnotation contains the serialized creation spec of a resource // to be compared against desired state. CreationSpecAnnotation = "android.stf.io/creation-spec" // STFProviderAnnotation contains a reference to the stf-provider instance // that manages a device. STFProviderAnnotation = "android.stf.io/stf-provider" // ADBConnectedAnnotation is used to signal that a device is connected to // its ADB server. ADBConnectedAnnotation = "android.stf.io/adb-connected" // BootCompletedAnnotation is used to signal that a device has completed its // boot process. BootCompletedAnnotation = "android.stf.io/boot-completed" // ConfigMapSHAAnnotation is used to store the checksum of the configmap data // used when a deployment was created. If a deployment is reconciled with a new // checksum, it means its configuration has changed and pods need to be cycled. ConfigMapSHAAnnotation = "android.stf.io/configmap-checksum" // DeviceConfigSHAAnnotation is used to store the checksum of the configuration // used to provision a given device instance. DeviceConfigSHAAnnotation = "android.stf.io/device-config-checksum" // ProviderSerialAnnotation contains the name of a device as known by its // stf provider. ProviderSerialAnnotation = "android.stf.io/stf-serial" )
Annotations used for internal operations on resources
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "android.stf.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
This section is empty.
Types ¶
type ADBConfig ¶
type ADBConfig struct { // Image for the adb servers. Defaults to `quay.io/tinyzimmer/adbmon`. Source // in this repository. Image string `json:"image,omitempty"` // The pull policy to attach to deployments using this image. ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Any pull secrets required for downloading the image. ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // The resource restraints for the provider adb sidecars. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
ADBConfig represents configuration options for the adb containers
func (*ADBConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADBConfig.
func (*ADBConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type APIConfig ¶
type APIConfig struct { // The resource restraints for the stf api servers Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // The number of api server replicas to run Replicas int32 `json:"replicas,omitempty"` }
APIConfig represents configuration options for the api servers
func (*APIConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIConfig.
func (*APIConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Action ¶
type Action struct { Activity Activity `json:"activity"` Name string `json:"name,omitempty"` RunAsRoot bool `json:"runAsRoot,omitempty"` Commands []string `json:"commands,omitempty"` APKUrl string `json:"apkURL,omitempty"` Seconds int `json:"seconds,omitempty"` Interactions []Interaction `json:"interactions,omitempty"` }
func (*Action) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.
func (*Action) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionType ¶
type ActionType string
const ( ClickAction ActionType = "Click" TypeAction ActionType = "TypeText" )
type AndroidDevice ¶
type AndroidDevice struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AndroidDeviceSpec `json:"spec,omitempty"` Status AndroidDeviceStatus `json:"status,omitempty"` }
AndroidDevice is the Schema for the androiddevices API +kubebuilder:subresource:status +kubebuilder:resource:path=androiddevices,scope=Namespaced
func (*AndroidDevice) ConfigChecksum ¶
func (a *AndroidDevice) ConfigChecksum() string
ConfigChecksum returns the checksum of the configuration currently present on the device pods.
func (*AndroidDevice) DeepCopy ¶
func (in *AndroidDevice) DeepCopy() *AndroidDevice
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDevice.
func (*AndroidDevice) DeepCopyInto ¶
func (in *AndroidDevice) DeepCopyInto(out *AndroidDevice)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidDevice) DeepCopyObject ¶
func (in *AndroidDevice) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AndroidDevice) GetConfig ¶
func (a *AndroidDevice) GetConfig(c client.Client) (*AndroidDeviceConfig, error)
GetConfig returns the desired configuration state of this device instance. The configref is looked up if provided, and then any overrides are merged on top of it.
func (*AndroidDevice) GetDeviceGroup ¶
func (a *AndroidDevice) GetDeviceGroup(c client.Client) (*DeviceGroup, error)
GetDeviceGroup returns the device group for this device.
func (*AndroidDevice) GetFarm ¶
func (a *AndroidDevice) GetFarm(c client.Client) (*AndroidFarm, error)
GetFarm returns the parent AndroidFarm for the current device. TODO: This could be grabbed from the owner reference as well.
func (*AndroidDevice) IsFarmedDevice ¶
func (a *AndroidDevice) IsFarmedDevice() bool
IsFarmedDevice returns true if this device instance is managed by an AndroidFarm.
func (*AndroidDevice) NamespacedName ¶
func (a *AndroidDevice) NamespacedName() types.NamespacedName
NamespacedName returns the namespaced name object for this device
type AndroidDeviceConfig ¶
type AndroidDeviceConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AndroidDeviceConfigSpec `json:"spec,omitempty"` Status AndroidDeviceConfigStatus `json:"status,omitempty"` }
AndroidDeviceConfig is the Schema for the androiddeviceconfigs API +kubebuilder:subresource:status +kubebuilder:resource:path=androiddeviceconfigs,scope=Cluster
func (*AndroidDeviceConfig) Checksum ¶
func (c *AndroidDeviceConfig) Checksum() (string, error)
Checksum returns the SHA256 hash of the current android device. Since this instance will often get merged with another, this is helpful for storing the state of the merged configuration.
func (*AndroidDeviceConfig) DeepCopy ¶
func (in *AndroidDeviceConfig) DeepCopy() *AndroidDeviceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceConfig.
func (*AndroidDeviceConfig) DeepCopyInto ¶
func (in *AndroidDeviceConfig) DeepCopyInto(out *AndroidDeviceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidDeviceConfig) DeepCopyObject ¶
func (in *AndroidDeviceConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AndroidDeviceConfig) GetADBContainerPort ¶
func (c *AndroidDeviceConfig) GetADBContainerPort() []corev1.ContainerPort
GetADBContainerPort returns the adb port to be used by the redir sidecar.
func (*AndroidDeviceConfig) GetADBPort ¶
func (c *AndroidDeviceConfig) GetADBPort() int32
GetADBPort returns the ADB port to be used by devices using this configuration.
func (*AndroidDeviceConfig) GetEnvVars ¶
func (c *AndroidDeviceConfig) GetEnvVars() []corev1.EnvVar
GetEnvVars returns the environment variables that should be used in pods using this device configuration.
func (*AndroidDeviceConfig) GetImagePullSecrets ¶
func (c *AndroidDeviceConfig) GetImagePullSecrets() []corev1.LocalObjectReference
GetImagePullSecrets will return all image pull secrets for emulator pods using this configuration
func (*AndroidDeviceConfig) GetPorts ¶
func (c *AndroidDeviceConfig) GetPorts() []corev1.ContainerPort
GetPorts returns the container ports to be used for pods using this configuration.
func (*AndroidDeviceConfig) GetRedirImage ¶
func (c *AndroidDeviceConfig) GetRedirImage() string
GetRedirImage will return the configured redir image for these emulators.
func (*AndroidDeviceConfig) GetServicePorts ¶
func (c *AndroidDeviceConfig) GetServicePorts() []corev1.ServicePort
GetServicePorts returns the service ports that should be used for the headless service in front of a device group using this configuration.
func (*AndroidDeviceConfig) GetSidecars ¶
func (c *AndroidDeviceConfig) GetSidecars() []corev1.Container
GetSidecars returns sidecars, if any, to run in the emulator pods.
func (*AndroidDeviceConfig) IsKVMEnabled ¶
func (c *AndroidDeviceConfig) IsKVMEnabled() bool
IsKVMEnabled returns true if the device requires KVM virtualization TODO: This is probably not even necessary, they all do.
type AndroidDeviceConfigList ¶
type AndroidDeviceConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AndroidDeviceConfig `json:"items"` }
AndroidDeviceConfigList contains a list of AndroidDeviceConfig
func (*AndroidDeviceConfigList) DeepCopy ¶
func (in *AndroidDeviceConfigList) DeepCopy() *AndroidDeviceConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceConfigList.
func (*AndroidDeviceConfigList) DeepCopyInto ¶
func (in *AndroidDeviceConfigList) DeepCopyInto(out *AndroidDeviceConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidDeviceConfigList) DeepCopyObject ¶
func (in *AndroidDeviceConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidDeviceConfigSpec ¶
type AndroidDeviceConfigSpec struct { // The docker image to use for emulator devices DockerImage string `json:"dockerImage,omitempty"` // The pull policy to use for emulator pods ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Pull secrets required for the docker image. ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // 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. ADBPort int32 `json:"adbPort,omitempty"` // An optional command to run when starting an emulator image Command []string `json:"command,omitempty"` // Any arguments to pass to the above command. Args []string `json:"args,omitempty"` // Extra port mappings to apply to the emulator pods. ExtraPorts []corev1.ContainerPort `json:"extraPorts,omitempty"` // Extra environment variables to supply to the emulator pods. ExtraEnvVars []corev1.EnvVar `json:"extraEnvVars,omitempty"` // Whether to mount the kvm device to the pods, will require that the operator // can launch privileged pods. KVMEnabled bool `json:"kvmEnabled,omitempty"` // A list of volume configurations to apply to the emulator pods. Volumes []Volume `json:"volumes,omitempty"` // Resource restraints to place on the emulators. Resources corev1.ResourceRequirements `json:"resources,omitempty"` // A list of AndroidJobTemplates to execute against new instances. // TODO: Very very very beta StartupJobTemplates []string `json:"startupJobTemplates,omitempty"` // Configuration for the tcp redirection side car TCPRedir *TCPRedirConfig `json:"tcpRedir,omitempty"` }
AndroidDeviceConfigSpec defines the desired state of AndroidDeviceConfig
func (*AndroidDeviceConfigSpec) DeepCopy ¶
func (in *AndroidDeviceConfigSpec) DeepCopy() *AndroidDeviceConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceConfigSpec.
func (*AndroidDeviceConfigSpec) DeepCopyInto ¶
func (in *AndroidDeviceConfigSpec) DeepCopyInto(out *AndroidDeviceConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidDeviceConfigSpec) MergeInto ¶
func (c *AndroidDeviceConfigSpec) MergeInto(target AndroidDeviceConfigSpec) (*AndroidDeviceConfigSpec, error)
MergeInto merges the contents of this spec into a provided configuration, granting precedence to the target spec. A pointer to the final product is returned.
type AndroidDeviceConfigStatus ¶
type AndroidDeviceConfigStatus struct { }
AndroidDeviceConfigStatus defines the observed state of AndroidDeviceConfig
func (*AndroidDeviceConfigStatus) DeepCopy ¶
func (in *AndroidDeviceConfigStatus) DeepCopy() *AndroidDeviceConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceConfigStatus.
func (*AndroidDeviceConfigStatus) DeepCopyInto ¶
func (in *AndroidDeviceConfigStatus) DeepCopyInto(out *AndroidDeviceConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidDeviceList ¶
type AndroidDeviceList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AndroidDevice `json:"items"` }
AndroidDeviceList contains a list of AndroidDevice
func (*AndroidDeviceList) DeepCopy ¶
func (in *AndroidDeviceList) DeepCopy() *AndroidDeviceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceList.
func (*AndroidDeviceList) DeepCopyInto ¶
func (in *AndroidDeviceList) DeepCopyInto(out *AndroidDeviceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidDeviceList) DeepCopyObject ¶
func (in *AndroidDeviceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidDeviceSpec ¶
type AndroidDeviceSpec struct { // A reference to an AndroidDeviceConfig to use for the emulators in this group. ConfigRef *corev1.LocalObjectReference `json:"configRef,omitempty"` // 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. DeviceConfig *AndroidDeviceConfigSpec `json:"deviceConfig,omitempty"` // A hostname to apply to the device (used by AndroidFarm controller) Hostname string `json:"hostname,omitempty"` // A subdomain to apply to the device (used by AndroidFarm controller) Subdomain string `json:"subdomain,omitempty"` }
AndroidDeviceSpec defines the desired state of AndroidDevice
func (*AndroidDeviceSpec) DeepCopy ¶
func (in *AndroidDeviceSpec) DeepCopy() *AndroidDeviceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceSpec.
func (*AndroidDeviceSpec) DeepCopyInto ¶
func (in *AndroidDeviceSpec) DeepCopyInto(out *AndroidDeviceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidDeviceStatus ¶
type AndroidDeviceStatus struct {
State string `json:"state"`
}
AndroidDeviceStatus defines the observed state of AndroidDevice
func (*AndroidDeviceStatus) DeepCopy ¶
func (in *AndroidDeviceStatus) DeepCopy() *AndroidDeviceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceStatus.
func (*AndroidDeviceStatus) DeepCopyInto ¶
func (in *AndroidDeviceStatus) DeepCopyInto(out *AndroidDeviceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidFarm ¶
type AndroidFarm struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AndroidFarmSpec `json:"spec,omitempty"` Status AndroidFarmStatus `json:"status,omitempty"` }
AndroidFarm is the Schema for the androidfarms API +kubebuilder:subresource:status +kubebuilder:resource:path=androidfarms,scope=Cluster
func (*AndroidFarm) DeepCopy ¶
func (in *AndroidFarm) DeepCopy() *AndroidFarm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidFarm.
func (*AndroidFarm) DeepCopyInto ¶
func (in *AndroidFarm) DeepCopyInto(out *AndroidFarm)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidFarm) DeepCopyObject ¶
func (in *AndroidFarm) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AndroidFarm) DeviceGroups ¶
func (a *AndroidFarm) DeviceGroups() []*DeviceGroup
DeviceGroups returns the device groups for this farm instance.
func (*AndroidFarm) GetDeviceManagementPolicy ¶
func (a *AndroidFarm) GetDeviceManagementPolicy(group string) *DeviceManagementPolicy
GetDeviceManagementPolicy returns the device management policy for a device group. If one is provided on the group level, it is returned immediately, otherwise any global policy on the AndroidFarm is returned.
func (*AndroidFarm) InternalProxyHost ¶
func (a *AndroidFarm) InternalProxyHost() string
func (*AndroidFarm) InternalStorageURL ¶
func (a *AndroidFarm) InternalStorageURL() string
InternalStorageURL returns the cluster local storage URL
func (*AndroidFarm) MatchingLabels ¶
func (a *AndroidFarm) MatchingLabels() client.MatchingLabels
MatchingLabels returns the select for finding devices/pods belonging to this farm instance.
func (*AndroidFarm) OwnerReferences ¶
func (a *AndroidFarm) OwnerReferences() []metav1.OwnerReference
OwnerReferences returns an owner reference slice with this AndroidFarm instance as the owner.
func (*AndroidFarm) RethinkDBAdminName ¶
func (a *AndroidFarm) RethinkDBAdminName() string
RethinkDBAdminName returns the name to use for the rethinkdb admin resources
func (*AndroidFarm) RethinkDBEnvVars ¶
func (a *AndroidFarm) RethinkDBEnvVars() []corev1.EnvVar
RethinkDBEnvVars returns the environment variables to supply to the rethinkdb pods.
func (*AndroidFarm) RethinkDBLabels ¶
func (a *AndroidFarm) RethinkDBLabels(component string) map[string]string
RethinkDBLabels returns the labels to apply to rethinkdb resources.
func (*AndroidFarm) RethinkDBName ¶
func (a *AndroidFarm) RethinkDBName() string
RethinkDBName returns the name to use for the rethinkdb resources in this AndroidFarm.
func (*AndroidFarm) RethinkDBProxyName ¶
func (a *AndroidFarm) RethinkDBProxyName() string
func (*AndroidFarm) RethinkDBVolumeClaims ¶
func (a *AndroidFarm) RethinkDBVolumeClaims() []corev1.PersistentVolumeClaim
RethinkDBVolumeClaims returns the PVC templates to supply to the RethinkDB StatefulSet.
func (*AndroidFarm) RethinkDBVolumeMounts ¶
func (a *AndroidFarm) RethinkDBVolumeMounts() []corev1.VolumeMount
RethinkDBVolumeMounts returns the volume mounts to apply to the pods in the RethinkDB StatefulSet.
func (*AndroidFarm) RethinkDBVolumes ¶
func (a *AndroidFarm) RethinkDBVolumes() []corev1.Volume
func (*AndroidFarm) STFComponentLabels ¶
func (a *AndroidFarm) STFComponentLabels(component string) map[string]string
STFComponentLabels returns the labels to apply to STF resources for this AndroidFarm.
func (*AndroidFarm) STFComponentName ¶
func (a *AndroidFarm) STFComponentName(name string) string
func (*AndroidFarm) STFConfig ¶
func (a *AndroidFarm) STFConfig() *STFConfig
STFConfig returns the STF configuration for this AndroidFarm instance.
func (*AndroidFarm) STFDisabled ¶
func (a *AndroidFarm) STFDisabled() bool
STFDisabled returns true if there is no STF configuration provided, which means we skip deploying those resources.
func (*AndroidFarm) STFNamePrefix ¶
func (a *AndroidFarm) STFNamePrefix() string
STFNamePrefix returns the string to prefix STF resource names with.
func (*AndroidFarm) STFStorageVolumeClaim ¶
func (a *AndroidFarm) STFStorageVolumeClaim() *corev1.PersistentVolumeClaim
STFStorageVolumeClaim returns the PVC definition that just be provisioned with the STF storage service, or nil if no PVCSpec is provided.
func (*AndroidFarm) STFStorageVolumeMounts ¶
func (a *AndroidFarm) STFStorageVolumeMounts() []corev1.VolumeMount
STFStorageVolumes returns the deployment volume mounts to be used for the STF storage deployment, or an empty slice if no PVCspec is provided.
func (*AndroidFarm) STFStorageVolumes ¶
func (a *AndroidFarm) STFStorageVolumes() []corev1.Volume
STFStorageVolumes returns the deployment volume definitions to be used for the STF storage deployment, or an empty volume slice if no PVCspec is provided.
func (*AndroidFarm) TLSSecret ¶
func (a *AndroidFarm) TLSSecret() string
TLSSecret returns the secret to be used for SSL configurations, or an empty string if SSL is disabled in the OpenSTF farm.
type AndroidFarmList ¶
type AndroidFarmList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AndroidFarm `json:"items"` }
AndroidFarmList contains a list of AndroidFarm
func (*AndroidFarmList) DeepCopy ¶
func (in *AndroidFarmList) DeepCopy() *AndroidFarmList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidFarmList.
func (*AndroidFarmList) DeepCopyInto ¶
func (in *AndroidFarmList) DeepCopyInto(out *AndroidFarmList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidFarmList) DeepCopyObject ¶
func (in *AndroidFarmList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidFarmSpec ¶
type AndroidFarmSpec struct { // A list of device groups and their configurations to run on the cluster DeviceGroups []*DeviceGroup `json:"deviceGroups"` // A device management policy to apply globally unless overridden // on the group level DeviceManagementPolicy *DeviceManagementPolicy `json:"deviceManagementPolicy,omitempty"` // The configuration for the OpenSTF Deployment STFConfig *STFConfig `json:"stfConfig,omitempty"` }
AndroidFarmSpec defines the desired state of AndroidFarm
func (*AndroidFarmSpec) DeepCopy ¶
func (in *AndroidFarmSpec) DeepCopy() *AndroidFarmSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidFarmSpec.
func (*AndroidFarmSpec) DeepCopyInto ¶
func (in *AndroidFarmSpec) DeepCopyInto(out *AndroidFarmSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidFarmStatus ¶
type AndroidFarmStatus struct {
State string `json:"state"`
}
AndroidFarmStatus defines the observed state of AndroidFarm
func (*AndroidFarmStatus) DeepCopy ¶
func (in *AndroidFarmStatus) DeepCopy() *AndroidFarmStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidFarmStatus.
func (*AndroidFarmStatus) DeepCopyInto ¶
func (in *AndroidFarmStatus) DeepCopyInto(out *AndroidFarmStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidJob ¶
type AndroidJob struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AndroidJobSpec `json:"spec,omitempty"` Status AndroidJobStatus `json:"status,omitempty"` }
AndroidJob is the Schema for the androidjobs API +kubebuilder:subresource:status +kubebuilder:resource:path=androidjobs,scope=Namespaced
func (*AndroidJob) DeepCopy ¶
func (in *AndroidJob) DeepCopy() *AndroidJob
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJob.
func (*AndroidJob) DeepCopyInto ¶
func (in *AndroidJob) DeepCopyInto(out *AndroidJob)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidJob) DeepCopyObject ¶
func (in *AndroidJob) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AndroidJob) DeviceNamespacedName ¶
func (a *AndroidJob) DeviceNamespacedName() types.NamespacedName
func (*AndroidJob) TemplateNamespacedName ¶
func (a *AndroidJob) TemplateNamespacedName() types.NamespacedName
type AndroidJobList ¶
type AndroidJobList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AndroidJob `json:"items"` }
AndroidJobList contains a list of AndroidJob
func (*AndroidJobList) DeepCopy ¶
func (in *AndroidJobList) DeepCopy() *AndroidJobList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobList.
func (*AndroidJobList) DeepCopyInto ¶
func (in *AndroidJobList) DeepCopyInto(out *AndroidJobList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidJobList) DeepCopyObject ¶
func (in *AndroidJobList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidJobSpec ¶
type AndroidJobSpec struct { DeviceName string `json:"deviceName,omitempty"` DeviceSelector map[string]string `json:"deviceSelector,omitempty"` JobTemplate string `json:"jobTemplate"` TTLSecondsAfterCreation *int `json:"ttlSecondsAfterCreation,omitempty"` }
AndroidJobSpec defines the desired state of AndroidJob
func (*AndroidJobSpec) DeepCopy ¶
func (in *AndroidJobSpec) DeepCopy() *AndroidJobSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobSpec.
func (*AndroidJobSpec) DeepCopyInto ¶
func (in *AndroidJobSpec) DeepCopyInto(out *AndroidJobSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidJobStatus ¶
type AndroidJobStatus struct { // JobStatus is a map of device name to device status JobStatus map[string]DeviceJobStatus `json:"jobStatus,omitempty"` }
AndroidJobStatus defines the observed state of AndroidJob
func (*AndroidJobStatus) DeepCopy ¶
func (in *AndroidJobStatus) DeepCopy() *AndroidJobStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobStatus.
func (*AndroidJobStatus) DeepCopyInto ¶
func (in *AndroidJobStatus) DeepCopyInto(out *AndroidJobStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidJobTemplate ¶
type AndroidJobTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AndroidJobTemplateSpec `json:"spec,omitempty"` Status AndroidJobTemplateStatus `json:"status,omitempty"` }
AndroidJobTemplate is the Schema for the androidjobtemplates API +kubebuilder:subresource:status +kubebuilder:resource:path=androidjobtemplates,scope=Cluster
func (*AndroidJobTemplate) DeepCopy ¶
func (in *AndroidJobTemplate) DeepCopy() *AndroidJobTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobTemplate.
func (*AndroidJobTemplate) DeepCopyInto ¶
func (in *AndroidJobTemplate) DeepCopyInto(out *AndroidJobTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidJobTemplate) DeepCopyObject ¶
func (in *AndroidJobTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidJobTemplateList ¶
type AndroidJobTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AndroidJobTemplate `json:"items"` }
AndroidJobTemplateList contains a list of AndroidJobTemplate
func (*AndroidJobTemplateList) DeepCopy ¶
func (in *AndroidJobTemplateList) DeepCopy() *AndroidJobTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobTemplateList.
func (*AndroidJobTemplateList) DeepCopyInto ¶
func (in *AndroidJobTemplateList) DeepCopyInto(out *AndroidJobTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AndroidJobTemplateList) DeepCopyObject ¶
func (in *AndroidJobTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AndroidJobTemplateSpec ¶
type AndroidJobTemplateSpec struct {
Actions []Action `json:"actions"`
}
AndroidJobTemplateSpec defines the desired state of AndroidJobTemplate
func (*AndroidJobTemplateSpec) DeepCopy ¶
func (in *AndroidJobTemplateSpec) DeepCopy() *AndroidJobTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobTemplateSpec.
func (*AndroidJobTemplateSpec) DeepCopyInto ¶
func (in *AndroidJobTemplateSpec) DeepCopyInto(out *AndroidJobTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AndroidJobTemplateStatus ¶
type AndroidJobTemplateStatus struct{}
AndroidJobTemplateStatus defines the observed state of AndroidJobTemplate
func (*AndroidJobTemplateStatus) DeepCopy ¶
func (in *AndroidJobTemplateStatus) DeepCopy() *AndroidJobTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidJobTemplateStatus.
func (*AndroidJobTemplateStatus) DeepCopyInto ¶
func (in *AndroidJobTemplateStatus) DeepCopyInto(out *AndroidJobTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AppConfig ¶
type AppConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // The number of app replicas to run Replicas int32 `json:"replicas,omitempty"` }
AppConfig represents configuration options for the app deployments
func (*AppConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppConfig.
func (*AppConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthConfig ¶
type AuthConfig struct { // Use the stf mock authentication adapter. Mock bool `json:"mock,omitempty"` // Use OAuth with the provided parameters for authentication. OAuth *STFOAuth `json:"oauth,omitempty"` // Auth deployment resource requirements. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
STFAuth represents the authentication configuration for OpenSTF.
func (*AuthConfig) DeepCopy ¶
func (in *AuthConfig) DeepCopy() *AuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfig.
func (*AuthConfig) DeepCopyInto ¶
func (in *AuthConfig) DeepCopyInto(out *AuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeviceGroup ¶
type DeviceGroup struct { // A name for the device group, this field is required. The name is prefixed // to all resources created for the group. Name string `json:"name"` // STF provider configurations for this device group. Provider *ProviderConfig `json:"provider,omitempty"` // ADB configurations for this device group ADB *ADBConfig `json:"adb,omitempty"` // A configuration for emulated devices running in pods on the kubernetes cluster Emulators *EmulatorConfig `json:"emulators,omitempty"` // A configuration for connecting host usb devices to the AndroidFarm. HostUSB *HostUSBConfig `json:"hostUSB,omitempty"` // TODO: implement OmitFromSTF bool `json:"omitFromSTF,omitempty"` }
DeviceGroup represents a collection of android devices that share a common configuration.
func (*DeviceGroup) DeepCopy ¶
func (in *DeviceGroup) DeepCopy() *DeviceGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceGroup.
func (*DeviceGroup) DeepCopyInto ¶
func (in *DeviceGroup) DeepCopyInto(out *DeviceGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DeviceGroup) GetConfig ¶
func (f *DeviceGroup) GetConfig(c client.Client) (*AndroidDeviceConfig, error)
GetConfig returns the desired configuration for this device group. If a config reference is provided, it is looked up first. Then any overrides in the group itself are merged on top of it.
func (*DeviceGroup) GetCount ¶
func (f *DeviceGroup) GetCount() int32
GetCount returns the number of devices that should be in this device group.
func (*DeviceGroup) GetHostname ¶
func (f *DeviceGroup) GetHostname(logger logr.Logger, idxStr string) string
GetHostname returns the device hostname for a device in this group at the given index.
func (*DeviceGroup) GetNamespace ¶
func (g *DeviceGroup) GetNamespace() string
GetNamespace returns the namespace that devices in this group should be provisioned in.
func (*DeviceGroup) GetProviderName ¶
func (f *DeviceGroup) GetProviderName() string
GetProviderName returns the name of the provider for this device group.
func (*DeviceGroup) GetProviderStartPort ¶
func (f *DeviceGroup) GetProviderStartPort() int32
GetProviderStartPort returns the starting port to use for the device group's provider instance.
func (*DeviceGroup) GetSubdomain ¶
func (f *DeviceGroup) GetSubdomain() string
GetSubdomain returns the subdomain (and headless service name) to be used for devices in this group.
func (*DeviceGroup) IsEmulatedGroup ¶
func (g *DeviceGroup) IsEmulatedGroup() bool
IsEmulatedGroup returns true if the device group is a group of emulated devices on the kubernetes cluster
func (*DeviceGroup) IsUSBGroup ¶
func (g *DeviceGroup) IsUSBGroup() bool
IsUSBGroup returns true if the device group is for USB devices on nodes
func (*DeviceGroup) MatchingLabels ¶
func (g *DeviceGroup) MatchingLabels() client.MatchingLabels
MatchingLabels returns the selector for finding devices/pods in this device group.
func (*DeviceGroup) MaxUSBDevices ¶
func (f *DeviceGroup) MaxUSBDevices() int32
MaxUSBDevices returns the maximum number of usb devices we expect to run on a given node.
func (*DeviceGroup) ProviderHostnameOverride ¶
func (g *DeviceGroup) ProviderHostnameOverride() string
func (*DeviceGroup) ProviderNoCleanup ¶
func (f *DeviceGroup) ProviderNoCleanup() bool
ProviderNoCleanup returns true if providers in this group should persist device state.
func (*DeviceGroup) ProviderNodeSelector ¶
func (f *DeviceGroup) ProviderNodeSelector() map[string]string
ProviderNodeSelector returns the node selector to use when scheduling ADB and provider deployments.
func (*DeviceGroup) ProviderTraefikAccessLogsEnabled ¶
func (g *DeviceGroup) ProviderTraefikAccessLogsEnabled() bool
ProviderTraefikAccessLogsEnabled returns true if we should enable the access logs on this provider's traefik instance.
func (*DeviceGroup) ProviderTraefikDashboardEnabled ¶
func (g *DeviceGroup) ProviderTraefikDashboardEnabled() bool
ProviderTraefikDashboardEnabled returns true if we should enable the traefik dashboard on this provider deployment.
func (*DeviceGroup) ProviderTraefikReplicas ¶
func (g *DeviceGroup) ProviderTraefikReplicas() int32
ProviderTraefikReplicas returns the number of replicas to run in the traefik deployment for this device group's provider.
func (*DeviceGroup) ProviderTraefikResourceRequirements ¶
func (g *DeviceGroup) ProviderTraefikResourceRequirements() corev1.ResourceRequirements
func (*DeviceGroup) ProviderTraefikServiceAnnotations ¶
func (g *DeviceGroup) ProviderTraefikServiceAnnotations() map[string]string
ProviderTraefikServiceAnnotations returns the annotations to apply to the traefik instance for this device group.
func (*DeviceGroup) ProviderTraefikServiceType ¶
func (g *DeviceGroup) ProviderTraefikServiceType() string
ProviderTraefikServiceType returns the type of service to use in the traefik deployment for this device group's provider.
func (*DeviceGroup) UseClusterLocalADB ¶
func (g *DeviceGroup) UseClusterLocalADB() bool
UseClusterLocalADB returns true if we should only set up adb entrypoints on the provider traefik instances, instead of the main one.
type DeviceJobStatus ¶
type DeviceJobStatus struct { // Status is the current status of the job Status JobStatus `json:"jobStatus,omitempty"` // Message may contain extra information about the status of the job Message string `json:"message,omitempty"` }
DeviceJobStatus defines the state of the job for a single device
func (*DeviceJobStatus) DeepCopy ¶
func (in *DeviceJobStatus) DeepCopy() *DeviceJobStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceJobStatus.
func (*DeviceJobStatus) DeepCopyInto ¶
func (in *DeviceJobStatus) DeepCopyInto(out *DeviceJobStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeviceManagementPolicy ¶
type DeviceManagementPolicy struct { // The type of policy to enforce, currently only OrderedReady. PodManagementPolicy PodManagementPolicy `json:"podManagementPolicy,omitempty"` // The maximum number of devices that can be booting at any point in time. Concurrency int32 `json:"concurrency,omitempty"` }
DeviceManagementPolicy represents a policy for managing concurrency during the creation and updating of emulator pods.
func (*DeviceManagementPolicy) DeepCopy ¶
func (in *DeviceManagementPolicy) DeepCopy() *DeviceManagementPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceManagementPolicy.
func (*DeviceManagementPolicy) DeepCopyInto ¶
func (in *DeviceManagementPolicy) DeepCopyInto(out *DeviceManagementPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DeviceManagementPolicy) GetConcurrency ¶
func (d *DeviceManagementPolicy) GetConcurrency() int32
GetConcurrency returns the maximum number of devices that can be in the booting state for this policy instance.
func (*DeviceManagementPolicy) GetPodManagementPolicy ¶
func (d *DeviceManagementPolicy) GetPodManagementPolicy() PodManagementPolicy
GetPodManagementPolicy returns the pod management policy for the device mnanagement policy. Currently there is only "OrderedReady".
type EmulatorConfig ¶
type EmulatorConfig struct { // The namespace to run the device group, defaults to the default namespace. Namespace string `json:"namespace,omitempty"` // The number of devices to run in the group. Defaults to no devices. Count int32 `json:"count,omitempty"` // 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 HostnameTemplate string `json:"hostnameTemplate,omitempty"` // A subdomain to use for the pods in the device group. This also becomes the // name of the headless service. Subdomain string `json:"subdomain,omitempty"` // A policy for managing concurrency during provisioning/updates of android // emulators. DeviceManagementPolicy *DeviceManagementPolicy `json:"deviceManagementPolicy,omitempty"` // A reference to an AndroidDeviceConfig to use for the emulators in this group. ConfigRef *corev1.LocalObjectReference `json:"configRef,omitempty"` // 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. DeviceConfig *AndroidDeviceConfigSpec `json:"deviceConfig,omitempty"` }
EmulatorConfig is a configuration for virtual emulators running in pods on the kubernetes cluster.
func (*EmulatorConfig) DeepCopy ¶
func (in *EmulatorConfig) DeepCopy() *EmulatorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmulatorConfig.
func (*EmulatorConfig) DeepCopyInto ¶
func (in *EmulatorConfig) DeepCopyInto(out *EmulatorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GlobalProviderConfig ¶
type GlobalProviderConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
GlobalProviderConfig represents global configuration options for the provider deployments
func (*GlobalProviderConfig) DeepCopy ¶
func (in *GlobalProviderConfig) DeepCopy() *GlobalProviderConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalProviderConfig.
func (*GlobalProviderConfig) DeepCopyInto ¶
func (in *GlobalProviderConfig) DeepCopyInto(out *GlobalProviderConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostUSBConfig ¶
type HostUSBConfig struct { // The node to launch an ADB server on for binding devices to STF. NodeName string `json:"nodeName,omitempty"` // 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. MaxDevices int32 `json:"maxDevices,omitempty"` }
HostUSBConfig is a configuration for connecting devices attached physically to the kubernetes hosts.
func (*HostUSBConfig) DeepCopy ¶
func (in *HostUSBConfig) DeepCopy() *HostUSBConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostUSBConfig.
func (*HostUSBConfig) DeepCopyInto ¶
func (in *HostUSBConfig) DeepCopyInto(out *HostUSBConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Interaction ¶
type Interaction struct { Type ActionType `json:"type,omitempty"` Target string `json:"target,omitempty"` Input string `json:"input,omitempty"` }
func (*Interaction) DeepCopy ¶
func (in *Interaction) DeepCopy() *Interaction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Interaction.
func (*Interaction) DeepCopyInto ¶
func (in *Interaction) DeepCopyInto(out *Interaction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodManagementPolicy ¶
type PodManagementPolicy string
const (
GroupedOrderedReady PodManagementPolicy = "GroupedOrderedReady"
)
type ProcessorConfig ¶
type ProcessorConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
ProcessorConfig represents configuration options for the processor deployments
func (*ProcessorConfig) DeepCopy ¶
func (in *ProcessorConfig) DeepCopy() *ProcessorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessorConfig.
func (*ProcessorConfig) DeepCopyInto ¶
func (in *ProcessorConfig) DeepCopyInto(out *ProcessorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProviderConfig ¶
type ProviderConfig struct { // 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) StartPort int32 `json:"startPort,omitempty"` // 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. ClusterLocalADB bool `json:"clusterLocalADB,omitempty"` // Override the public hostname to advertise on provider instances HostnameOverride string `json:"hostnameOverride,omitempty"` // Set to true to persist device state (apps, accounts, caches) between user // sessions. PersistDeviceState bool `json:"persistDeviceState,omitempty"` // Configurations for the provider traefik deployment Traefik *TraefikDeployment `json:"traefik,omitempty"` // Resource requirements for this group's provider instance. These will override // any resources set in the global provider configuration. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
func (*ProviderConfig) DeepCopy ¶
func (in *ProviderConfig) DeepCopy() *ProviderConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfig.
func (*ProviderConfig) DeepCopyInto ¶
func (in *ProviderConfig) DeepCopyInto(out *ProviderConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReaperConfig ¶
type ReaperConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
ReaperConfig represents configuration options for the reaper deployments
func (*ReaperConfig) DeepCopy ¶
func (in *ReaperConfig) DeepCopy() *ReaperConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReaperConfig.
func (*ReaperConfig) DeepCopyInto ¶
func (in *ReaperConfig) DeepCopyInto(out *ReaperConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RethinkDBConfig ¶
type RethinkDBConfig struct { // The version of rethinkdb to run. Defaults to 2.4. Version string `json:"version,omitempty"` // The pull policy to use for the rethinkdb image. ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // The number of rethinkdb replicas per shard to make. Replicas int32 `json:"replicas,omitempty"` // The number of shards to use for each table in the stf database. Shards int32 `json:"shards,omitempty"` // A PVCSpec to use for RethinkDB persistence. PVCSpec *corev1.PersistentVolumeClaimSpec `json:"pvcSpec,omitempty"` // Resource restraints for the rethinkdb instances Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
RethinkDBConfig represents configurations for the RethinkDB StatefulSet.
func (*RethinkDBConfig) DeepCopy ¶
func (in *RethinkDBConfig) DeepCopy() *RethinkDBConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RethinkDBConfig.
func (*RethinkDBConfig) DeepCopyInto ¶
func (in *RethinkDBConfig) DeepCopyInto(out *RethinkDBConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RethinkDBProxyConfig ¶
type RethinkDBProxyConfig struct { // The number of proxy instances to run Replicas int32 `json:"replicas,omitempty"` // Resource restraints for the proxy instances Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
RethinkDBProxyConfig represents configuration options for the rethinkdb proxy deployment.
func (*RethinkDBProxyConfig) DeepCopy ¶
func (in *RethinkDBProxyConfig) DeepCopy() *RethinkDBProxyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RethinkDBProxyConfig.
func (*RethinkDBProxyConfig) DeepCopyInto ¶
func (in *RethinkDBProxyConfig) DeepCopyInto(out *RethinkDBProxyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type STFConfig ¶
type STFConfig struct { // The external hostname to use when configuring OpenSTF services. The OpenSTF // deployment must be accessible at this address (or IP). AppHostname string `json:"appHostname"` // The name of the kubernetes secret containing secrets for configuring OpenSTF. Secret string `json:"secret"` // The key in the above secret where the OpenSTF secret is. Defaults to 'stf-secret'. STFSecretKey string `json:"stfSecretKey,omitempty"` // 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. ServiceAccount string `json:"serviceAccount,omitempty"` // The namespace to provision the STF deployments in. Defaults to the default // namespace. Namespace string `json:"namespace,omitempty"` // The docker image configuration to use for the STF services. STFImage *STFImage `json:"stfImage,omitempty"` // ADB global configuration options - can be overridden on the device group level ADB *ADBConfig `json:"adb,omitempty"` // API extra configuration options API *APIConfig `json:"api,omitempty"` // App extra configuration options App *AppConfig `json:"app,omitempty"` // Authentication configuration options Auth *AuthConfig `json:"auth,omitempty"` // Processor configuration options Processor *ProcessorConfig `json:"processor,omitempty"` // Provider global configuration options - can be overridden on the device group level Provider *GlobalProviderConfig `json:"provider,omitempty"` // Reaper configuration options Reaper *ReaperConfig `json:"reaper,omitempty"` // Triproxy App configuration options TriproxyApp *TriproxyAppConfig `json:"triproxyApp,omitempty"` // Triproxy Dev configuration options TriproxyDev *TriproxyDevConfig `json:"triproxyDev,omitempty"` // Websocket configuration options Websocket *WebsocketConfig `json:"websocket,omitempty"` // A configuration for the traefik deployment/routes put in front of the // STF deployments. Traefik *TraefikConfig `json:"traefik,omitempty"` // A configuration for the RethinKDB statefulset. RethinkDB *RethinkDBConfig `json:"rethinkdb,omitempty"` // A configuration for the rethinkdb proxy deployment RethinkDBProxy *RethinkDBProxyConfig `json:"rethinkdbProxy,omitempty"` // A configuration for the OpenSTF storage services. Storage *StorageConfig `json:"storage,omitempty"` }
STFConfig represents configuration options for the OpenSTF deployment in this AndroidFarm.
func (*STFConfig) ADBContainerSecurityContext ¶
func (s *STFConfig) ADBContainerSecurityContext(group *DeviceGroup) *corev1.SecurityContext
ADBContainerSecurityContext returns the container security context to use for adb deployments in this farm.
func (*STFConfig) ADBImage ¶
func (s *STFConfig) ADBImage(group *DeviceGroup) string
ADBImage returns the image to use for adb servers in this farm.
func (*STFConfig) ADBImagePullPolicy ¶
func (s *STFConfig) ADBImagePullPolicy(group *DeviceGroup) corev1.PullPolicy
ADBImagePullPolicy returns the pull policy for adb images in this farm
func (*STFConfig) ADBPodSecurityContext ¶
func (s *STFConfig) ADBPodSecurityContext(group *DeviceGroup) *corev1.PodSecurityContext
ADBPodSecurityContext returns the pod security context to use for adb deployments in this farm.
func (*STFConfig) ADBResourceRequirements ¶
func (s *STFConfig) ADBResourceRequirements(group *DeviceGroup) corev1.ResourceRequirements
func (*STFConfig) ADBSidecarContainer ¶
func (s *STFConfig) ADBSidecarContainer(providerName string, group *DeviceGroup) corev1.Container
ADBSidecarContainer returns the container definition for the provider adb sidecars.
func (*STFConfig) APIResourceRequirements ¶
func (s *STFConfig) APIResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) APKStorageResourceRequirements ¶
func (s *STFConfig) APKStorageResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) AppResourceRequirements ¶
func (s *STFConfig) AppResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) AuthResourceRequirements ¶
func (s *STFConfig) AuthResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) ContainerSecurityContext ¶
func (s *STFConfig) ContainerSecurityContext() *corev1.SecurityContext
ContainerSecurityContext returns the container security context to use for STF deployments in this farm.
func (*STFConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFConfig.
func (*STFConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*STFConfig) GetAppExternalURL ¶
func (*STFConfig) GetAppExternalWebsocketURL ¶
func (*STFConfig) GetAppHostname ¶
GetAppHostname returns the external hostname (or IP) that is used when configuring STF deployments.
func (*STFConfig) GetAuthURL ¶
GetAuthURL returns what the authentication URL should be for this STF deployment.
func (*STFConfig) GetHTTPScheme ¶
GetHTTPScheme returns the external HTTP scheme to be broadcasted by the OpenSTF deployments.
func (*STFConfig) GetIssuerReference ¶
func (s *STFConfig) GetIssuerReference() *cmmeta.ObjectReference
func (*STFConfig) GetNamespace ¶
GetNamespace returns the namespace where STF resources should be deployed for this AndroidFarm.
func (*STFConfig) GetOAuthClientIDKey ¶
GetOAuthClientIDKey returns where in our STFSecret we can find our client ID for OAuth.
func (*STFConfig) GetOAuthClientSecretKey ¶
GetOAuthClientSecretKey returns where in our STFSecret we can find the client secret for OAuth.
func (*STFConfig) GetSTFSecretKey ¶
GetSTFSecretKey returns the key in our STFSecret where we can find the secret to give to STF deployments.
func (*STFConfig) GetServiceAccount ¶
GetServiceAccount returns the service account (if any) we should use for STF deployments in this farm.
func (*STFConfig) GetWebsocketScheme ¶
GetWebsocketScheme returns the external websocket scheme to be broadcasted by the provider servers.
func (*STFConfig) ImgStorageResourceRequirements ¶
func (s *STFConfig) ImgStorageResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) OpenSTFImage ¶
OpenSTFImage returns the OpenSTF docker image to use for deployments in this farm.
func (*STFConfig) PodSecurityContext ¶
func (s *STFConfig) PodSecurityContext() *corev1.PodSecurityContext
PodSecurityContext returns the pod security context to use for STF deployments in this farm.
func (*STFConfig) ProcessorResourceRequirements ¶
func (s *STFConfig) ProcessorResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) ProviderResourceRequirements ¶
func (s *STFConfig) ProviderResourceRequirements(group *DeviceGroup) corev1.ResourceRequirements
func (*STFConfig) PullPolicy ¶
func (s *STFConfig) PullPolicy() corev1.PullPolicy
PullPolicy returns the image pull policy for STF resources.
func (*STFConfig) PullSecrets ¶
func (s *STFConfig) PullSecrets() []corev1.LocalObjectReference
PullSecrets returns the pull secrets (if any) to be used for pulling STF images.
func (*STFConfig) ReaperResourceRequirements ¶
func (s *STFConfig) ReaperResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) RethinkDBImage ¶
RethinkDBImage returns the image to use in the rethinkdb StatefulSet.
func (*STFConfig) RethinkDBProxyReplicas ¶
func (*STFConfig) RethinkDBProxyResourceRequirements ¶
func (s *STFConfig) RethinkDBProxyResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) RethinkDBPullPolicy ¶
func (s *STFConfig) RethinkDBPullPolicy() corev1.PullPolicy
RethinkDBPullPolicy returns the pull policy to use in the rethinkdb StatefulSet.
func (*STFConfig) RethinkDBReplicas ¶
RethinkDBReplicas returns the number of replicas per shard to run in the rethinkdb StatefulSet.
func (*STFConfig) RethinkDBResourceRequirements ¶
func (s *STFConfig) RethinkDBResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) RethinkDBShards ¶
RethinkDBShards returns the number of shards to use in the rethinkdb StatefulSet tables.
func (*STFConfig) StorageReplicas ¶
StorageReplicas returns the number of replicas to run in the storage deployment.
func (*STFConfig) StorageResourceRequirements ¶
func (s *STFConfig) StorageResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) TLSEnabled ¶
TLSEnabled returns true if TLS is being used in front of the OpenSTF farm.
func (*STFConfig) TraefikAccessLogsEnabled ¶
TraefikAccessLogsEnabled returns true if the access log should be enabled in traefik
func (*STFConfig) TraefikDashboardEnabled ¶
TraefikDashboardEnabled returns true if the dashboard and api should be enabled in the traefik deployment.
func (*STFConfig) TraefikDashboardHost ¶
TraefikDashboardHost returns the hostname for which requests should be routed to the traefik dashboard.
func (*STFConfig) TraefikDashboardWhitelistString ¶
TraefikDashboardWhitelistString returns the json representation of the IPs to be whitelisted for the traefik dashboard. If the user-provided list can't be serialized, we use the default allow-all rule.
func (*STFConfig) TraefikImage ¶
TraefikImage returns the docker image to use for the traefik deployment.
func (*STFConfig) TraefikReplicas ¶
TraefikReplicas returns the number of replicas to run in the traefik deployment.
func (*STFConfig) TraefikResourceRequirements ¶
func (s *STFConfig) TraefikResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) TraefikServiceAnnotations ¶
TraefikServiceAnnotations returns annotations to apply to the traefik service for an stf cluster.
func (*STFConfig) TraefikServiceType ¶
TraefikServiceType returns the type of service to create in front of the traefik deployment.
func (*STFConfig) TriproxyAppResourceRequirements ¶
func (s *STFConfig) TriproxyAppResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) TriproxyDevResourceRequirements ¶
func (s *STFConfig) TriproxyDevResourceRequirements() corev1.ResourceRequirements
func (*STFConfig) UseExternalTLS ¶
UseExternalTLS returns true if TLS is being managed externally for the OpenSTF farm.
func (*STFConfig) UseIngressRouteCRD ¶
UseIngressRouteCRD returns true if we are provisioning IngressRoutes for an external traefik deployment.
func (*STFConfig) UseMockAuth ¶
UseMockAuth returns true if this STF deployment should use the mock authentication service. Otherwise we use OAuth.
func (*STFConfig) WebsocketResourceRequirements ¶
func (s *STFConfig) WebsocketResourceRequirements() corev1.ResourceRequirements
type STFImage ¶
type STFImage struct { // Image is the repository to download the image from. // Defaults to openstf/stf:latest. Image string `json:"image,omitempty"` // The pull policy to attach to deployments using this image. ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Any pull secrets required for downloading the image. ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` }
STFImage is the configuration for the docker image used in STF deployments.
func (*STFImage) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFImage.
func (*STFImage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type STFOAuth ¶
type STFOAuth struct { // The Authorization URL for the OAuth service AuthorizationURL string `json:"authorizationURL"` // The Token URL for the OAuth service. TokenURL string `json:"tokenURL"` // The User Info URL for the OAuth service. UserInfoURL string `json:"userInfoURL"` // The scopes needed for OAuth. Scopes []string `json:"scopes"` // The OAuth callback URL. // TODO : This doesn't need to be required and can default to: // http(s)://<app_hostname>/auth/oauth/callback CallbackURL string `json:"callbackURL"` // The key in the STF secret that contains the client id. Defaults to 'client-id'. ClientIDKey string `json:"clientIDKey,omitempty"` // The key in the STF secret that contains the client secret key. Defaults to 'client-secret'. ClientSecretKey string `json:"clientSecretKey,omitempty"` }
STFOauth represents an OAuth configuration to use for the STF oauth adapter.
func (*STFOAuth) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFOAuth.
func (*STFOAuth) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageConfig ¶
type StorageConfig struct { // The number of stf-storage replicas to run Replicas int32 `json:"replicas,omitempty"` // 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. PVCSpec *corev1.PersistentVolumeClaimSpec `json:"pvcSpec,omitempty"` // Storage deployments resource requirements. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
STFStorageConfig represents configurations for the OpenSTF storage service.
func (*StorageConfig) DeepCopy ¶
func (in *StorageConfig) DeepCopy() *StorageConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageConfig.
func (*StorageConfig) DeepCopyInto ¶
func (in *StorageConfig) DeepCopyInto(out *StorageConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TCPRedirConfig ¶
type TCPRedirConfig struct { // 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. Enabled bool `json:"enabled,omitempty"` // Image is the repository to download the image from. // Defaults to quay.io/tinyzimmer/goredir whose source is in this repository. Image string `json:"image,omitempty"` // The pull policy to attach to deployments using this image. ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Any pull secrets required for downloading the image. ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` }
func (*TCPRedirConfig) DeepCopy ¶
func (in *TCPRedirConfig) DeepCopy() *TCPRedirConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPRedirConfig.
func (*TCPRedirConfig) DeepCopyInto ¶
func (in *TCPRedirConfig) DeepCopyInto(out *TCPRedirConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶
type TLSConfig struct { // Specifies a preexisting TLS secret in the cluster to use. It must follow // the standard format with a tls.crt and tls.key. TLSSecret *corev1.LocalObjectReference `json:"tlsSecret,omitempty"` // A cert-manager issuer reference to use to provision a TLS secret. Currently // requires cert-manager >= v0.14.0. IssuerRef *cmmeta.ObjectReference `json:"issuerRef,omitempty"` // 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`. External bool `json:"external,omitempty"` }
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.
func (*TLSConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TraefikConfig ¶
type TraefikConfig struct { // (WIP) - use IngressRoute CRDs for an existing traefik deployment // instead of creating a standalone traefik service. UseIngressRoute bool `json:"useIngressRoute,omitempty"` // Configuration options for the traefik deployment. Deployment *TraefikDeployment `json:"deployment,omitempty"` // TLS configurations for traefik TLS *TLSConfig `json:"tls,omitempty"` }
TraefikConfig represents configurations for the traefik deployment placed in front of the OpenSTF services.
func (*TraefikConfig) DeepCopy ¶
func (in *TraefikConfig) DeepCopy() *TraefikConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraefikConfig.
func (*TraefikConfig) DeepCopyInto ¶
func (in *TraefikConfig) DeepCopyInto(out *TraefikConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TraefikDashboard ¶
type TraefikDashboard struct { // The hostname that should route to the traefik dashboard. Host string `json:"host"` // A list of IP addresses to whitelist for dashboard access. IPWhitelist []string `json:"ipWhitelist,omitempty"` }
TraefikDashboard represents configuration options for the Traefik dashboard.
func (*TraefikDashboard) DeepCopy ¶
func (in *TraefikDashboard) DeepCopy() *TraefikDashboard
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraefikDashboard.
func (*TraefikDashboard) DeepCopyInto ¶
func (in *TraefikDashboard) DeepCopyInto(out *TraefikDashboard)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TraefikDeployment ¶
type TraefikDeployment struct { // The number of traefik instances to run. Replicas int32 `json:"replicas,omitempty"` // The version of traefik to run, only >2.0 supported. Defaults to 2.2.0. Version string `json:"version,omitempty"` // Extra annotations to apply to the traefik service Annotations map[string]string `json:"annotations,omitempty"` // 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. ServiceType string `json:"serviceType,omitempty"` // Set to true if you wish for traefik to produce access logs AccessLogs bool `json:"accessLogs,omitempty"` // A configuration for the traefik dashboard Dashboard *TraefikDashboard `json:"dashboard,omitempty"` // Resource restraints for the traefik deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
TraefikDeployment represents configuration options for the traefik deployment.
func (*TraefikDeployment) DeepCopy ¶
func (in *TraefikDeployment) DeepCopy() *TraefikDeployment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraefikDeployment.
func (*TraefikDeployment) DeepCopyInto ¶
func (in *TraefikDeployment) DeepCopyInto(out *TraefikDeployment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TriproxyAppConfig ¶
type TriproxyAppConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
TriproxyAppConfig represents configuration options for the triproxy app deployments
func (*TriproxyAppConfig) DeepCopy ¶
func (in *TriproxyAppConfig) DeepCopy() *TriproxyAppConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriproxyAppConfig.
func (*TriproxyAppConfig) DeepCopyInto ¶
func (in *TriproxyAppConfig) DeepCopyInto(out *TriproxyAppConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TriproxyDevConfig ¶
type TriproxyDevConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
TriproxyDevConfig represents configuration options for the triproxy dev deployments
func (*TriproxyDevConfig) DeepCopy ¶
func (in *TriproxyDevConfig) DeepCopy() *TriproxyDevConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriproxyDevConfig.
func (*TriproxyDevConfig) DeepCopyInto ¶
func (in *TriproxyDevConfig) DeepCopyInto(out *TriproxyDevConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶
type Volume struct { // A prefix to apply to PVCs created for devices using this configuration. VolumePrefix string `json:"volumePrefix"` // Where to mount the volume in emulator pods. MountPoint string `json:"mountPoint"` // A PVC spec to use for creating the emulator volumes. PVCSpec corev1.PersistentVolumeClaimSpec `json:"pvcSpec"` }
Volume represents a volume configuration for the emulator.
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebsocketConfig ¶
type WebsocketConfig struct { // The resource restraints for the app deployment Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
WebsocketConfig represents configuration options for the websocket deployments
func (*WebsocketConfig) DeepCopy ¶
func (in *WebsocketConfig) DeepCopy() *WebsocketConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsocketConfig.
func (*WebsocketConfig) DeepCopyInto ¶
func (in *WebsocketConfig) DeepCopyInto(out *WebsocketConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files ¶
- androiddevice_types.go
- androiddeviceconfig_types.go
- androidfarm_types.go
- androidjob_types.go
- androidjobtemplate_types.go
- doc.go
- register.go
- util_deviceconfigs.go
- util_devices.go
- util_farms.go
- util_stf_adb.go
- util_stf_auth.go
- util_stf_common.go
- util_stf_resources.go
- util_stf_rethinkdb.go
- util_stf_storage.go
- util_stf_tls.go
- util_stf_traefik.go
- v1alpha1_common.go
- zz_generated.deepcopy.go