open-nomad/ui/mirage/scenarios/topo.js
Jai 7103ce1957
ui: create node pool model (#17301)
Co-authored-by: Phil Renaud <phil@riotindustries.com>
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
2023-06-22 13:11:44 -04:00

117 lines
2.7 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import faker from 'nomad-ui/mirage/faker';
import { generateNetworks, generatePorts } from '../common';
const genResources = (CPU, Memory) => ({
Cpu: { CpuShares: CPU },
Memory: { MemoryMB: Memory },
Disk: { DiskMB: 10000 },
Networks: generateNetworks(),
Ports: generatePorts(),
});
export function topoSmall(server) {
server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
server.createList('node-pool', 4);
server.createList('node', 12, {
datacenter: 'dc1',
status: 'ready',
nodeResources: genResources(3000, 5192),
});
const jobResources = [
['M: 2560, C: 150'],
['M: 128, C: 400'],
['M: 512, C: 100'],
['M: 256, C: 150'],
['M: 200, C: 50'],
['M: 64, C: 100'],
['M: 128, C: 150'],
['M: 1024, C: 500'],
['M: 100, C: 300', 'M: 200, C: 150'],
['M: 512, C: 250', 'M: 600, C: 200'],
];
jobResources.forEach((spec) => {
server.create('job', {
status: 'running',
datacenters: ['dc1'],
type: 'service',
createAllocations: false,
resourceSpec: spec,
});
});
server.createList('allocation', 25, {
forceRunningClientStatus: true,
});
}
export function topoMedium(server) {
server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
server.createList('node', 10, {
datacenter: 'us-west-1',
status: 'ready',
nodeResources: genResources(3000, 5192),
});
server.createList('node', 12, {
datacenter: 'us-east-1',
status: 'ready',
nodeResources: genResources(3000, 5192),
});
server.createList('node', 11, {
datacenter: 'eu-west-1',
status: 'ready',
nodeResources: genResources(3000, 5192),
});
server.createList('node', 8, {
datacenter: 'us-west-1',
status: 'ready',
nodeResources: genResources(8000, 12192),
});
server.createList('node', 9, {
datacenter: 'us-east-1',
status: 'ready',
nodeResources: genResources(8000, 12192),
});
const jobResources = [
['M: 2560, C: 150'],
['M: 128, C: 400'],
['M: 512, C: 100'],
['M: 256, C: 150'],
['M: 200, C: 50'],
['M: 64, C: 100'],
['M: 128, C: 150'],
['M: 1024, C: 500'],
['M: 1200, C: 50'],
['M: 1400, C: 200'],
['M: 50, C: 150'],
['M: 5000, C: 1800'],
['M: 100, C: 300', 'M: 200, C: 150'],
['M: 512, C: 250', 'M: 600, C: 200'],
];
jobResources.forEach((spec) => {
server.create('job', {
status: 'running',
datacenters: ['dc1'],
type: 'service',
createAllocations: false,
createRecommendations: true,
resourceSpec: spec,
});
});
server.createList('allocation', 100, {
forceRunningClientStatus: true,
});
}