configuration

package
v0.3.55 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

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 ApplicationConfiguration

type ApplicationConfiguration struct {
	ClusterId              string
	Pool                   string
	SubmitConcurrencyLimit int
	UpdateConcurrencyLimit int
	DeleteConcurrencyLimit int
	UseExecutorApi         bool
}

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
	Client        ClientConfiguration
	GRPC          keepalive.ClientParameters

	Kubernetes KubernetesConfiguration
	Task       TaskConfiguration
}

type IngressConfiguration

type IngressConfiguration struct {
	HostnameSuffix string
	CertNameSuffix string
	Annotations    map[string]string
}

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
	PendingPodChecks          *podchecks.Checks
	FatalPodSubmissionErrors  []string
	// NodeReservedResources config is used to factor in reserved resources on each node
	// when validating can a job be scheduled on a node during job submit (i.e. factor in resources for daemonset pods)
	NodeReservedResources armadaresource.ComputeResources
	// NodeReservedResourcesPriority - The priority the reserved resource is reported at
	// All pods in kubernetes have a priority - and we report to the Armada API resource for a given priority
	// Therefore we also need to set a priority for the reserved resource
	NodeReservedResourcesPriority 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 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
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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