Documentation
¶
Index ¶
- type AggregateType
- type ApplicationConfiguration
- type ClientConfiguration
- type CustomUsageMetric
- type CustomUsageMetrics
- type EtcdConfiguration
- type ExecutorConfiguration
- type IngressConfiguration
- type KubernetesConfiguration
- type MetricConfiguration
- type PodDefaults
- type StateChecksConfiguration
- type TaskConfiguration
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AggregateType ¶ added in v0.3.47
type AggregateType string
const ( Sum AggregateType = "Sum" Mean = "Mean" )
type ClientConfiguration ¶
type ClientConfiguration struct {
MaxMessageSizeBytes int
}
type CustomUsageMetric ¶ added in v0.3.47
type CustomUsageMetric struct {
Name string
PrometheusMetricName string
PrometheusPodNameLabel string
AggregateType AggregateType
Multiplier float64
}
type CustomUsageMetrics ¶ added in v0.3.47
type CustomUsageMetrics struct {
Namespace string
EndpointSelectorLabelName string
EndpointSelectorLabelValue string
Metrics []CustomUsageMetric
}
type EtcdConfiguration ¶
type EtcdConfiguration struct {
// URLs of the etcd instances storing the cluster state.
// If provided, Armada monitors the health of etcd and
// stops requesting jobs when etcd is EtcdFractionOfStorageInUseSoftLimit percent full and
// stops pod creation when etcd is EtcdFractionOfStorageInUseHardLimit or more percent full.
MetricUrls []string
FractionOfStorageInUseSoftLimit float64
FractionOfStorageInUseHardLimit float64
// This is the number of etcd endpoints that have to be healthy for Armada to perform the health check
// If less than MinimumAvailable are healthy, Armada will consider etcd unhealthy and stop submitting pods
MinimumAvailable int
}
type ExecutorConfiguration ¶
type ExecutorConfiguration struct {
HttpPort uint16
Metric MetricConfiguration
Application ApplicationConfiguration
ApiConnection client.ApiConnectionDetails
ExecutorApiConnection client.ApiConnectionDetails
Client ClientConfiguration
GRPC keepalive.ClientParameters
Kubernetes KubernetesConfiguration
Task TaskConfiguration
}
type IngressConfiguration ¶
type KubernetesConfiguration ¶
type KubernetesConfiguration struct {
// Wether to impersonate users when creating Kubernetes objects.
ImpersonateUsers bool
// Max number of Kubernetes API queries per second
// and max number of concurrent Kubernetes API queries.
QPS float32
Burst int
Etcd EtcdConfiguration
NodeIdLabel string
TrackedNodeLabels []string
AvoidNodeLabelsOnRetry []string
ToleratedTaints []string
MinimumPodAge time.Duration
StuckTerminatingPodExpiry time.Duration
FailedPodExpiry time.Duration
MaxTerminatedPods int
MinimumJobSize armadaresource.ComputeResources
PodDefaults *PodDefaults
StateChecks StateChecksConfiguration
PendingPodChecks *podchecks.Checks
FatalPodSubmissionErrors []string
// Minimum amount of resources marked as allocated to non-Armada pods on each node.
// I.e., if the total resources allocated to non-Armada pods on some node drops below this value,
// the executor adds a fictional allocation to make up the difference, such that the total is at least this.
// Hence, specifying can ensure that, e.g., if a deamonset pod restarts, those resources are not considered for scheduling.
MinimumResourcesMarkedAllocatedToNonArmadaPodsPerNode armadaresource.ComputeResources
// When adding a fictional allocation to ensure resources allocated to non-Armada pods is at least
// MinimumResourcesMarkedAllocatedToNonArmadaPodsPerNode, those resources are marked allocated at this priority.
MinimumResourcesMarkedAllocatedToNonArmadaPodsPerNodePriority int32
PodKillTimeout time.Duration
}
type MetricConfiguration ¶
type MetricConfiguration struct {
Port uint16
ExposeQueueUsageMetrics bool
CustomUsageMetrics []CustomUsageMetrics
}
type PodDefaults ¶
type PodDefaults struct {
SchedulerName string
Ingress *IngressConfiguration
}
type StateChecksConfiguration ¶ added in v0.3.77
type StateChecksConfiguration struct {
// Once a pod is submitted to kubernetes, this is how long we'll wait for it to appear in the kubernetes informer state
// If the pod hasn't appeared after this duration, it is considered missing
DeadlineForSubmittedPodConsideredMissing time.Duration
// Once the executor has seen a pod appear on the cluster, it considers that run Active
// If we get into a state where there is no longer a pod backing that Active run, this is how long we'll wait before we consider the pod missing
// The most likely cause of this is actually a bug in the executors processing of the kubernetes state
// However without it - we can have runs get indefinitely stuck as Active with no backing pod
DeadlineForActivePodConsideredMissing time.Duration
}
type TaskConfiguration ¶
type TaskConfiguration struct {
UtilisationReportingInterval time.Duration
MissingJobEventReconciliationInterval time.Duration
JobLeaseRenewalInterval time.Duration
AllocateSpareClusterCapacityInterval time.Duration
PodIssueHandlingInterval time.Duration
PodDeletionInterval time.Duration
QueueUsageDataRefreshInterval time.Duration
UtilisationEventProcessingInterval time.Duration
UtilisationEventReportingInterval time.Duration
ResourceCleanupInterval time.Duration
StateProcessorInterval time.Duration
}
Click to show internal directories.
Click to hide internal directories.