v1alpha1

package
v0.0.0-...-31fda41 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2020 License: MIT Imports: 17 Imported by: 0

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

View Source
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

View Source
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

View Source
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

func (in *ADBConfig) DeepCopy() *ADBConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADBConfig.

func (*ADBConfig) DeepCopyInto

func (in *ADBConfig) DeepCopyInto(out *ADBConfig)

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

func (in *APIConfig) DeepCopy() *APIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIConfig.

func (*APIConfig) DeepCopyInto

func (in *APIConfig) DeepCopyInto(out *APIConfig)

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

func (in *Action) DeepCopy() *Action

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.

func (*Action) DeepCopyInto

func (in *Action) DeepCopyInto(out *Action)

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 Activity

type Activity string
const (
	CommandActivity  Activity = "Command"
	InstallActivity  Activity = "Install"
	WaitActivity     Activity = "Wait"
	InteractActivity Activity = "Interact"
)

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

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndroidDeviceConfigStatus.

func (*AndroidDeviceConfigStatus) DeepCopyInto

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

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

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

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

func (in *AppConfig) DeepCopy() *AppConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppConfig.

func (*AppConfig) DeepCopyInto

func (in *AppConfig) DeepCopyInto(out *AppConfig)

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

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

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 JobStatus

type JobStatus string
const (
	StatusPending  JobStatus = "Pending"
	StatusComplete JobStatus = "Complete"
	StatusFailed   JobStatus = "Failed"
)

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

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

func (in *STFConfig) DeepCopy() *STFConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFConfig.

func (*STFConfig) DeepCopyInto

func (in *STFConfig) DeepCopyInto(out *STFConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*STFConfig) GetAppExternalURL

func (s *STFConfig) GetAppExternalURL() string

func (*STFConfig) GetAppExternalWebsocketURL

func (s *STFConfig) GetAppExternalWebsocketURL() string

func (*STFConfig) GetAppHostname

func (s *STFConfig) GetAppHostname() string

GetAppHostname returns the external hostname (or IP) that is used when configuring STF deployments.

func (*STFConfig) GetAuthURL

func (s *STFConfig) GetAuthURL() string

GetAuthURL returns what the authentication URL should be for this STF deployment.

func (*STFConfig) GetHTTPScheme

func (s *STFConfig) GetHTTPScheme() string

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

func (s *STFConfig) GetNamespace() string

GetNamespace returns the namespace where STF resources should be deployed for this AndroidFarm.

func (*STFConfig) GetOAuthClientIDKey

func (s *STFConfig) GetOAuthClientIDKey() string

GetOAuthClientIDKey returns where in our STFSecret we can find our client ID for OAuth.

func (*STFConfig) GetOAuthClientSecretKey

func (s *STFConfig) GetOAuthClientSecretKey() string

GetOAuthClientSecretKey returns where in our STFSecret we can find the client secret for OAuth.

func (*STFConfig) GetSTFSecretKey

func (s *STFConfig) GetSTFSecretKey() string

GetSTFSecretKey returns the key in our STFSecret where we can find the secret to give to STF deployments.

func (*STFConfig) GetServiceAccount

func (s *STFConfig) GetServiceAccount() string

GetServiceAccount returns the service account (if any) we should use for STF deployments in this farm.

func (*STFConfig) GetWebsocketScheme

func (s *STFConfig) GetWebsocketScheme() string

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

func (s *STFConfig) OpenSTFImage() string

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

func (s *STFConfig) RethinkDBImage() string

RethinkDBImage returns the image to use in the rethinkdb StatefulSet.

func (*STFConfig) RethinkDBProxyReplicas

func (s *STFConfig) RethinkDBProxyReplicas() *int32

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

func (s *STFConfig) RethinkDBReplicas() *int32

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

func (s *STFConfig) RethinkDBShards() *int32

RethinkDBShards returns the number of shards to use in the rethinkdb StatefulSet tables.

func (*STFConfig) StorageReplicas

func (s *STFConfig) StorageReplicas() int32

StorageReplicas returns the number of replicas to run in the storage deployment.

func (*STFConfig) StorageResourceRequirements

func (s *STFConfig) StorageResourceRequirements() corev1.ResourceRequirements

func (*STFConfig) TLSEnabled

func (s *STFConfig) TLSEnabled() bool

TLSEnabled returns true if TLS is being used in front of the OpenSTF farm.

func (*STFConfig) TraefikAccessLogsEnabled

func (s *STFConfig) TraefikAccessLogsEnabled() bool

TraefikAccessLogsEnabled returns true if the access log should be enabled in traefik

func (*STFConfig) TraefikDashboardEnabled

func (s *STFConfig) TraefikDashboardEnabled() bool

TraefikDashboardEnabled returns true if the dashboard and api should be enabled in the traefik deployment.

func (*STFConfig) TraefikDashboardHost

func (s *STFConfig) TraefikDashboardHost() string

TraefikDashboardHost returns the hostname for which requests should be routed to the traefik dashboard.

func (*STFConfig) TraefikDashboardWhitelistString

func (s *STFConfig) TraefikDashboardWhitelistString() string

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

func (s *STFConfig) TraefikImage() string

TraefikImage returns the docker image to use for the traefik deployment.

func (*STFConfig) TraefikReplicas

func (s *STFConfig) TraefikReplicas() int32

TraefikReplicas returns the number of replicas to run in the traefik deployment.

func (*STFConfig) TraefikResourceRequirements

func (s *STFConfig) TraefikResourceRequirements() corev1.ResourceRequirements

func (*STFConfig) TraefikServiceAnnotations

func (s *STFConfig) TraefikServiceAnnotations() map[string]string

TraefikServiceAnnotations returns annotations to apply to the traefik service for an stf cluster.

func (*STFConfig) TraefikServiceType

func (s *STFConfig) TraefikServiceType() string

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

func (s *STFConfig) UseExternalTLS() bool

UseExternalTLS returns true if TLS is being managed externally for the OpenSTF farm.

func (*STFConfig) UseIngressRouteCRD

func (s *STFConfig) UseIngressRouteCRD() bool

UseIngressRouteCRD returns true if we are provisioning IngressRoutes for an external traefik deployment.

func (*STFConfig) UseMockAuth

func (s *STFConfig) UseMockAuth() bool

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

func (in *STFImage) DeepCopy() *STFImage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFImage.

func (*STFImage) DeepCopyInto

func (in *STFImage) DeepCopyInto(out *STFImage)

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

func (in *STFOAuth) DeepCopy() *STFOAuth

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new STFOAuth.

func (*STFOAuth) DeepCopyInto

func (in *STFOAuth) DeepCopyInto(out *STFOAuth)

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

func (in *TLSConfig) DeepCopy() *TLSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.

func (*TLSConfig) DeepCopyInto

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

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

func (in *Volume) DeepCopy() *Volume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL