Implement Fargate pod and container objects
This commit is contained in:
47
providers/aws/fargate/fargate.go
Normal file
47
providers/aws/fargate/fargate.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package fargate
|
||||
|
||||
const (
|
||||
// EC2 compute resource units.
|
||||
|
||||
// VCPU is one virtual CPU core in EC2.
|
||||
VCPU int64 = 1024
|
||||
// MiB is 2^20 bytes.
|
||||
MiB int64 = 1024 * 1024
|
||||
// GiB is 2^30 bytes.
|
||||
GiB int64 = 1024 * MiB
|
||||
)
|
||||
|
||||
// TaskSize represents a Fargate task size.
|
||||
type taskSize struct {
|
||||
cpu int64
|
||||
memory memorySizeRange
|
||||
}
|
||||
|
||||
// MemorySizeRange represents a range of Fargate task memory sizes.
|
||||
type memorySizeRange struct {
|
||||
min int64
|
||||
max int64
|
||||
inc int64
|
||||
}
|
||||
|
||||
var (
|
||||
// Fargate task size table.
|
||||
// https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size
|
||||
//
|
||||
// VCPU Memory (in MiBs, available in 1GiB increments)
|
||||
// ==== ===================
|
||||
// 256 512, 1024 ... 2048
|
||||
// 512 1024 ... 4096
|
||||
// 1024 2048 ... 8192
|
||||
// 2048 4096 ... 16384
|
||||
// 4096 8192 ... 30720
|
||||
//
|
||||
taskSizeTable = []taskSize{
|
||||
{VCPU / 4, memorySizeRange{512 * MiB, 512 * MiB, 1}},
|
||||
{VCPU / 4, memorySizeRange{1 * GiB, 2 * GiB, 1 * GiB}},
|
||||
{VCPU / 2, memorySizeRange{1 * GiB, 4 * GiB, 1 * GiB}},
|
||||
{1 * VCPU, memorySizeRange{2 * GiB, 8 * GiB, 1 * GiB}},
|
||||
{2 * VCPU, memorySizeRange{4 * GiB, 16 * GiB, 1 * GiB}},
|
||||
{4 * VCPU, memorySizeRange{8 * GiB, 30 * GiB, 1 * GiB}},
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user