Documentation ¶
Index ¶
Constants ¶
View Source
const ( // IsEvictedAnnotation, indicates a pod was evicted in this round and is currently running. // Used by the scheduler to differentiate between pods from running and queued jobs. IsEvictedAnnotation = "armadaproject.io/isEvicted" // JobIdAnnotation if set on a pod, indicates which job this pod is part of. JobIdAnnotation = "armadaproject.io/jobId" // QueueAnnotation if set on a pod, indicates which queue this pod is part of. QueueAnnotation = "armadaproject.io/queue" // IdNodeLabel is automatically added to nodes in the NodeDb. NodeIdLabel = "armadaproject.io/nodeId" )
Variables ¶
View Source
var ArmadaSchedulerManagedAnnotations = []string{ IsEvictedAnnotation, JobIdAnnotation, QueueAnnotation, }
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct { // Database configuration Postgres configuration.PostgresConfig // Redis Comnfig Redis config.RedisConfig // General Pulsar configuration Pulsar configuration.PulsarConfig // Configuration controlling leader election Leader LeaderConfig // Configuration controlling metrics Metrics configuration.MetricsConfig // Scheduler configuration (this is shared with the old scheduler) Scheduling configuration.SchedulingConfig Auth authconfig.AuthConfig Grpc grpcconfig.GrpcConfig // Maximum number of strings that should be cached at any one time InternedStringsCacheSize uint32 `validate:"required"` // How often the scheduling cycle should run CyclePeriod time.Duration `validate:"required"` // How often the job scheduling should run // This is expected to be a greater value than CyclePeriod as we don't need to schedule every cycle // This keeps the system more responsive as other operations happen in each cycle - such as state changes SchedulePeriod time.Duration `validate:"required"` // The maximum time allowed for a job scheduling round MaxSchedulingDuration time.Duration `validate:"required"` // How long after a heartbeat an executor will be considered lost ExecutorTimeout time.Duration `validate:"required"` // Maximum number of rows to fetch in a given query DatabaseFetchSize int `validate:"required"` // Timeout to use when sending messages to pulsar PulsarSendTimeout time.Duration `validate:"required"` }
type LeaderConfig ¶
type LeaderConfig struct { // Valid modes are "standalone" or "kubernetes" Mode string `validate:"required"` // Name of the K8s Lock Object LeaseLockName string // Namespace of the K8s Lock Object LeaseLockNamespace string // The name of the pod PodName string // How long the lease is held for. // Non leaders much wait this long before trying to acquire the lease LeaseDuration time.Duration // RenewDeadline is the duration that the acting leader will retry refreshing leadership before giving up. RenewDeadline time.Duration // RetryPeriod is the duration the LeaderElector clients should waite between tries of actions. RetryPeriod time.Duration }
Click to show internal directories.
Click to hide internal directories.